Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: maxt - Maggio 11, 2013, 10:05:29 am

Titolo: programma di fatturazione
Inserito da: maxt - Maggio 11, 2013, 10:05:29 am
ciao
vorrei creare un piccolo programma di fatturazione (che posso rilasciare su internet anche a gratis e opensource.. non c'e' problema) che praticamente dovrebbe sostituire un programma che uso sotto windows
non fa fare niente di particolare, ma non riesco a trovare un programma pronto che funziona qui (uso linux)

per caso qualcuno si e' gia' cimentato in una cosa del genere? e che magari vorrebbe mettere a disposizione i sorgenti?
ho trovato dei sorgenti di programmi simili ma in altri linguaggi, in primis java, ma sinceramente non mi piace molto la grafica di java, e il fatto che pare lento
invece lazurus sembra fare programmi che sembrano nativi, e reattivi

spero ci sia qualcuno disposto a darmi una mano
non ho molta esperienza con lazarus, in passato, molti anni fa mi ero cimentato con visual basic 4, e li riuscivo a fare un programma del genere molto facilmente
poi ho esperienza in C, ma trovo difficilissimo usarlo per fare programmi grafici e usare database ecc

datemi una mano!
grazie
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 11, 2013, 12:43:34 pm
ciao
sicuramente il pascal è un ottimo linguaggio per programmi di questo tipo, credo che con il tool di sviluppo ci sei ;)

Sul lato del tuo progetto: programma di fatturazione può voler dire tante cose; dovresti dare un paio di linee guida su quello che vuoi realizzare.
Ad esempio, si tratta di una maschera per emettere fatture, tipo un documento alla volta e basta, o si tratta di emettere ddt e poi fare una fatturazione differita periodicamente?
Bisogna gestire nessuno, 1 o N magazzini? Con i listini e gli ordini come siamo messi?

Descrivi un po' meglio quello che hai in mente, questo aiuterà a decidere chi legge ;)

Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 11, 2013, 03:48:21 pm
praticamente ci sono vari pulsanti aggiungi fattura, stampa fattura, stampa elenco fatture, c'e' una rubrica dei clienti, in modo che quando si crea la fattura si puo' scegliere il cliente dall'elenco, non ci sono magazzini o altro, sono semplici fatture per prestazioni di servizi
non dovrebbe essere molto complicato, almeno io in vb saprei farlo in poco tempo, pero' con lazarus non saprei da dove cominciare.. a partire dal tipo di database, leggo che lazarus dovrebbe supportare moltissimi tipi, ma non trovo nessun esempio facile da analizzare e funzionante..
sono in alto mare
a me basterebbe pure un formato di database tipo sqlite o comunque un database racchiuso in 1 file, non vorrei un server database
insomma un'applicazione small office
Titolo: Re:programma di fatturazione
Inserito da: xinyiman - Maggio 11, 2013, 04:07:56 pm
Esiste già qualcosa di simile, ma molto più complesso. Si chiama MyErp ed è scritto in lazarus. ma non è open source


guarda qui


http://www.lazaruspascal.it/index.php?page=17
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 11, 2013, 06:51:11 pm
Allora maxt .. se in vb lo faresti in poco tempo, non ti impensierire.
Inizia come se lo stessi facendo in VB. Freepascal+Lazarus+LCL faranno il resto ;)
Per il DB ... anche qui non ci sono problemi insormontabili.
Vuoi usare SQLite? Ci sono i componenti nativi di lazarus o puoi montare Zeos.

Per puntare ad un database devi piazzare un componente "connessione".
Ad ogni componente connessione puoi associare molte fonti dati. (DataSet, quindi tabelle, query and soo on).
Per i componenti visuali, ci sono già pronti molti componenti. Devi avere un DataSource che funge da proxy. Ad ogni DataSource puoi associare un DataSet.

