; vzorová DDT sestava z adresáře - vypíše IČO, název firmy, kód 1 a kód 2 ; verze z 11.11.1999 ; Autor: WinDUO Team Name('Adresář - výpis pro Marka') ; pod tímto názvem bude sestava v menu FileName('Marek1.WNS') ; pod tímto názvem bude sestava uložena na disku Designed('Adrman') ; sestava bude dostupná z okna Adrman Author('Winduo Team','EMail: winduo@winduo.mine.nu','http://www.winduo.com','http://winduo.mine.nu') ;informace o autorovi Descr('Vzorový příklad','zpracuje soubor Adresář (tříděný podle abecedy) a vypíše IČO+název+kód1+kód2','Změna třídění - Ne','Filtr - Ano') ;popis sestavy, tento text bude v bublince TabPos=10 ; první řádek na stránce se bude tisknout 10mm shora LocStr:String DefDynTab(0,280,5,27,25,0,30,0,25,0,20,0,6,0,20,0,5,0,15,0,15,0,15,0,60,0,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,2,TA_RIGHT,3,0,3,0,3,0,3,0,3,0,3,0,3,0) FontWidthScale(1.5) SaveTabInfo(1) Veta:LongInt ; definuje proměnnou Strana:Word ; definuje číslo stránky Radek:Word ; promměnná pro počítání vytištěných řádků PocetRadku:Word ; promměnná pro počet řádků na stránku Strana=0 ; úvodní hodnoty = aktuální číslo strany PocetRadku=36 ; kolik řádků na stranu chcete tisknout včetně hlavičky DeclareRec('Adresar') ; přiřadí a definuje větu z adresáře DeclareRec('KeyAdresar2') ; přiřazení a definice třídícího klíče ClearKey(KeyAdresar2) ; resetuje ukazatel aktuální věry v souboru ;hlavička Text(190,TabPos,TA_Right,StrDate(GetDate())) ; tisk hlavičky Text(100,TabPos,TA_Center,'Vzorová sestava') ; tisk hlavičky if(IsFilter(Adresar)) ; dotaz, zda je aktivní filtr do sestav begin ; začátek příkazů, které budou provedeny, když je filtr aktivní DynTab('Aktivní filtr') ; tisk informace o filtru do hlavičky, DynTab zároveň posune na další řádek o hodnotu Odstup, která je definována v DefDynTab end ; konec příkazů, které je provedou, když je aktivní filtr else ; za ELSE je příkaz, který bude proveden, když není aktivní filtr Inc(TabPos,Odstup) ; posun na další řádek, zdvihne hodnotu TabPos o Odstup LocStr:String LocStr='Název'+#9+#9+'Ulice'+#9+'Město'+#9+'PSČ'+#9+'Zástupce'+#9+#9+'Telefon 1'+#9+'Telefon 2'+#9+'Fax' LocStr=LocStr+#9+'Poznámka'+#9+'K1'+#9+'K2'+#9+'K3'+#9+'K4'+#9+'K5'+#9+'K6'+#9+'K7'+#9+'K8'+#9+'P1'+#9+'P2'+#9+'P3'+#9+'P4'+#9+'P5'+#9+'P6'+#9+'P7'+#9+'P8'; DynTab(LocStr) Line(0,TabPos+Odstup/2,280,0) ; podtrhnuti o půl řádku Inc(TabPos,Odstup) ; vytiskne volný řádek - posune souřadnice Radek=Radek+3 ; počítá vytištěné řádky kvůli stránkování LocB:Byte LocB2:Byte LocBo:Boolean While(NextKey(KeyAdresar2,Veta)) ; začátek cyklu přes celý soubor begin ; začátek příkazu pro zpracování jedné věty ReadRec(Adresar,Veta) ; přečte větu ze souboru if(InFilter(Adresar)) ; dotaz, zda věta prošla filtrem begin ; začátek příkazu pro operace s těmi, které prošly filtrem Inc(Radek) ; zvýší hodnotu počtu vytištěných řádků o 1 if(Radek>PocetRadku) ; podmínka pro stránkování begin ; začátek vloženého příkazu pro stránkování NextPage ; zastránkování LoadTabInfo(1) Radek=0 ; vynulování počítadla řádků TabPos=10 ; první řádek na stránce se bude tisknout 10mm shora ;hlavička Text(190,TabPos,TA_Right,StrDate(GetDate())) ; tisk hlavičky Text(100,TabPos,TA_Center,'Opis adresáře včetně kódů') ; tisk hlavičky if(IsFilter(Adresar)) ; dotaz, zda je aktivní filtr do sestav begin DynTab('Aktivní filtr') ; tisk hlavičky end else Inc(TabPos,Odstup) ; posun na další řádek DynTab('Název'+#9+#9+'Ulice'+#9+'Město'+#9+'PSČ'+#9+'Zástupce'+#9+#9+'Telefon 1'+#9+'Telefon 2'+#9+'Fax'+#9+'Poznámka'+#9+'K1'+#9+'K2'+#9+'K3'+#9+'K4'+#9+'K5'+#9+'K6'+#9+'K7'+#9+'K8'+#9+'P1'+#9+'P2'+#9+'P3'+#9+'P4'+#9+'P5'+#9+'P6'+#9+'P7'+#9+'P8') Line(0,TabPos+Odstup/2,280,0) ; podtrhnuti o půl řádku Inc(TabPos,Odstup) ; vytiskne volný řádek - posune souřadnice Radek=Radek+3 ; počítá vytištěné řádky kvůli stránkování end ; konec vloženého příkazu pro stránkování LocStr=Adresar.Nazev+#9+Adresar.Rozsireni+#9+Adresar.Ulice+#9+Adresar.Mesto+#9+Adresar.PSC+#9+Adresar.Zastupce+#9+Adresar.Predcisli+#9+Adresar.Telefon1+#9+Adresar.Telefon2+#9+Adresar.Fax+#9+Adresar.Poznamka+#9 if(Adresar.Kod[1]<>0) begin LocStr=LocStr+Str(Adresar.Kod[1])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[2]<>0) begin LocStr=LocStr+Str(Adresar.Kod[2])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[3]<>0) begin LocStr=LocStr+Str(Adresar.Kod[3])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[4]<>0) begin LocStr=LocStr+Str(Adresar.Kod[4])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[5]<>0) begin LocStr=LocStr+Str(Adresar.Kod[5])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[6]<>0) begin LocStr=LocStr+Str(Adresar.Kod[6])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[7]<>0) begin LocStr=LocStr+Str(Adresar.Kod[7])+#9 end else begin LocStr=LocStr+#9 end if(Adresar.Kod[8]<>0) begin LocStr=LocStr+Str(Adresar.Kod[8])+#9 end else begin LocStr=LocStr+#9 end LocB=0 LocB2=1 While(LocB<8) begin LocBo=Adresar.Flags&LocB2<>0 LocStr=LocStr+LocBo+#9 LocB2=LocB2*2 Inc(LocB) end DynTab(LocStr) end ; konec příkazu pro věty, které prošly filtrem end ; konec příkazu pro zpracování jedné věty END ; konec programu