; verze z 4.2.2014 Designed('') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Rozvaha OSS, ÚSC a příspěvkových organizací','formulář podle 410/2009') FileName('FIRO'+ObdMesic(2)+ObdRok(2)+'.WNS') DeclareRec('Program') FontScale:Real=0.85 Procedure NactiText(PocetRadku:Word); LocW=0; While((EOF(Soubor)=False) and (PocetRadku>0)) begin ReadedLine=ReadLn(Soubor); FirstChar=Asc(ReadedLine) if(FirstChar=Asc('$')) begin end else begin if(FirstChar=Asc('@')) begin ReadedLine=FromChar('@',ReadedLine); end else if(FirstChar=Asc('#')) begin LocStr=FromChar('#',ReadedLine) LocStr=ToChar(',',LocStr) ReadedLine=FromChar(',',FromChar(',',ReadedLine)); ReadedLine=ReadedLine+#9+LocStr; end else begin ReadedLine=ReadedLine+#9; if(FirstChar=Asc('@')) begin ReadedLine=ReadedLine end else begin ReadedLine=ReadedLine+Str(LineNum) Inc(LineNum); end end Inc(LocW); ReadedLine=TransEsc(ReadedLine) CisloStr=ToChar(#9,ReadedLine) ReadedLine=FromChar(#9,ReadedLine) NazevStr=ToChar(#9,ReadedLine) if((LocW=1)or(LocW=106)) begin NazevStr=CisloStr+NazevStr; CisloStr='' end else begin if(CompareStr(Copy(NazevStr,1,2),'- ')) begin NazevStr=Copy(NazevStr,3,255) end; While(CountChar('.',CisloStr)>1) begin CisloStr=FromChar('.',CisloStr) end; end; CisloStrArr[LocW]=CisloStr; NazevStrArr[LocW]=NazevStr; Dec(PocetRadku) end; end; end; ItsBlank:Boolean FormName:String=GetTabName(3); LocStr:String CisloStr:String NazevStr:String SUStr:String; NazevIndex:Real LocW:Word LocR:Real LocB:Byte INI:String=DataPath+'VYKAZY.INI' TiskNul:Boolean=GetBoolean(GetFromIni('VYKAZY','TiskNul',INI)) if(TiskNul) SetFillToBlank('0.00') else SetFillToBlank('') if(Length(ObdMesic(2))<>0) begin Name('Rozvaha - Formulář za '+ObdMesic(2)+ObdRok(2)) end else begin Name('Rozvaha - Prázdný formulář') ItsBlank=True ReadedLine:String FirstChar:Byte LineNum:Word=1 end; PEN(0,0.7) LINE(88,49,100,0) LINE(88,49,0,5) LINE(188,49,0,5) BOX(0,54,188,227) LINE(0,69,188,0) PEN(0,0.3) LINE(88,54,0,226.5) LINES(113,49,0,5,25,0,3) LINES(113,64,0,216.5,25,0,2) LINE(163,59,0,221.5) LINE(81,54,0,227) LINE(5,54,0,227) LINE(88,59,100,0) LINE(88,64,75,0) Global NazevSest1:String='Rozvaha (bilance)' Global NazevSest2:String Global Opatr1:String='Podle Sbírky zákonů' Global Opatr2:String='a 410/2009 ze dne 11.11.2009' Global Opatr3:String='' ;potrebuje, aby byly Globalni (priklad hodnot): Global XZacatek1:Real=0 ; x souradnice zacatku tabulky na 1. straně Global XKonec1:Real=188 ; x souradnice konce tabulky na 1. straně Global YTlusta1:Real=60 ; Y-souradnice prvni tluste cary Global Y1Hlav1:Real=16 CallDDT('HlavVyk.ddt') FONTSIZE(5); FONTFACE(Normal); TEXT(0,52.5,TA_LEFT|TA_BASELINE,'AKTIVA') FONTSIZE(3) FONTFACE(Normal) TEXT(100.5,67.5,TA_CENTER|TA_BASELINE,'BRUTTO'); TEXT(125.5,67.5,TA_CENTER|TA_BASELINE,'KOREKCE'); TEXT(150.5,67.5,TA_CENTER|TA_BASELINE,'NETTO'); FONTFACE(Bold) FontWidthScale(0) STEXT(100.5,52.5,TA_CENTER|TA_BASELINE,25,4,'1234') TEXT(138,57.5,TA_CENTER|TA_BASELINE,'OBDOBÍ') TEXT(43,62.5,TA_CENTER|TA_BASELINE,'Název položky') TEXT(125.5,62.5,TA_CENTER|TA_BASELINE,'BĚŽNÉ') TEXT(175.5,65,TA_CENTER|TA_BASELINE,'MINULÉ') FontRotate(90) TEXT(3.5,61.5,TA_CENTER|TA_BASELINE,'číslo') FontFace(Normal) TEXT(84,61.5,TA_CENTER|TA_BASELINE,'syntetický') TEXT(87,61.5,TA_CENTER|TA_BASELINE,'účet') FontRotate(0) FONTFACE(Bold) ClearFontIndex() if(ItsBlank) begin Soubor:TextFile; Open(Soubor,FormName); NazevStrArr:Array[1..183] of String; CisloStrArr:Array[1..183] of String; NactiText(183) LocW=0; While(LocW<105) begin Inc(LocW); GetFontIndex(72,NazevStrArr[LocW]) end; While(LocW<183) begin Inc(LocW); GetFontIndex(92,NazevStrArr[LocW]) end; end else begin OpenWNS(WNSName) LocW=0; SaveWNSPos(1); While(LocW<105) begin Inc(LocW); VezmiRadek(LocW); GetFontIndex(72,NazevStr); end; While(LocW<183) begin Inc(LocW); VezmiRadek(LocW); GetFontIndex(92,NazevStr); end; LoadWNSPos(1); end; if(ItsBlank) begin FontFace(Normal) FontIndex() Pen(0,0.3); LocW=0 LocR=73 While(LocW<47) begin Inc(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStrArr[LocW])); SUStr=FromChar('|',NazevStrArr[LocW]); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(84.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStrArr[LocW]); LocB=Asc(CisloStrArr[LocW]) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); if(LocB<>0) begin Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end; end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; FontWidthScale(0) end else begin FontFace(Normal) FontIndex() Pen(0,0.3); LocW=0 LocR=73 While(LocW<47) begin Inc(LocW); VezmiRadek(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStr)); SUStr=FromChar('|',NazevStr); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(84.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStr); LocB=Asc(CisloStr) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); if(LocB<>0) begin Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end; end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; LoadWNSPos(1) FontWidthScale(0) FontFace(Bold) TabPos=73.5 DefTab(4,4.5,111,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,136,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,161,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,186,21,TA_RIGHT|TA_BASELINE|TA_NoBlank) TabFromWns(1,5,47,$78) SaveWNSPos(2) end; FONTSIZE(2.5) FontFace(Normal) TEXT(0,282.5,TA_LEFT,'Strana 1 ze 4') TEXT(188,282.5,TA_RIGHT,'Vytištěno systémem WinDUO') ;================================= str. 2 NextPage; PEN(0,0.7) LINE(88,1,100,0) LINE(88,1,0,5) LINE(188,1,0,5) BOX(0,6,188,276) LINE(0,21,188,0) PEN(0,0.3) LINE(88,6,0,276) LINES(113,1,0,5,25,0,3) LINES(113,16,0,266,25,0,2) LINE(163,11,0,271) LINE(81,6,0,276) LINE(5,6,0,276) LINE(88,11,100,0) LINE(88,16,75,0) FONTSIZE(5); FONTFACE(Normal); TEXT(0,4.5,TA_LEFT|TA_BASELINE,'AKTIVA') FONTSIZE(3) FONTFACE(Normal) TEXT(100.5,19.5,TA_CENTER|TA_BASELINE,'BRUTTO'); TEXT(125.5,19.5,TA_CENTER|TA_BASELINE,'KOREKCE'); TEXT(150.5,19.5,TA_CENTER|TA_BASELINE,'NETTO'); FONTFACE(Bold) FontWidthScale(0) STEXT(100.5,4.5,TA_CENTER|TA_BASELINE,25,4,'1234') TEXT(138,9.5,TA_CENTER|TA_BASELINE,'OBDOBÍ') TEXT(43,14.5,TA_CENTER|TA_BASELINE,'Název položky') TEXT(125.5,14.5,TA_CENTER|TA_BASELINE,'BĚŽNÉ') TEXT(175.5,17,TA_CENTER|TA_BASELINE,'MINULÉ') FontRotate(90) TEXT(3.5,13.5,TA_CENTER|TA_BASELINE,'číslo') FontFace(Normal) TEXT(84,13.5,TA_CENTER|TA_BASELINE,'syntetický') TEXT(87,13.5,TA_CENTER|TA_BASELINE,'účet') FONTFACE(Bold) FontRotate(0) if(ItsBlank) begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=24.5 While(LocW<105) begin Inc(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStrArr[LocW])); SUStr=FromChar('|',NazevStrArr[LocW]); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(84.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStrArr[LocW]); LocB=Asc(CisloStrArr[LocW]) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); if(LocB<>0) begin Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end; end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; FontWidthScale(0) end else begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=24.5 While(LocW<105) begin Inc(LocW); VezmiRadek(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStr)); SUStr=FromChar('|',NazevStr); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(84.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStr); LocB=Asc(CisloStr) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; LoadWNSPos(2) FontWidthScale(0) FontFace(Bold) TabPos=25.5 DefTab(4,4.5,111,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,136,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,161,21,TA_RIGHT|TA_BASELINE|TA_NoBlank,186,21,TA_RIGHT|TA_BASELINE|TA_NoBlank) TabFromWns(1,5,58,$78) SaveWNSPos(3) end; FONTSIZE(2.5) FontFace(Normal) TEXT(0,282.5,TA_LEFT,'Strana 2 ze 4') TEXT(188,282.5,TA_RIGHT,'Vytištěno systémem WinDUO') ;================================= str. 3 NextPage; PEN(0,0.7) LINE(108,1,80,0) LINE(108,1,0,5) LINE(188,1,0,5) BOX(0,6,188,275.5) LINE(0,16,188,0) PEN(0,0.3) LINE(108,6,0,275.5) LINE(146,1,0,5) LINE(146,11,0,270.5) LINE(101,6,0,275.5) LINE(5,6,0,275.5) LINE(108,11,80,0) FONTSIZE(5); FONTFACE(Normal); TEXT(0,4.5,TA_LEFT|TA_BASELINE,'PASIVA') FONTSIZE(3) FONTFACE(Bold) FontWidthScale(0) STEXT(126,4.5,TA_CENTER|TA_BASELINE,40,4,'12') TEXT(146,9.5,TA_CENTER|TA_BASELINE,'OBDOBÍ') TEXT(53,12.5,TA_CENTER|TA_BASELINE,'Název položky') TEXT(126,14.5,TA_CENTER|TA_BASELINE,'BĚŽNÉ') TEXT(166,14.5,TA_CENTER|TA_BASELINE,'MINULÉ') FontRotate(90) XTEXT(3.5,11.5,7,TA_CENTER|TA_BASELINE,'číslo') FontFace(Normal); XTEXT(104,11.5,7,TA_CENTER|TA_BASELINE,'syntetický') XTEXT(107,11.5,7,TA_CENTER|TA_BASELINE,'účet') FontFace(Bold); FontRotate(0) if(ItsBlank) begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=19.5 While(LocW<164) begin Inc(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStrArr[LocW])); SUStr=FromChar('|',NazevStrArr[LocW]); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(104.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStrArr[LocW]); LocB=Asc(CisloStrArr[LocW]) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); if(LocB<>0) begin Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end; end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; FontWidthScale(0) end else begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=19.5 While(LocW<164) begin Inc(LocW); VezmiRadek(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStr)); Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStr); SUStr=FromChar('|',NazevStr); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(104.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; LocB=Asc(CisloStr) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; LoadWNSPos(3) FontWidthScale(0) FontFace(Bold) TabPos=20 DefTab(4,4.5,144,36,TA_RIGHT|TA_BASELINE|TA_NoBlank,184,36,TA_RIGHT|TA_BASELINE|TA_NoBlank) TabFromWns(1,5,59,$78) SaveWNSPos(4) end; FONTSIZE(2.5) FontFace(Normal) TEXT(0,282.5,TA_LEFT,'Strana 3 ze 4') TEXT(188,282.5,TA_RIGHT,'Vytištěno systémem WinDUO') ;{================================ str. 4} NextPage; PEN(0,0.7) LINE(108,1,80,0) LINE(108,1,0,5) LINE(188,1,0,5) BOX(0,6,188,95.5) LINE(0,16,188,0) PEN(0,0.3) LINE(108,6,0,95.5) LINE(146,1,0,5) LINE(146,11,0,90.5) LINE(101,6,0,95.5) LINE(5,6,0,95.5) LINE(108,11,80,0) BOXA(0,237,188,263) FONTSIZE(5); FONTFACE(Normal); TEXT(0,4.5,TA_LEFT|TA_BASELINE,'PASIVA') FONTSIZE(3) FONTFACE(Bold) FontWidthScale(0) STEXT(126,4.5,TA_CENTER|TA_BASELINE,40,4,'12') TEXT(146,9.5,TA_CENTER|TA_BASELINE,'OBDOBÍ') TEXT(53,12.5,TA_CENTER|TA_BASELINE,'Název položky') TEXT(126,14.5,TA_CENTER|TA_BASELINE,'BĚŽNÉ') TEXT(166,14.5,TA_CENTER|TA_BASELINE,'MINULÉ') FontRotate(90) XTEXT(3.5,11.5,7,TA_CENTER|TA_BASELINE,'číslo') FontFace(Normal); XTEXT(104,11.5,7,TA_CENTER|TA_BASELINE,'syntetický') XTEXT(107,11.5,7,TA_CENTER|TA_BASELINE,'účet') FontFace(Bold); FontRotate(0) if(ItsBlank) begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=19.5 While(LocW<183) begin Inc(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStrArr[LocW])); SUStr=FromChar('|',NazevStrArr[LocW]); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(104.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStrArr[LocW]); LocB=Asc(CisloStrArr[LocW]) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); if(LocB<>0) begin Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end; end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; FontWidthScale(0) end else begin FontFace(Normal) FontIndex() Pen(0,0.3); LocR=19.5 While(LocW<183) begin Inc(LocW); VezmiRadek(LocW); Text(7,LocR,TA_LEFT|TA_BASELINE,ToChar('|',NazevStr)); SUStr=FromChar('|',NazevStr); if(Asc(SUStr)=40) begin SUStr=FromChar('(',ToChar(')',SUStr)); Text(104.5,LocR,TA_CENTER|TA_BASELINE,SUStr); end; Text(2.5,LocR,TA_CENTER|TA_BASELINE,CisloStr); LocB=Asc(CisloStr) if(((LocB>=Asc('A'))and(LocB<=Asc('H')))or(LocB=0)) begin Line(0,LocR+1,188,0); Pen(0,0.5); Line(0,LocR-3.5,188,0); Pen(0,0.3); end else begin if(LocB>=Asc('I')) begin Line(0,LocR-3.5,188,0); end Line(5,LocR+1,183,0); end; LocR=LocR+4.5 end; LoadWNSPos(4) FontWidthScale(0) FontFace(Bold) TabPos=20 DefTab(4,4.5,144,36,TA_RIGHT|TA_BASELINE|TA_NoBlank,184,36,TA_RIGHT|TA_BASELINE|TA_NoBlank) TabFromWns(1,5,19,$78) end; FontFace(Normal) TEXT(3,240,TA_LEFT,'Odesláno dne:') TEXT(29,240,TA_LEFT,'Razítko:') TEXT(55,240,TA_LEFT,'Podpis odpovědné') TEXT(55,243.5,TA_LEFT,'osoby:') TEXT(89,240,TA_LEFT,'Podpis osoby odpovědné') TEXT(89,243.5,TA_LEFT,'za sestavení:') TEXT(145,240,TA_LEFT,'Okamžik sestavení:') TEXT(89,257,TA_LEFT,'Telefon:') FONTSIZE(2.5) FontFace(Normal) TEXT(0,282.5,TA_LEFT,'Strana 4 ze 4') TEXT(188,282.5,TA_RIGHT,'Vytištěno systémem WinDUO') Procedure VezmiRadek(Radek:Word) LoadWNSLine(1,5); CisloStr=GetFromWNSLine(1) NazevStr=GetFromWNSLine(2) if((Radek=1)or(Radek=106)) begin NazevStr=CisloStr+NazevStr; CisloStr='' end else begin if(CompareStr(Copy(NazevStr,1,2),'- ')) begin NazevStr=Copy(NazevStr,3,255) end; While(CountChar('.',CisloStr)>1) begin CisloStr=FromChar('.',CisloStr) end; end; end; END