Sarei curioso di avere i link dei progettini in java che menzionavi.
(Zeos ha un core DBC che implementano le specifiche JDBC ...non ricordo la versione).

Per il resto possiamo vedere i problemi man mano si presentano.

Stilgar
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 11, 2013, 08:16:14 pm
avevo provato questo in java
http://www.lffl.org/2010/11/fattura-veloce-semplice-software.html

e anche altri tipo http://invoicex.tnx.it/ e altri presenti sul sito di sourceforge cercando invoice

pero' tutti hanno qualcosa che non va
tipo sono orientati a fare cose per il magazzino oppure non sono italianizzati, cioe' sono troppo generici, non fanno inserire codice fiscale e roba del genere
in piu' la maggior parte sono in java e io non lo sopporto molto, sembra che va sempre lento anche se hai una bestia di computer...

per quanto riguarda il database, mi piacerebbe se ci fosse un esempio gia' pronto da aprire con lazarus in modo da vederlo in funzionamento.. avere qualcosa di gia' funzionante che aggiunge un record, lo elimina ecc e' gia' un buon punto
il resto si tratta di aggiustamenti e perfezionamenti

un grazie a chi vorra' aiutarmi in questa impresa
Titolo: Re:programma di fatturazione
Inserito da: Legolas - Maggio 11, 2013, 08:59:19 pm
Per SQLite c'è questo esempio:

http://wiki.freepascal.org/TSqlite3_Master_Detail_Example (http://wiki.freepascal.org/TSqlite3_Master_Detail_Example) che, tra le altre cose, ti mostra come gestire le relazioni master-detail

EDIT: ti segnalo anche questo sito, che ho appena trovato e che non conoscevo:

http://www.alevel-computing.x10.mx/

ci sono diversi esempi da scaricare :)
Titolo: Re:programma di fatturazione
Inserito da: damiano1899 - Maggio 12, 2013, 09:19:54 am
Mia opinione:il miglior DataBase è quello che ti fai da solo,un file di un type che definisci,arrays di strings e numeri:con il free pascal è facilissimo.
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 12, 2013, 11:32:21 am
comunque sembra una cosa non troppo complicata da realizzare.
Fossi in te partirei da qualche esempio preso dal sito segnalato da legolas (sito che non conoscevo neanche io).

Una volta che lo hai fatto funzionare, aggiungere la tabella clienti e un masterd/detail per le fatture non dovrebbe essere complicato.
Titolo: Re:programma di fatturazione
Inserito da: damiano1899 - Maggio 12, 2013, 01:40:12 pm
Se ti piace questo esempio,nel record metti quello che vuoi.
procedure add_bill(this_bill:fatturando);{fatturando=record}
begin
str(this_bill.yyyy,namefile);
assign(filebills,namefile+'.bills');reset(filebills);{2013.bills}
seek(filebills,(filesize(filebills)-1));
write(filebills,this_bill);
close(filebills);
end;
esporti in html e stampi da browser
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 12, 2013, 03:49:13 pm
ho provato a scaricare il sorgente da qui http://wiki.freepascal.org/TSqlite3_Master_Detail_Example  ma quando lo apro con lazarus dice: impossibile trovare il componente Tsqlite3dataset... come risolvere?
Titolo: Re:programma di fatturazione
Inserito da: xinyiman - Maggio 12, 2013, 03:56:27 pm
ho provato a scaricare il sorgente da qui http://wiki.freepascal.org/TSqlite3_Master_Detail_Example  ma quando lo apro con lazarus dice: impossibile trovare il componente Tsqlite3dataset... come risolvere?

Devi andare ad installare l'apposito pacchetto che trovi nella cartella in cui hai installato lazarus poi components successivamente scegli la cartella sqlite ed installi il pacchetto lpk
Titolo: Re:programma di fatturazione
Inserito da: El Salvador - Maggio 12, 2013, 05:56:25 pm
O puoi farlo direttamente da Lazarus. Clicca sul menu Package->Configura i pacchetti installati. Nella finestra appena aperta, cerca e selezioni sqlite3laz 0.4 della parte destra della finestra e clicca su Installa selezione. Una volta fatto, clicca sul bottone Salva e ricostruisci l'ide.

