; verze z 23.3.2006 ; Autor: Milan Slíva Name('Export HV pro Junák') Designed('WinDUO') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Export výkazů pro Junák') XML:TextFile ; definuje proměnnou textového souboru ;{definice promennych} DeclareRec('Program') WNSType(-1) ;DlgFollowMouse(True) ValidJednotka:String= SetDecimalSize(2) Jednotka:String[6]=GetDataIni('INFO','JunakID'); IsValidID:Boolean; Rozvaha:String=WorkPath+'RZVH99'+Rok(2)+'.wns' VykazZZ:String=WorkPath+'VYZZ99'+Rok(2)+'.wns' if(not ExistFile(Rozvaha)) Error('Nenalezen soubor rozvahy - roční výkazy !!!'+#13+'Proveďte závěrku a pak opakujte zpracování.',mb_IconStop); if(not ExistFile(VykazZZ)) Error('Nenalezen soubor výkazu zisků a ztrát - roční výkazy' !!!'+#13+'Proveďte závěrku a pak opakujte zpracování.',mb_IconStop); ;{definice uvodniho dialogu} Znova: DefDialog('Číslo Vaší jednotky',240,122) DlgShade(-1,'',4,5,230,40) DlgStatic(-1,'Číslo Vaší jednotky',16,16,140) DlgEdit(101,Jednotka,160,12,56,,6,,'0123456789abcdefABCDEF.') DlgOnLineHelp(101,'Zapište číslo Vaší jednotky ve tvaru xxx.yy nebo xxx') DlgButton(id_OK,'OK',8,54); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',165,54); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') IF(DlgExecute()<>ID_OK) Exit; IsValidID=False; if((Length(Jednotka)=3)) begin IsValidID=Length(ValidateStr(Jednotka,'0123456789abcdefABCDEF'))=3; end else if((Length(Jednotka)=6)) begin IsValidID=(CompareStr(Copy(Jednotka,4,1),'.'))and(Length(ValidateStr(Copy(Jednotka,1,3),'0123456789abcdefABCDEF'))=3)and(Length(ValidateStr(Copy(Jednotka,5,2),'0123456789'))=2) end; if(not IsValidID) begin Message('Číslo jednotky musí být ve tvaru xxx.yy nebo xxx',mb_IconStop) GoTo(Znova) end SetDataIni('INFO','JunakID',Jednotka); XMLName:String=GetDataIni('Exporty','Junak_'+Rok(4)) if(Length(XMLName)=0) XMLName:String='HV_'+Rok(4)+'_'+Jednotka+'.xml'; XMLName=GetFileName(XMLName); if(Length(XMLName)=0) Exit; SetDataIni('Exporty','Junak_'+Rok(4),XMLName) ZbyvaRadku:Word PomStr:String DruhStr:String[8] IDFirmy:Word=Program.TypFirmy ID:String Castka:String if((IDFirmy=0) and Program.ZkraceneF) IDFirmy=IDFirmy|256 Rewrite(XML,XMLName) WriteLn(XML,''); WriteLn(XML,''); XMLID:String; if(Length(Jednotka)=3) XMLID='voj' else XMLID='stredisko' WriteLn(XML,'<'+XMLID+' id="'+Jednotka+'">') WriteLn(XML,'') RozvahaCount:LongInt; OpenWNS(Rozvaha) ZbyvaRadku=CountWNSLines(1,IDFirmy) DruhStr='aktiva' While(ZbyvaRadku>0) begin LoadWNSLine(1,IDFirmy) ID=GetFromWNSLine(1,False) if(Length(ID)<>0) begin Castka=NTrim(GetFromWNSLine(7,False)) if(Castka<>0) begin WriteLn(XML,''+Castka+''); Inc(RozvahaCount); end; end else begin DruhStr='pasiva' end; Dec(ZbyvaRadku) end VykazZZCount:LongInt; OpenWNS(VykazZZ) ZbyvaRadku=CountWNSLines(2,IDFirmy) DruhStr='naklady' While(ZbyvaRadku>0) begin LoadWNSLine(2,IDFirmy) ID=GetFromWNSLine(1,False) if(Length(ID)<>0) begin Castka=NTrim(GetFromWNSLine(9,False)) if(Castka<>0) begin WriteLn(XML,''+Castka+''); Inc(VykazZZCount) end; end else begin DruhStr='vynosy' end; Dec(ZbyvaRadku) end WriteLn(XML,''); WriteLn(XML,''); WriteLn(XML,''); Close(XML) Message('Export souboru byl úspěšně dokončen.'+#13+'Exportováno'+#13+'řádků rozvahy: '+Str(RozvahaCount)+#13+'řádků výkazu ZZ: '+Str(VykazZZCount),mb_IconInformation); End