; vzorová DDT sestava z adresáře - vypíše IČO, název firmy, kódy ; verze z 21.8.2002 ; Autor: WinDUO Team Name('Adresář - kódy') ; pod tímto názvem bude sestava v menu FileName('Adr1.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.cz','http://www.winduo.com','http://www.winduo.cz') ;informace o autorovi Descr('Vzorový příklad','zpracuje soubor Adresář (tříděný podle abecedy) a vypíše IČO+název+kódy','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 DefDynTab(10,180,5,10,8,TA_RIGHT,35,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT,2,TA_LEFT) ; definice, jak bude tabulka vypadat 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=50 ; 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 FONTFACE(Normal) ; nastaví normální typ fontu FontSize(3.5) ; nastaví velikost fontu 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 DynTab('IČ'+#9+'Název'+#9+'Kód 1'+#9+'Kód 2'+#9+'Kód 3'+#9+'Kód 4'+#9+'Kód 5'+#9+'Kód 6'+#9+'Kód 7'+#9+'Kód 8') ; tisk hlavičky, #9 je tabelátor Line(15,TabPos+Odstup/2,180,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í 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í 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,'Vzorová sestava') ; 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('IČ'+#9+'Název'+#9+'Kód 1'+#9+'Kód 2') ; tisk hlavičky, #9 je tabelátor DynTab('IČO'+#9+'Název'+#9+'Kód 1'+#9+'Kód 2'+#9+'Kód 3'+#9+'Kód 4'+#9+'Kód 5'+#9+'Kód 6'+#9+'Kód 7'+#9+'Kód 8') ; tisk hlavičky, #9 je tabelátor Line(30,TabPos+Odstup/2,160,0) ; podtrhnuti 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í DynTab(Null(STR(Adresar.ICO),8)+#9+Adresar.Nazev+#9+Adresar.Kod[1]+#9+Adresar.Kod[2]+#9+Adresar.Kod[3]+#9+Adresar.Kod[4]+#9+Adresar.Kod[5]+#9+Adresar.Kod[6]+#9+Adresar.Kod[7]+#9+Adresar.Kod[8]) ; vytiskne údaje z věty z adresáře, do IČO doplní levostranné nuly end ; konec příkazu pro věty, které prošly filtrem end ; konec příkazu pro zpracování jedné věty END ; konec programu