Ps.: Ricordati di mettere il file sqlite3.dll nella cartella principale di Lazarus, altrimenti Lazarus ti darà un errore al suo avvio.
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 13, 2013, 11:08:28 am
ho fatto compila e installa, ma al riavvio di lazarus diceva manca il file sqlite.dll
su internet ho trovato sqlite3.dll, l'ho messo nella dir. di lazarus ma continua a dire che manca sqlite.dll
allora ho rinominato sqlite3.dll in sqlite.dll ma esce un altro messaggio che dice che non trova una funzione... che casino

non c'e' qualche altro tipo di database gia' integrato in lazarus senza bisogno di installare componenti aggiuntivi (che creano solo ulteriori problemi)?
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 13, 2013, 11:38:41 am
che versione di lazarus/fpc hai?
Titolo: Re:programma di fatturazione
Inserito da: Legolas - Maggio 13, 2013, 12:13:47 pm
Vai nella directory di Lazarus, cancella Lazarus.exe e rinomina Lazarus.old.exe in Lazarus.exe.

A questo punto vai nella cartella components/sqlite e installa SOLO il pacchetto sqlite3laz.lpk.

Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 13, 2013, 12:45:20 pm
all'inizio stavo provando con linux, ma vedendo dei problemi ho pensato di provare prima su windows che magari e' piu' testato
allora ho installato l'ultima versione disponibile di lazarus 1.0.8 su win7

ho compilato e installato quel file, diceva manca sqlite.dll, ho messo un file e ora dice:
impossibile trovare il punto di ingresso sqlite_changes della procedura nella libreria di collegamento dinamico sqlite.dll

che casino
perche' non lo includono direttamente il dll adatto?!?
Titolo: Re:programma di fatturazione
Inserito da: Legolas - Maggio 13, 2013, 01:38:04 pm
Hai provato come ti ho detto? Il componente sqlite è distribuito in due versioni, sqlite e la nuova sqlite3. Se installi la 1 ti richiederà sqlite.dll, se installi la 3 ti richiederà sqlite3.dll. E no, rinominare una dll nell'altra non funziona ;-)
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 13, 2013, 03:10:59 pm
si ho aperto sqlite3laz.lpk e l'ho compilato/installato
quando si riavvia lazarus dice che manca sqlite.dll (non sqlite3.dll)
sto impazzendo prima di cominciare  ;D
Titolo: Re:programma di fatturazione
Inserito da: Legolas - Maggio 13, 2013, 03:36:24 pm
Eh. Il componente sqlite3 di lazarus si appoggia sul package sqlite di freepascal. Questo package contiene tutti e due i wrapper per sqlite (versione "liscia" e versione 3). Nel package, se si utilizza la versione 3, viene incluso il file sqlite3.inc che contiene il link dinamico a sqlite3.dll:

Codice: [Seleziona]
const
{$IFDEF WINDOWS}
  Sqlite3Lib = 'sqlite3.dll';
{$else}
  Sqlite3Lib = 'libsqlite3.'+sharedsuffix;
{$endif}

Ergo, probabilmente a forza di tentativi andati male ti si è incasinato Lazarus. Potrebbe essere utile disinstallarlo e reinstallarlo da zero  :)

EDIT: hai ripristinato la copia di backup di Lazarus prima di provare ad installare sqlite3laz?
 
Titolo: Re:programma di fatturazione
Inserito da: El Salvador - Maggio 13, 2013, 03:43:48 pm
Citazione
l'ho messo nella dir. di lazarus ma continua a dire che manca sqlite.dll
Il fatto che ti chieda sqlite.dll mi fa pensare che hai installato il pacchetto sqlitelaz 0.4 e non sqlite3laz. Se non mi sbaglio, il primo pacchetto è per SQLite 2.x (una precedente versione di sqlite), mentre il secondo si riferisce al ramo attualmente in sviluppo (3.x), ed è quello che devi usare.

