; toto je ukazka novych moznosti interpretru DDT, popis bude k dispozici pozdeji Name('Volitelný ceník ve formátu 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','zpracuje soubor Ceník (údaje dle volby) do HTML tvaru (do 1 souboru)','Změna třídění - Ne','Filtr - Ano') 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 HTML:TextFile ; definuje proměnnou textového souboru NazevSouboru:String=WorkPath+'Cenik.htm' ;cesta a nazev vystupniho HTML souboru Pozice:LongInt SklademLog:Boolean WNSType(-1); ; definuje že DDT nedefinuje žádný standardní výstup DlgFollowMouse(False) ;inicializace, nacteni promennych INI:String=DataPath+'HTML.INI' Cislo:Boolean=GetBoolean(GetFromIni('CENIK1','Cislo',INI)) Kod:Boolean=GetBoolean(GetFromIni('CENIK1','Kod',INI)) DPH:Boolean=GetBoolean(GetFromIni('CENIK1','DPH',INI)) MJ:Boolean=GetBoolean(GetFromIni('CENIK1','MJ',INI)) CenaA:Boolean=GetBoolean(GetFromIni('CENIK1','CenaA',INI)) CenaB:Boolean=GetBoolean(GetFromIni('CENIK1','CenaB',INI)) CenaC:Boolean=GetBoolean(GetFromIni('CENIK1','CenaC',INI)) CenaD:Boolean=GetBoolean(GetFromIni('CENIK1','CenaD',INI)) CenaP:Boolean=GetBoolean(GetFromIni('CENIK1','CenaP',INI)) Skladem:Boolean=GetBoolean(GetFromIni('CENIK1','Skladem',INI)) Result:Integer=999 ;{definice uvodniho dialogu} DefDialog('Export ceníku do HTML kódu',462,214) DlgShade(-1,'',4,27,453,114) DlgStatic(-1,' Volba údajů pro zveřejnění',3,5,184) DlgCheckBox(10,Cislo,16,34,180,,'Uvést číslo zboží') DlgOnLineHelp(10,'Ano / Ne') DlgCheckBox(20,Kod,16,50,180,,'Uvést kód zboží') DlgOnLineHelp(20,'Ano / Ne') DlgCheckBox(30,DPH,16,66,180,,'Uvést sazbu DPH') DlgOnLineHelp(30,'Ano / Ne') DlgCheckBox(40,MJ,16,82,180,,'Uvést měrnou jednotku') DlgOnLineHelp(40,'Ano / Ne') DlgCheckBox(100,CenaA,200,34,132,,'Zveřejnit cenu A') DlgOnLineHelp(100,'Ano / Ne') DlgCheckBox(101,CenaB,200,50,132,,'Zveřejnit cenu B') DlgOnLineHelp(101,'Ano / Ne') DlgCheckBox(102,CenaC,200,66,132,,'Zveřejnit cenu C') DlgOnLineHelp(102,'Ano / Ne') DlgCheckBox(103,CenaD,200,82,132,,'Zveřejnit cenu D') DlgOnLineHelp(103,'Ano / Ne') DlgCheckBox(104,CenaP,200,98,250,,'Zveřejnit prům.nákupní cenu P ???') DlgOnLineHelp(104,'V HTML verzi ceníku bude uvedena i průměrná nákupní cena P !!!') DlgCheckBox(105,Skladem,200,114,132,,'Zboží je skladem') DlgOnLineHelp(105,'Zveřejnit údaj Ano/Ne, pokud zboží je/není na skladě') DlgButton(id_OK,'OK',414-124,146); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',373,146); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') ;DlgButton(id_Help,'Help',33,334); ;DlgOnLineHelp(id_Help,'Help') ;DlgSetHelp(help_Context,1040) IF(DlgExecute(True)<>ID_OK) Halt SetToIni('CENIK1','Cislo',Cislo,INI) SetToIni('CENIK1','Kod',Kod,INI) SetToIni('CENIK1','DPH',DPH,INI) SetToIni('CENIK1','MJ',MJ,INI) SetToIni('CENIK1','CenaA',CenaA,INI) SetToIni('CENIK1','CenaB',CenaB,INI) SetToIni('CENIK1','CenaC',CenaC,INI) SetToIni('CENIK1','CenaD',CenaD,INI) SetToIni('CENIK1','CenaP',CenaP,INI) SetToIni('CENIK1','Skladem',Skladem,INI) Rewrite(HTML,NazevSouboru) ; otevře textový soubor DeclareRec('Sklad') ; přiřadí a definuje větu ze Skladu DeclareRec('KeySklad1') ; přiřadí a definuje první klíč Skladu ClearKey(KeySklad1) ; resetuje ukazatel aktuální věry v souboru Writeln(HTML,'') Writeln(HTML,'') Writeln(HTML,'') Writeln(HTML,'
') Writeln(HTML,'') Writeln(HTML,' '); IF(Cislo) Writeln(HTML,' '); IF(Kod) Writeln(HTML,' '); Writeln(HTML,' '); IF(MJ) Writeln(HTML,' '); IF(CenaA) Writeln(HTML,' '); IF(CenaB) Writeln(HTML,' '); IF(CenaC) Writeln(HTML,' '); IF(CenaD) Writeln(HTML,' '); IF(CenaP) Writeln(HTML,' '); IF(DPH) Writeln(HTML,' '); IF(Skladem) Writeln(HTML,' '); Writeln(HTML,''); InitStatus(UsedKeys(KeySklad1),'Vytvářím HTML soubor') While(NextKey(KeySklad1,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 Writeln(HTML,''); IF(Cislo) Writeln(HTML,' '); IF(Kod) Writeln(HTML,' '); Writeln(HTML,' '); IF(MJ) Writeln(HTML,' '); IF(CenaA) Writeln(HTML,' '); IF(CenaB) Writeln(HTML,' '); IF(CenaC) Writeln(HTML,' '); IF(CenaD) Writeln(HTML,' '); IF(CenaP) Writeln(HTML,' '); IF(DPH) begin IF(Sklad.SazbaDPH=2) Writeln(HTML,' '); IF(Sklad.SazbaDPH=1) Writeln(HTML,' '); IF(Sklad.SazbaDPH=0) Writeln(HTML,' '); end SklademLog=(Sklad.PocStav+Sklad.Prijmy-Sklad.Vydaje>0) IF((Skladem) AND (Sklad.TypKarty=0)) Writeln(HTML,' '); Writeln(HTML,''); end ; konec příkazu pro věty, které prošly filtrem Inc(Pozice) SetStatus(Pozice) end ; konec příkazu pro zpracování jedné věty Writeln(HTML,'
Skladové čísloKódNázev položkyMJCena ACena BCena CCena DCena PSazba DPHNa skladě
'+Sklad.Material+''+Sklad.Kod+''+Sklad.Nazev+''+Sklad.MJ+''+Str(Sklad.CenaA,,2)+''+Str(Sklad.CenaB,,2)+''+Str(Sklad.CenaC,,2)+''+Str(Sklad.CenaD,,2)+''+Str(Sklad.PrumNC,,2)+' 0 % '+Str(SazbaDPH(False,GetDate()))+' %'+Str(SazbaDPH(True,GetDate()))+' %'+SklademLog+'
') Writeln(HTML,'
Generováno programem WinDUO - '+StrDate(GetDate())+' '+StrTime(GetTime())+'
') Writeln(HTML,'') Writeln(HTML,'') Message('HTML soubor'+#13+#13+NazevSouboru+#13+#13+'byl úspěšně vytvořen.',mb_IconInformation); END