; 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,' ');
IF(Cislo)
Writeln(HTML,' | Skladové číslo | ');
IF(Kod)
Writeln(HTML,' Kód | ');
Writeln(HTML,' Název položky | ');
IF(MJ)
Writeln(HTML,' MJ | ');
IF(CenaA)
Writeln(HTML,' Cena A | ');
IF(CenaB)
Writeln(HTML,' Cena B | ');
IF(CenaC)
Writeln(HTML,' Cena C | ');
IF(CenaD)
Writeln(HTML,' Cena D | ');
IF(CenaP)
Writeln(HTML,' Cena P | ');
IF(DPH)
Writeln(HTML,' Sazba DPH | ');
IF(Skladem)
Writeln(HTML,' Na skladě | ');
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,' | '+Sklad.Material+' | ');
IF(Kod)
Writeln(HTML,' '+Sklad.Kod+' | ');
Writeln(HTML,' '+Sklad.Nazev+' | ');
IF(MJ)
Writeln(HTML,' '+Sklad.MJ+' | ');
IF(CenaA)
Writeln(HTML,' '+Str(Sklad.CenaA,,2)+' | ');
IF(CenaB)
Writeln(HTML,' '+Str(Sklad.CenaB,,2)+' | ');
IF(CenaC)
Writeln(HTML,' '+Str(Sklad.CenaC,,2)+' | ');
IF(CenaD)
Writeln(HTML,' '+Str(Sklad.CenaD,,2)+' | ');
IF(CenaP)
Writeln(HTML,' '+Str(Sklad.PrumNC,,2)+' | ');
IF(DPH)
begin
IF(Sklad.SazbaDPH=2)
Writeln(HTML,' 0 % | ');
IF(Sklad.SazbaDPH=1)
Writeln(HTML,' '+Str(SazbaDPH(False,GetDate()))+' % | ');
IF(Sklad.SazbaDPH=0)
Writeln(HTML,' '+Str(SazbaDPH(True,GetDate()))+' % | ');
end
SklademLog=(Sklad.PocStav+Sklad.Prijmy-Sklad.Vydaje>0)
IF((Skladem) AND (Sklad.TypKarty=0))
Writeln(HTML,' '+SklademLog+' | ');
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,' |
')
Writeln(HTML,'
')
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