Inoltre sul sito ufficiale di sqlite ( http://www.sqlite.org/download.html ), puoi trovare le librerie già compilate per ogni sistema operativo. http://www.sqlite.org/2013/sqlite-dll-win32-x86-3071602.zip per windows
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 10:13:15 am
boh
sotto windows non sono riuscito a farlo funzionare

sotto linux (debian) si, e sto facendo delle prove qui
ho seguito questo tutorial e sono riuscito ad arrivare fino alla fine

non ho capito una cosa:
visualizzo tutti i dati nel DBGRID1, se clicco col mouse all'interno dell'oggetto riesco a modificare i vari dati.
c'e' la possibilita' di salvare il contenuto di dbgrid1 nel database direttamente? cioe' c'e' un comando per dire apporta al database il contenuto presente al momento in dbgrid1? o bisogna farlo sempre con tutte le istruzioni di mysql?

Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 15, 2013, 10:27:00 am
Più o meno.
Metti un bottoncino che premuto faccia partire il "post" verso il database.
Il DataSet ha una serie di metodini carini ;)

Stilgar
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 11:23:50 am
scusate, come faccio per far apparire nella caption di una label una parola con gli apici
per esempio:
cane 'gatto'
come faccio per forzare l'inserimento dell'apice?
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 15, 2013, 11:24:30 am
Usa '' doppio apice.
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 11:46:59 am
cioe' se faccio
edit6.text:='cane "gatto"';

ottengo: cane "gatto"

e non: cane 'gatto'

non capisco come fare  :D
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 15, 2013, 11:49:10 am
Scusa ... mi sono spiegato male io.
Allora in pascal se vuoi usare ' devi scriverlo 2 volte nella stringa.
In questo modo il compilatore capisce che vuoi mettere proprio quel carattere e non stai aprendo/chiudendo la stringa....
Stilgar
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 11:50:16 am
un'altra cosa che non capisco:
perche' se seleziono il testo in una casella di testo (programma creato con lazarus) e faccio copia e incolla, mi funziona solo mentre il programma e' in esecuzione..
cioe' appena chiudo il programma scritto in lazarus, non posso piu' incollare il testo copiato negli appunti
non ho capito se e' un problema mio o se riguarda lazarus...
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 15, 2013, 11:51:29 am
Deve essere una cosa legata alla piattaforma ...
Su Windows non ho questo comportamento.

Stilgar
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 03:07:41 pm
sto facendo progressi con questo lazarus..

c'e' in lazarus l'oggetto simile a questo:
https://mdn.mozillademos.org/files/2973/XulListBoxMultiColumn.PNG
http://wiki.freepascal.org/images/1/12/db_large.jpg
cioe' una listbox multicolonna? come si chiama?

Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 15, 2013, 06:07:08 pm
ciao
puoi usare ad esempio la TStringGrid
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 06:24:46 pm
sono riuscito a selezionare l'intera riga con dbgrid.. ma non riesco a capire come associare al fatto che viene selezionata una riga l'esecuzione di uno spezzone di codice
non trovo l'evento onclick
ho usato il keydown ma ovviamente va bene solo per la tastiera
cioe' se clicco col mouse su una riga vorrei visualizare i dati relativi al record in alcune caselle di testo e non riesco a trovare l'evento giusto da usare

scusate se sto approfittando della vs gentilizza
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 15, 2013, 07:40:03 pm
per fare quello che dici tu non hai bisogno di controllare l'evento OnClick della griglia ma devi semplicemente collegare altri data controls allo stesso data source della griglia.

