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.
  1. 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.
  2. 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:
  1. levelek Most már elérhető
  2. táblázatok Így kiválaszthatja az utolsó táblázat második oszlopát.
  3. bekezdések
  4. számadatok
Nos ... stb.

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 ...

Miért ilyen a szerkezet? Nem számít ... ez csak egy példa. Az egyedi feladat az Akhmetov és Letchikov utcák lakóinak kivitele.
É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.





  1. 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.

  • Sablon használata.

    A lényeg az, hogy előzetesen létrejön egy vord dokumentum, amelyet sablonként használnak. Esetünkben a sablonban az első oldal középpontjában a megfelelő helyen helyeztünk el egy feliratotípust, amelyben megadjuk a szükséges betűtípust és igazítást. Szekciótörést is csinálunk. A fejléc második oldalán is helyezze be a feliratos objektumot. Ebben benne lesz a dokumentum neve. Ezután elkészítünk egy makrót, amelyben megismétlik a Delphi által végrehajtandó műveleteket.
    1. az első oldalon lévő tárgy feliraton a szöveg létrehozásához
    2. menjen a dokumentum végére
    3. menj a fejlécre
    4. a szöveg fejlécében a tárgy feliratában
    5. térjen vissza a második oldalra
  • A következő makrót kapjuk meg: Ha a Delphi kódra konvertáljuk, akkor így kaptuk meg a címlapot és a láblécet.

    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. )




    Kapcsolódó cikkek