Creați generator rapoarte Microsoft Excel pentru Delfi, blog-tech
De ce avem nevoie de un sistem de raportare
Internetul a fost mult timp o mare de informații cu privire la interacțiunea dintre Delphi și Microsoft Excel, și nu voi scrie un alt ghid. În schimb, propun să văd cum se poate dezvolta destul de ușor rapoartele lor la sistemul de ieșire Excel, ceea ce este suficient pentru decizia în cazul în care nu toate, dar cele mai multe probleme.
Atunci când fiecare raport este cod format complet în Delphi dezavantaj al acestei metode a fost aceea a codului Delphi nu a putut vedea logica procesului de creare a raportului, și cel mai important - pentru a schimba orice detaliu în proiectarea a trebuit să facă modificări codului și recompilați proiectului. Apoi, ideea de a scrie un generator de raport mic, și un șablon de raport - acesta este de obicei fișierul ekselevsky că oricine va fi capabil de a corecta ceea ce are nevoie, și pentru a determina în prealabil formatul de ieșire pentru imprimare.
Dispozitivul este un instrument de auto-raportare pentru Excel
Baza modelului alcătuiesc „benzi“. Band este una sau mai multe linii dispuse într-un rând și având una și aceeași etichetă - numele trupei. Acesta este pus în prima coloană a fiecărui rând. Asta despre șablon de raport arată gata:
componenta noastră va fi capabil de a deschide șablonul, introduceți banda specificată, se introduce valoarea variabilelor, de la ultimul inserat Bend pentru a arăta progresul într-o serie de linii derivate (pentru simplitate nu ne va deranja cu eroare de calcul din total), precum și adecvată pentru a deschide rezultatul în sine.
Raport de clasă în sine este foarte simplu:
Începe construcția oricărui raport va fi o procedură de provocare OpenTemplate, care va rula Excel, deschideți-l în modelul dorit, precum și să inițieze variabile suplimentare necesare:
Acesta menționează TA7xProgress obiect, care este pur și simplu o formă cu o pereche de tag-uri pentru a afișa pentru utilizator progresul de construcție al raportului pe care el nu cred că programul se blochează.
Odată ce șablonul este deschis, raportul de cod de construcție va determina metoda PasteBand ori de câte ori este necesar să adăugați la foaia goală originală a unui alt bucată de șablonul de raport.
Tehnologia presupune adăugarea de trupe pe care le-am pus în benzi, chiar înainte de model, lăsând astfel șablonul este întotdeauna la sfârșitul documentului. Pentru aceasta vom găsi am dorit trupa pe nume începe să se uite după ultimul contact al benzii de inserat și dincolo, și, în plus, să definească lungimea și a găsit o bandă. Adică următoarea bucată de cod în variabile FirstBandLine LastBandLine și să păstreze începutul și sfârșitul benzii:
Mai mult, acest model a fost găsit kopipasta inserat imediat după ultimul contact de Band, în cazul în care deja a fost:
Ei bine, schimbarea variabilelor care indică poziția ultima linie a raportului, și ceea ce este acum copiat formația noastră. Ultima trebuie să știți în ce variază termenul pentru a căuta noi dorit numele variabilei pentru a înlocui valorile sale:
Următoarea metodă care va fi utilizată pentru a obține valori pentru șablonul piesă deja copiat - SetValue. Codul pentru această metodă este extrem de simplu, după cum căutări, înlocuind valorile într-un interval dat, prin intermediul Excel:
Metoda SetValue trebuie să fie numit de câte ori suntem pe valorile corecte, am banda. În cele din urmă, după toate benzile vor fi retrase, ultima metodă se numește - Show, care în cele din urmă eliminat șablonul, care este deplasat la sfârșitul documentului, iar Trnsfer Excel din starea invizibil pentru vizibil.
Este demn de menționat faptul că, dacă spunem să-și întrerupă raportul de depanare pentru a apelului Excel.Visible: = true; atunci Excel va rămâne agățat în memoria invizibilă, și o nouă instanță a Excel este creat pentru următorul raport.
Care este utilizarea instrumentului de raportare în Delphi cod-
Acum, cel mai interesant - un exemplu al acestui generator de rapoarte:
Aici este procedura completă care utilizează șablonul prezentat mai sus afișează o anumită factură în format Excel:
După cum puteți vedea, logica formării plăcii de imprimare este complet transparentă și nu este împovărat cu valorile tehnice ale codului de ieșire în celulele dorite Microsoft Excel - toate acestea are grijă de componenta noastră a raportului, și, în plus, spre deosebire de multe instrumente de raportare, avem un Delphi toată puterea de a calcula și de a obține avem nevoie de valori în diferite părți ale procesului de creare a raportului.
Și acum cel mai important lucru ...
Unde pot obține acest sistem minunat și chiar liber
Pagina de start a proiectului este pe a7in.com