se disponi ad esempio:
1 TDbGrid
1 TDbEdit
1 TDbText
ed associ tutti e tre allo stesso datasource avrai il comportamento che stai cercando senza scrivere codice
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 08:45:09 pm
grazie per l'indicazione
proprio adesso sto provando questi componenti

non capisco come fai con questo codice (usando un campo edit) riesco a cancellare senza problemi
SQLQuery1.SQL.text:='DELETE FROM Student WHERE StudentID='+edit7.text +';';

mentre usando il tdbedit mi da un messaggio di errore:
SQLQuery1.SQL.text:='DELETE FROM Student WHERE StudentID='+dbedit4.text+';';
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 15, 2013, 09:07:37 pm
dbedit4??
UN editor dataware?
Non serve, devi lanciare il comando dal dataset, non da query.
Altrimenti il codice lo devi cambiare in :
Codice: [Seleziona]
QLQuery1.SQL.text:='DELETE FROM Student WHERE StudentID='+dbedit4.Field.asString+';';
(Il codice l'ho scritto a memoria)
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 15, 2013, 09:12:42 pm
non funzionava perche' prima del delete c'era un SQLQuery1.Close;
di conseguenza credo che veniva a mancare il valore presente nel dbedit proprio quando doveva prendere il valore da quell'oggetto

cmq ora sembra funzionare
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 16, 2013, 10:06:20 am
ok per l'SQLQuery1 che era closed, però è meglio non usare la proprietà text di un datacontrol (TDB*) in quanto quello che c'è nel controllo potrebbe non corrispondere con quello che c'è nel dampo del dataset.

devi vedere i datacontrol come dei controlli a cui vengono notificati i dati (oltre che per inserirli ovviamente :) ) da parte del dataset
quindi hai 2 scelte:
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 16, 2013, 06:26:53 pm
sto da ore a cercare di capire come fare per risolvere un problema
sembra banale.. ma non ci sto riuscendo

praticamente ho una memobox con una ventina di righe di testo all'interno e vorrei stamparle

stavo leggendo questo documento
http://wiki.freepascal.org/Using_the_printer
ma non riesco a capire come fare per sostituire al posto della frase scritta nel codice (  HEADLINE = 'I Printed My Very First Text On ';), il contenuto della casella memobox

potreste aiutarmi?
grazie
Titolo: Re:programma di fatturazione
Inserito da: Legolas - Maggio 16, 2013, 07:11:10 pm
Nell'esempio da te citato:

Codice: [Seleziona]
 Canvas.TextOut(LEFTMARGIN, YPos, Memo1.Lines.Text); 

dovrebbe fare quello che ti serve
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 16, 2013, 07:22:55 pm
grazie

sono riuscito a stampare, ma c'e' un piccolissimo problema  :D
se nella memobox c'e' scritto:
uno
due
tre
(cioe' scritte su piu' righe)

sul foglio stampato esce tutto su una sola riga (unoduetre)

