; sestava DDT ze skladu - vypíše složení výrobků ; verze z 14.2.2018 ; Autor: Milan Sliva Name('Export složení výrobku') Designed('Skl_Man#1','Skl_Man#2','Skl_Man') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Exportuje skladové karty výrobků','do souboru CVS','Změna třídění - Ne','Filtr - Ne') WNSType(-1) Veta:LongInt ; definuje proměnnou PocetRadku:LongInt DeclareRec('Sklad') DeclareRec('Vyrobek') DeclareRec('KeySklad1') DeclareRec('KeySklad10') DeclareRec('KeyVyrobek3') GetBindRec('Sklad') if(Sklad.TypKarty<>2) Halt('Zvolená karta není kartou výrobku!'); DlgFollowMouse(False) ;{*******************************************************************************************************************************} ;{nacteni ini} INIPath:String=WorkPath+'vyrobek.csv' Soubor:String=GetFromIni('Global','VyrobekCSV',INIPath) if(Length(Soubor)=0) Soubor=IniPath; DefDialog('Export složení výrobku',445,120) DlgShade(-1,'',5,5,435,42) DlgStatic(-1,'Název souboru',16,16,112); DlgEdit(140,Soubor,128,12,236) DlgFileButton(140,364,11); DlgButton(id_OK,'OK',305,54); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',375,54); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') Result:Integer=DlgExecute() if(Result=ID_Cancel) Halt SetToIni('Global','VyrobekCSV',Soubor); TXT:TextFile Rewrite(TXT,Soubor); PrvniVeta:LongInt PrvniKlic:KeyVyrobek3 PrvniKlic.Length=4 PrvniKlic.CisloVyrobku=SwapL(Sklad.Cislo) PocetRadku=0 if(SearchKey(PrvniKlic,PrvniVeta)) begin if(PrvniKlic.CisloVyrobku=SwapL(Sklad.Cislo))) begin Znova: Inc(PocetRadku) if(NextKey(KeyVyrobek3,Veta)) begin if(KeyVyrobek3.CisloVyrobku=SwapL(Sklad.Cislo)) GoTo(Znova); end; end; end Sklad2:Sklad if((PocetRadku<>0)and(FindKeyAndRef(PrvniKlic,PrvniVeta))) begin While(PrvniKlic.CisloVyrobku=SwapL(Sklad.Cislo)) begin ReadRec(Vyrobek,PrvniVeta) KeySklad10.Length=4 KeySklad10.Cislo=SwapL(Vyrobek.CisloMat) if(FindKey(KeySklad10,Veta)) ReadRec(Sklad2,Veta) else ClearRec(Sklad2) WriteLn(TXT,Vyrobek.Material,#9,Sklad2.Sklad,#9,Sklad2.Nazev,#9,TransChar('.',',',Str(Vyrobek.Mnozstvi,,3)),#9,Sklad2.MJ); if(not NextKey(PrvniKlic,PrvniVeta)) PrvniKlic.CisloVyrobku=0 end end Message('Soubor'+#13+Soubor+#13+'byl vytvořen...',mb_IconInformation); END ; konec programu