Delphi mesterei, exportálás bd-ről szóra
Exportálás DB-ből Word-be
A cikk példákat mutat be a- asztalok
- könyvjelzők
- fejlécek és láblécek
- feliratok
- betűtípusok
- nyíl
Nem fogom belemenni a késő és a korai kötés vonásaiba, mert a témáról szóló információ már elég.
Tehát a feladat egy bizonyos táblázat exportálása Word-ben. Még ha nem is is, létre kell hozni egy komplex dokumentumot fejléccel és táblázatos fejléccel stb. és hasonlók.
Két csodálatos módja van arra, hogy információt kapjunk a Word felületéről.- Annak érdekében, hogy megtanuljon valamit a Delphi-ból a Word-e-ben, meg kell mennie a Word Tools / Macro / Start Recording menübe. Ezután írja le a Word-e-ben, hogy mit kell tennie Delphi-ból és befejezze a makró felvételt. És végül Service / Macro / Macros. válassza a rögzített felvételt. Szerkessze és nézze meg, hogyan működik. Ezután a Delphi szintaxis VBA szintaxisának fordítása egyszerű és nyugodt.
- Egy másik jó eszköz a tudás megszerzéséhez olyan komponensek, mint a TWordApplication. A formanyomtatványt bármely WordApplication1 kezelőtípushoz dobjuk. nyomja meg a ctrl + szóközt, és gondosan olvassa el. A rendelkezésre álló funkciók és tulajdonságok értelme általában intuitív érthetőség.
Van még egy, azt mondták nekem, a leglogikusabb módon - a VBA segítséget, de valamit, amit nem kellett használnom ...
Most egy kis elmélet, melyet ezek a módszerek kivonnak ... A Word egy gyűjteménye dokumentumokat tartalmaz
Minden gyűjtemény számláló tulajdonsággal rendelkezik - a szám így w1.Documents.count - a dokumentumok száma.
A létearium változó (ebben az esetben VR) változó használata néha szükséges, néha nem.
A dokumentumnak saját gyűjteményei vannak:- levelek Most már elérhető
- táblázatok Így kiválaszthatja az utolsó táblázat második oszlopát.
- bekezdések
- számadatok
Még mindig vannak olyan hasznos tárgyak kiválasztása - a kiválasztott területet és a tartomány - a tartománynak, és válassza ki ugyanazt a funkciót - a kiválasztáshoz. Kiválasztáshoz tábla oszlop (ismét W1.ActiveDocument.Tables.Item (W1.ActiveDocument.Tables.Count) .Columns.Item (2) lehetőségre.Válassza), levél, tartomány, bekezdés, stb ...
És a kimeneti dokumentumnak egy címlapnak kell lennie, amelyen egy bizonyos szöveget írnak, a második oldalról van egy felső fejléc, ahol egy bizonyos szöveget is írt. Ezután két módon lehet végrehajtani ezt.
- Sablon használata nélkül.
Új dokumentum jön létre, ahol a fejléceket és lábléceket létrehozzák stb.
Így nem érdemes használni. előfordulhat, hogy különböző számítógépeken az oldal különböző beállításai állnak, a betűtípusok, bekezdések és a gyönyörűen kialakított dokumentum számítógépen nagyon eltérő lehet. Természetesen programozhatja az összes szükséges beállítást, de először is, ne vegye figyelembe, másodszor pedig nagy fékek és sok kód.
- az első oldalon lévő tárgy feliraton a szöveg létrehozásához
- menjen a dokumentum végére
- menj a fejlécre
- a szöveg fejlécében a tárgy feliratában
- térjen vissza a második oldalra
Egyébként a "Feliratkozás" objektumok mellett a könyvjelzők hatékonyan is használhatók. Mit kell tudni, hogyan kell dolgozni velük, elegendő, hogy rögzítse a megfelelő makró, és például jelölje ki a szöveget az első és a második lapot, akkor: Apropó, ha valaki talál egy szép megoldás alkalmazása nélkül változók OleVariant - otpishite én szappan.
Az adatbázisból a dokumentumba küldött kimeneti adatok lehetnek egyesítések vagy soronként. Az egyesítéshez a kód úgy néz ki, mint ez: Az a személy, aki ismeri az adatbázis alapjait, könnyen átalakíthatja ezt a kódot az igényeihez úgy, hogy megváltoztatja a kapcsolat-karakterláncot és a lekérdezést.
A soros kimenethez a létrehozott TableExport eljárást használtam (DataSet: TDataSet, Title, FlagText: string), amely a példában látható. Átmegy az adatkészleten, az asztalfejlécen és a FlagText szövegparaméteren. Ha egyenlő az '' '' értékkel, akkor az egész asztalt exportálják. Ellenkező esetben csak azokat a rekordokat exportálják, amelyek az utolsó mezőértékkel megegyeznek a FlagText-rel. Ez azért van, hogy egy hosszú ideig kiszámított mintát kapjunk, amelyet a jelentés több tábláján át lehetne terjeszteni.
A fejléc, az oszlopszélesség és a megjelenítés vagy a mező megjelenítésének módja a következő mező paraméterekkel állítható be: a fenti példában az adatokat először Wordbe bocsátjuk, majd egy parancsra konvertáljuk egy táblázatra.
Most van még néhány hasznos funkció: Ha az OleContainer segítségével dolgozik, akkor olyan parancsok, mint azok, amelyek eltávolítják a megfelelő menüket, amelyek általában szétszóródnak az űrlapon, feleslegesek lesznek.
Ha a CreateOleObject segítségével dolgozik, hogy a VisualBasic konstansok értékét megkapja, amit a Delphi általában nem érti, a makrón belül szükséges a MsgBox (a szükséges_konstant) írása. Majd megmutatja numerikus értékét, majd használja őket a Delphi-ban.
Most megadom az egész program kódját
Ha valaki ebben a cikkben látja a technikáikat, amelyeket itt ismertetett, kérjük, ne sértse meg. )