io vorrei stampare tutta la memobox con i relativi fine riga (devo scrivermi il codice da solo, tipo con un for oppure c'e' qualcosa di gia' pronto per fare queste cose?)
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 16, 2013, 08:06:07 pm
canvas.textout  dovrebbe lasciare la penna del canvas dove si trova alla fine del disegno...

prova con Canvas.TextOut('ciao' + #10 + 'mondo');
non ci credo più di tanto ma magari funziona...

se non va prova con qualcosa del genere per simulare un a capo
Canvas.MoveTo(0, Canvas.PenPos.Y + 20);
il +20, se funziona, dovremo sostituirlo con l'altezza del font in un secondo momento ;)
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 16, 2013, 08:11:15 pm
Citazione
prova con Canvas.TextOut('ciao' + #10 + 'mondo');
non ci credo più di tanto ma magari funziona...

no, pare che non va

quindi dici che devo fare tutto manualmente, cioe' indicare a mano il punto esatto dove andare a scrivere
pensavo ci fosse qualche funzione gia' pronta per inviare l'intera memobox alla stampa
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 16, 2013, 09:34:09 pm
Oddio, potresti mandare in stampa l'intero form, ma non credo sia di tuo gradimento.
Controlla i sorgenti di SynEdit.
Vedrai che stampare non è il massimo della vita.
Tanti conti e poca soddisfazione ;)
(Al posto del memo, prova ad usare il SynEditor, lui ha già delle funzioni di stampa integrate)
Stilgar
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 17, 2013, 09:31:15 am
ho cercato sul forum ufficiale ed ho trovato questo thread

http://www.lazarus.freepascal.org/index.php?topic=8599.0 (http://www.lazarus.freepascal.org/index.php?topic=8599.0)

sembra che il codice qui sotto funzioni a dovere
Codice: [Seleziona]
procedure PrintTStrings(Lst : TStrings) ;
var
  I,
  //Line : Integer;
begin
  I := 0;
  //Line := 0 ;
  Printer.BeginDoc ;
  for I := 0 to Lst.Count - 1 do begin
    Printer.Canvas.TextOut(0, Line, Lst);
    {Font.Height is calculated as -Font.Size * 72 / Font.PixelsPerInch which returns
     a negative number. So Abs() is applied to the Height to make it a non-negative
     value}
    Line := Line + Abs(Printer.Canvas.TextHeight('I'));
    if (Line >= Printer.PageHeight) then
      Printer.NewPage;
  end;
  Printer.EndDoc;
end;
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 17, 2013, 11:16:31 am
non sono molto pratico.. cosa dovrei scrivere nel codice del pulsante per richiamare questa funzione? e cosa dovrei passargli? il contenuto di memobox?

Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 17, 2013, 11:28:42 am
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 23, 2013, 01:26:14 pm

http://facturlinex.sourceforge.net/

Errata eliminazione del post.
Chiedo scusa.
Titolo: Re:programma di fatturazione
Inserito da: maxt - Maggio 29, 2013, 05:39:27 pm
sto usando il componente dbgrid per visualizzare l'elenco delle fatture
si puo' fare in modo che premendo sulle colonne si visualizzino i dati in ordine alfabetico come avviene in molti programmi?
(cioe' premo sulla colonna cognome e si ordinano i dati presenti in base al cognome, premo sul nome e si ordinano i dati il base al nome)

grazie
Titolo: Re:programma di fatturazione
Inserito da: nomorelogic - Maggio 30, 2013, 09:33:53 am
spero di ricordare bene, devi usare la proprietà di IndexFieldNames del dataset, cambiando quella dovrebbe cambiare l'ordine sulla griglia
Titolo: Re:programma di fatturazione
Inserito da: Stilgar - Maggio 30, 2013, 09:37:55 am
Per ZeosLib
Codice: [Seleziona]
// Uses ZAbstractDataset, ZAbstractRODataset;

procedure TForm.DBGrid1TitleClick(Column: TColumn);

var
  target: TZAbstractDataSet;
begin
  target := TZAbstractDataSet(TDBGrid(Column.Grid).DataSource.DataSet);
  if target.SortedFields <> Column.FieldName then
  begin
    target.SortedFields := Column.FieldName;
    target.SortType := stAscending;
  end
  else
  begin
    case target.SortType of
      stAscending:
      begin
        target.SortType := stDescending;
      end;
      stDescending:
      begin
        target.SortType := stIgnored;
      end;
      stIgnored:
      begin
        target.SortType := stAscending;
      end;
    end;
  end;
end;
Titolo: Re:programma di fatturazione
Inserito da: antoniog - Giugno 01, 2013, 07:17:34 pm
scusate se mi intrometto.
Bravo Stilgar funziona, alcune cose (apparentemente) semplici possono renderci felici.
bisogna solo mettere nella Proprietà della Dbgrid - True - in Options
dgAnyButtonCanSelect
dgHeaderPushedLook
ringrazio anch'io.