; toto je ukazka novych moznosti interpretru DDT, popis bude k dispozici pozdeji ; datum 22.4.2002 Name('Stránkovaný ceník HTML') ; pod tímto názvem bude sestava v menu Designed('Skl_Man#1') ; sestava bude dostupná z okna Skl_man Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') ;informace o autorovi Descr('Vzorový příklad - HTML dle druhů','zpracuje soubor Ceník (ceny A) do HTML tvaru (do více souborů)','Změna třídění - Ne','Filtr - Ano') ;popis sestavy, tento text bude v bublince IF(Version()<6) Error('Tento soubor nelze zpracovat ve Vaší verzi WinDUO'+#13+#13+'Zajistěte si vyšší verzi...',mb_IconStop) Veta:LongInt ; definuje proměnnou Pozice:LongInt HTML:TextFile ; definuje proměnnou textového souboru Pre:TextFile ; definuje proměnnou textového souboru PocetRadku:Word=100 ; definuje pocet radku v tabulce HTML souboru ActHtml :Word Radek :Word NextFile :Boolean=True LastZn :Char NewZn :Char LastAlp :Byte; AlpArray :Array[0..255] of Byte; ProButton :Array[0..255] of Word LocB :Byte LocStr :String WNSType(-1); ; definuje že DDT nedefinuje žádný standardní výstup DeclareRec('Sklad') ; přiřadí a definuje větu ze Skladu DeclareRec('KeySklad5') ; přiřadí a definuje první klíč Skladu ClearKey(KeySklad5) ; resetuje ukazatel aktuální věty v souboru InitStatus(UsedKeys(KeySklad5),'Vytvářím pomocné soubory') While(NextKey(KeySklad5,Veta)) ; začátek cyklu přes celý soubor begin ; začátek příkazu pro zpracování jedné věty ReadRec(Sklad,Veta) ; přečte větu ze souboru if(InFilter(Sklad)) ; dotaz, zda věta prošla filtrem begin ; začátek příkazu pro operace s těmi, které prošly filtrem if(ActHTML<>0) begin NewZn=UpCase(Copy(Sklad.Nazev,1,1)) if(Length(Sklad.Nazev)<>0) begin if((Asc(LastZn)<>Asc(NewZn)) and (Radek>=PocetRadku-1)) begin Radek=0 NextFile=True end end end; if(NextFile) begin if(ActHTML<>0) begin Writeln(HTML,''); Writeln(HTML,'') Writeln(HTML,'') if(ActHtml>1) begin Writeln(HTML,'') end else begin Writeln(HTML,'') end; Writeln(HTML,'') Writeln(HTML,'') Writeln(HTML,'
<<< Předchozí <<< >>> Následující >>>
'); Writeln(HTML,'') Writeln(HTML,'') Close(HTML) end; Inc(ActHTML) SetStatusRemark('CN'+Null(Str(ActHtml),6)+'.PRE') Rewrite(HTML,'CN'+Null(Str(ActHtml),6)+'.PRE',True) ; otevře textový soubor NextFile=False Writeln(HTML,'') Writeln(HTML,''); Writeln(HTML,' '); Writeln(HTML,' '); Writeln(HTML,' '); Writeln(HTML,''); end; NewZn=UpCase(Copy(Sklad.Nazev,1,1)) if(Length(Sklad.Nazev)<>0) begin if(Asc(LastZn)<>Asc(NewZn)) begin Writeln(HTML,' ') LastZn=NewZn AlpArray[LastAlp]=Asc(NewZn) LastAlp=Asc(NewZn) ProButton[LastAlp]=ActHTML; Inc(Radek) end end Writeln(HTML,''); Writeln(HTML,' '); Writeln(HTML,' '); Writeln(HTML,' '); Writeln(HTML,''); Inc(Radek); if(Radek>=PocetRadku) begin Radek=0 NextFile=True end; end ; konec příkazu pro věty, které prošly filtrem Inc(Pozice) SetStatus(Pozice) ; nastaveni ukazovatele stavu end ; konec příkazu pro zpracování jedné věty Writeln(HTML,'
Skladové čísloNázev položkyCena
'+NewZn+'
'+Sklad.Material+''+Sklad.Nazev+''+Str(Sklad.CenaA,,2)+'
') Writeln(HTML,'') if(ActHtml>1) begin Writeln(HTML,'') end else begin Writeln(HTML,'') end; Writeln(HTML,'') Writeln(HTML,'') Writeln(HTML,'
<<< Předchozí <<<
') Close(HTML) ;SetStatusText('Doplňuji hlavičky') SetStatusText('Vytvářím HTML soubory') Radek=0 While(Radek') Writeln(HTML,'') Writeln(HTML,'
') LocB=AlpArray[0] While(LocB<>0) begin if(ProButton[LocB]<>0) begin Writeln(HTML,' '+Char(LocB)+' ' end LocB=AlpArray[LocB] end Writeln(HTML,'
'); Writeln(HTML,'') if(Radek>1) begin Writeln(HTML,'') end else begin Writeln(HTML,'') end; Writeln(HTML,'') if(Radek >>> Následující >>> ') end else begin Writeln(HTML,'') end; Writeln(HTML,'
<<< Předchozí <<<

'); While(not EOF(Pre)) begin LocStr=ReadLn(Pre) Writeln(HTML,LocStr) end ; Poznámka pro modifikátory: Pokud jste s naším programem spokojeni, nechte prosím na dalších řádcích odkaz na náš program, budeme Vám vděčni Writeln(HTML,'

Generováno programem ') Writeln(HTML,'WinDUO') Writeln(HTML,' - '+StrDate(GetDate())+' '+StrTime(GetTime())); Writeln(HTML,'       (Strana '+Str(Radek)+' z '); Writeln(HTML,''+Str(ActHTML)+')
') Writeln(HTML,'
') Writeln(HTML,'') Writeln(HTML,'') Close(HTML) Close(Pre) DeleteFile('CN'+Null(Str(Radek),6)+'.PRE') end; Inc(Radek) SetStatusRemark('Mažu zbytečné soubory') While(ExistFile('CN'+Null(Str(Radek),6)+'.HTM')) begin DeleteFile('CN'+Null(Str(Radek),6)+'.HTM') Inc(Radek) end SetStatusRemark('Hotovo') if(ActHTML>1) Message('HTML soubory CN000001.HTM až CN'+Null(Str(ActHTML),6)+'.HTM'+#13+'byly úspěšně vytvořeny ve složce: '+#13+WorkPath+#13+'Souborů: '+Str(ActHtml),mb_IconInformation); else Message('HTML soubor CN000001.HTM'+#13+'byl úspěšně vytvořen ve složce: '+#13+WorkPath+#13,mb_IconInformation); END