; Rozvaha pro podnikatele v plném rozsahu pro rok 2003 ; verze z 17.3.2004 Designed('') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Rozvaha pro podnikatele v plném rozsahu','podle Vyhl. 500/2002 Sb. pro rok 2003') FileName('FIRO'+ObdMesic(2)+ObdRok(2)+'.WNS') Procedure PrintText(PocetRadku:Word,PrintLine:Word); While((EOF(Soubor)=False) and (PocetRadku>0)) begin ReadedLine=ReadLn(Soubor); FirstChar=Asc(ReadedLine) if(FirstChar=Asc('$')) begin end else begin JeCislo=False if(Zjednodus) begin LocStr=ToChar('\',ReadedLine) JeCislo=StrPos('1',LocStr) if(not JeCislo) JeCislo=StrPos('2',LocStr) if(not JeCislo) JeCislo=StrPos('3',LocStr) if(not JeCislo) JeCislo=StrPos('4',LocStr) if(not JeCislo) JeCislo=StrPos('5',LocStr) if(not JeCislo) JeCislo=StrPos('6',LocStr) if(not JeCislo) JeCislo=StrPos('7',LocStr) if(not JeCislo) JeCislo=StrPos('8',LocStr) if(not JeCislo) JeCislo=StrPos('9',LocStr) if(not JeCislo) JeCislo=StrPos('0',LocStr) end if(not JeCislo) begin if(FirstChar=Asc('@')) begin ReadedLine=FromChar('@',ReadedLine); end else if(FirstChar=Asc('#')) begin ReadedLine=FromChar(',',FromChar(',',ReadedLine)); end ReadedLine=ReadedLine+#9; if(PrintLine=0) begin if(FirstChar=Asc('@')) begin ReadedLine=ReadedLine end else begin ReadedLine=ReadedLine+Str(LineNum) Inc(LineNum); end end else begin ReadedLine=ReadedLine+Str(PrintLine) end; DynTab(ReadedLine) Dec(PocetRadku) end end; end; end; INI:String=DataPath+'VYKAZY.INI' TiskJenNenul:Boolean TiskNulRadku:Boolean LocStr:String LocI:Integer ;LocStr=GetFromIni('VYKAZY','TiskNulRadku',INI) ;if(Length(LocStr)=0) ; TiskNulRadku=False ; else TiskNulRadku=GetBoolean(GetFromIni('VYKAZY','TiskNulRadku',INI)) TiskJenNenul=(not TiskNulRadku) VelikostPisma:Real=0 VelikostPisma=Val(GetFromIni('VYKAZY','VelikostPisma',INI)) if(VelikostPisma=0) VelikostPisma=3.5 Zjednodus:Boolean=False DeclareRec('Program') if(Program.TypVykazu=2) Zjednodus=True RadekVH:Byte Global MinRok:Boolean=False Global VyplMO:Byte=0 StatusWindowInCall(False) ItsBlank:Boolean FormName:String=GetTabName(3); LocStr1:String LocStr2:String LocStr3:String LocStr4:String LocStr5:String LocStr6:String LocStr7:String LocB:Boolean X1:Real S1:Real X2:Real S2:Real X3:Real S3:Real PocRadCelkem:Word Rozhrani:Word JeCislo:Boolean LineNum:Word=1 TiskniSloupceA:Word TiskniSloupceP:Word PocetAktivTisk:Word PocetPasivTisk:Word PocetRadkuStr1:Word=25 if(Length(ObdMesic(2))<>0) begin Name('Rozvaha - Formulář za '+ObdMesic(2)+ObdRok(2)) CallDDT('DoplMOR.ddt') IF(MinRok) begin TiskniSloupceA=$78 TiskniSloupceP=$18 end else begin TiskniSloupceA=$38 TiskniSloupceP=$8 end end else begin Name('Rozvaha - Prázdný formulář') Zjednodus=Question('Tisk ve zjednodušeném rozsahu?') ItsBlank=True TiskJenNenul=False ReadedLine:String FirstChar:Byte end; if(Zjednodus) begin Global NazevSest2:String='ve zjednodušeném rozsahu' ;např. v plném rozsahu end else begin Global NazevSest2:String='v plném rozsahu' ;např. v plném rozsahu end if(Zjednodus) begin PocetAktivStr1:Byte=12 PocetAktivStr2:Byte=0 PocetPasivStr1:Byte=13 PocetPasivStr2:Byte=0 end else begin PocetAktivStr1:Byte=30 PocetAktivStr2:Byte=35 PocetPasivStr1:Byte=35 PocetPasivStr2:Byte=19 end ;{hlavicka} Global NazevSest1:String='Rozvaha (bilance)' Global Opatr1:String='Podle Sbírky zákonů' Global Opatr2:String='vyhlášky č. 500/2002' Global Opatr3:String='ze dne 5.prosince 2002' if(ItsBlank) begin Soubor:TextFile; Open(Soubor,FormName); end else begin OpenWNS(WNSName) SaveWnsPos(1) end; ;if(TiskJenNenul); kvuli kontrole VH na VZaZ jde tudy vzdy: begin ;{zjistění, které řádky jsou nenulové = se tisknou} ;§4 odst6 vyhl. 500/2002Sb ;zjisteni poctu radku, poctu aktiv a poctu pasiv z radku # v .TAB SouborTab:TextFile Open(SouborTab,GetTabName(1)) While(not(EOF(SouborTab))) begin LocStr=Readln(SouborTab) if(CompareStr(Copy(LocStr,1,1),'#')) begin LocStr=FromChar('#',LocStr) LocStr1=ToChar(',',LocStr) PocRadCelkem=Val(LocStr1) LocStr=FromChar(',',LocStr) LocStr=FromChar(',',LocStr) LocStr1=ToChar(',',LocStr) Rozhrani=Val(LocStr1) Goto(KonecCyklu1) end end KonecCyklu1: Close(SouborTab) Open(SouborTab,GetTabName(1)) While(not(EOF(SouborTab))) begin LocStr=Readln(SouborTab) if(CompareStr(Copy(LocStr,1,1),'*')) begin if(CompareStr(UpCase(Copy(LocStr,2,3)),'VH=')) ;*VH= číslo řádku s Výsledkem hospodaření begin LocStr=ToChar(' ',LocStr) RadekVH=Val(FromChar('=',LocStr)) GoTo(KonecCyklu2) end end end KonecCyklu2: ;vytvoreni pomocneho textoveho souboru s rozvahou TXTFileVykaz:TextFile ; definuje proměnnou textového souboru VykazTXT:String=WorkPath+'Rozv'+Obdobi(4)+'.TXT' Rewrite(TXTFileVykaz,VykazTXT,True) ; otevře textový soubor ;TiskRadku:Array[1..PocRadCelkem] of Boolean i:Byte=1 While(i<=PocRadCelkem) begin if(not ItsBlank) LoadWNSLine(1,0) if(Val(GetFromWNSLine(3))=RadekVH); test hodnoty Hosp.výsledek. Schovat do INI a v VZaZ zkontrolovat begin SetToIni('VH','VH'+Obdobi(4),Str(Val(GetFromWNSLine(6))),INI) end LocB=StrPos('43x',GetFromWNSLine(2)); aby nebral řádek, který má v popisu účet 43x (výsledek hospodaření) if(((GetFromWNSLine(4,True)<>0)or(GetFromWNSLine(5,True)<>0)or(GetFromWNSLine(6,True)<>0)or(GetFromWNSLine(7,True)<>0))and(not LocB)) begin JeCislo=False if(Zjednodus) begin LocStr=GetFromWNSLine(1,True) JeCislo=StrPos('1',LocStr) if(not JeCislo) JeCislo=StrPos('2',LocStr) if(not JeCislo) JeCislo=StrPos('3',LocStr) if(not JeCislo) JeCislo=StrPos('4',LocStr) if(not JeCislo) JeCislo=StrPos('5',LocStr) if(not JeCislo) JeCislo=StrPos('6',LocStr) if(not JeCislo) JeCislo=StrPos('7',LocStr) if(not JeCislo) JeCislo=StrPos('8',LocStr) if(not JeCislo) JeCislo=StrPos('9',LocStr) if(not JeCislo) JeCislo=StrPos('0',LocStr) end if(not JeCislo) begin ;TiskRadku[i]=True WriteLn(TXTFileVykaz,GetFromWNSLine(1,True)+#9+GetFromWNSLine(2,True)+#9+GetFromWNSLine(3,True)+#9+GetFromWNSLine(4,True)+#9+GetFromWNSLine(5,True)+#9+GetFromWNSLine(6,True)+#9+GetFromWNSLine(7,True)) if(iPocetAktivStr1) begin PocRad1:Byte=PocetAktivStr1 ;pocet radku tabulky na 1. strane YRadkovani1:Real=6.7 ;posun radku v tabulce na 1.strane PouzeJednaStranaAktiv=False end else begin PocRad1:Byte=PocetAktivTisk ;pocet radku tabulky na 1. strane YRadkovani1:Real=5 ;posun radku v tabulce na 1.strane PouzeJednaStranaAktiv=True end end end else begin PocRad1:Byte=PocetAktivStr1 ;pocet radku tabulky na 1. strane if(Zjednodus) begin YRadkovani1:Real=5 ;posun radku v tabulce na 1.strane end else begin YRadkovani1:Real=6.7 ;posun radku v tabulce na 1.strane end end Global XZacatek1:Real=0 ; x souradnice zacatku tabulky na 1. straně Global YTlusta1:Real=72 ; Y-souradnice prvni tluste cary Global Y1Hlav1:Real=16 Global XKonec1:Real=188 ; x souradnice konce tabulky na 1. straně YKonec1:Real=YTlusta1+(PocRad1*YRadkovani1) X1Svisla1:Real=XZacatek1+12 X2Svisla1:Real=XZacatek1+80 X3Svisla1:Real=XZacatek1+90 X4Svisla1:Real=(X3Svisla1+(XKonec1-X3Svisla1)/4) X5Svisla1:Real=(X3Svisla1+(2*(XKonec1-X3Svisla1)/4)) X6Svisla1:Real=(X3Svisla1+(3*(XKonec1-X3Svisla1)/4)) ;X7Svisla1:Real=(X3Svisla1+(4*(XKonec1-X3Svisla1)/4)) X7Svisla1:Real=XKonec1 Y2Hlav1:Real=9.5 ;{definice 2.strany} if(TiskJenNenul) begin PocRad2:Byte=PocetAktivTisk-PocRad1 ;pocet radku tabulky na 2. strane end else begin PocRad2:Byte=PocetAktivStr2 ;pocet radku tabulky na 2. strane end XZacatek2:Real=0 ; x souradnice zacatku tabulky na 2. straně YTlusta2:Real=30 ; Y-souradnice prvni tluste cary XKonec2:Real=188 ; x souradnice konce tabulky na 2. straně YRadkovani2:Real=6.7 ;posun radku v tabulce na 2.strane YKonec2:Real=YTlusta2+(pocrad2*YRadkovani2) X1Svisla2:Real=XZacatek2+12 X2Svisla2:Real=XZacatek2+80 X3Svisla2:Real=XZacatek2+90 X4Svisla2:Real=(X3Svisla2+(XKonec2-X3Svisla2)/4) X5Svisla2:Real=(X3Svisla2+(2*(XKonec2-X3Svisla2)/4)) X6Svisla2:Real=(X3Svisla2+(3*(XKonec2-X3Svisla2)/4)) X7Svisla2:Real=XKonec2 Y1Hlav2:Real=Y1Hlav1 Y2Hlav2:Real=Y2Hlav1 ;{definice 3.strany} if(TiskJenNenul) begin if(PouzeJednaStrana) begin ;vyjde na 1 stranu PocRad3:Byte=PocetPasivTisk ;pocet radku tabulky na 3. strane YRadkovani3:Real=5 ;posun radku v tabulce na 1.strane YTlusta3:Real=YKonec1+30 ; Y-souradnice prvni tluste cary end else begin ;je-li pocet tistenych pasiv jen o par radku vice, nezli je prvni strana pasiv, tak zmensit radkovani a velikost razitka a dat to na jednu stranu: YTlusta3:Real=30 ; Y-souradnice prvni tluste cary if((PocetPasivTisk>PocetPasivStr1)and(PocetPasivTisk0) begin NextPage FONTFACE(Normal); PEN(0,0.7) LINEA(XZacatek2,YTlusta2,XKonec2,YTlusta2); RoundBOXA(XZacatek2,YTlusta2-Y1Hlav2,XKonec2,YKonec2,3.3,3.3) ; obdelnik na 2. straně PEN(0,0.3) LINEA(X1Svisla2,YTlusta2-Y1Hlav2,X1Svisla2,YKonec2) ; 1. svisla if(not TiskJenNenul) LINEA(X2Svisla2,YTlusta2-Y1Hlav2,X2Svisla2,YKonec2) ; 2. svisla LINEA(X3Svisla2,YTlusta2-Y1Hlav2,X3Svisla2,YKonec2) ; 3. svisla LINEA(X4Svisla2,YTlusta2-Y2Hlav2,X4Svisla2,YKonec2) ; 4. svisla LINEA(X5Svisla2,YTlusta2-Y2Hlav2,X5Svisla2,YKonec2) ; 5. svisla LINEA(X6Svisla2,YTlusta2-Y1Hlav2,X6Svisla2,YKonec2) ; 6. svisla LINEA(X3Svisla2,YTlusta2-Y2Hlav2,X6Svisla2,YTlusta2-Y2Hlav2) ; vodorovna v prave pulce hlavicky LocI=PocRad2 if(LocI=0) LocI=1 LINESA(XZacatek2,YTlusta2+YRadkovani2,XKonec2,YTlusta2+YRadkovani2,0,YRadkovani2,LocI-1) FONTSIZE(3) FontFace(Normal) TEXT(XZacatek2+(X1Svisla2-XZacatek2)/2,YTlusta2-Y1Hlav2+2.5,TA_CENTER,'Položka') TEXT(XZacatek2+(X1Svisla2-XZacatek2)/2,YTlusta2-5,TA_CENTER,'a') TEXT((X1Svisla2+(X2Svisla2-X1Svisla2)/2),YTlusta2-Y1Hlav2+2.5,TA_CENTER,'T E X T') TEXT((X1Svisla2+(X2Svisla2-X1Svisla2)/2),YTlusta2-5,TA_CENTER,'b') if(not TiskJenNenul) begin XTEXT((X2Svisla2+(X3Svisla2-X2Svisla2)/2),YTlusta2-Y1Hlav2+2.5,X3Svisla2-X2Svisla2-1,TA_CENTER,'Označ.') TEXT((X2Svisla2+(X3Svisla2-X2Svisla2)/2),YTlusta2-5,TA_CENTER,'c') end TEXT((X3Svisla2+(X6Svisla2-X3Svisla2)/2),YTlusta2-Y1Hlav2+2.5,TA_CENTER,'Skutečnost v účetním období') TEXT((X3Svisla2+(X4Svisla2-X3Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'Brutto') TEXT((X3Svisla2+(X4Svisla2-X3Svisla2)/2),YTlusta2-5,TA_CENTER,'1'); TEXT((X4Svisla2+(X5Svisla2-X4Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'Korekce') TEXT((X4Svisla2+(X5Svisla2-X4Svisla2)/2),YTlusta2-5,TA_CENTER,'2'); TEXT((X5Svisla2+(X6Svisla2-X5Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'Netto') TEXT((X5Svisla2+(X6Svisla2-X5Svisla2)/2),YTlusta2-5,TA_CENTER,'3'); TEXT((X6Svisla2+(X7Svisla2-X6Svisla2)/2),YTlusta2-Y1Hlav2+2.5,TA_CENTER,'Minulé obd.') TEXT((X6Svisla2+(X7Svisla2-X6Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'Netto') TEXT((X6Svisla2+(X7Svisla2-X6Svisla2)/2),YTlusta2-5,TA_CENTER,'4'); TabPos(YTlusta2+2) FONTSIZE(VelikostPisma) if(ItsBlank) begin PrintText(PocRad2); end else begin if(TiskJenNenul) begin ;TabPos(YTlusta3+1.5) X1=XZacatek2+2; pomocne promenne, aby nebyla delka retezce vice nez 255 S1=X1Svisla2-2 X2=X1Svisla2+2 S2=X3Svisla2-X1Svisla2-4 ;X3=(X2Svisla2+(X3Svisla2-X2Svisla2)/2) ;S3=X3Svisla2-X2Svisla2-2 DefTab(6,YRadkovani2,X1,S1,TA_LEFT,X2,S2,TA_Left|TA_MaskRight,X4Svisla2-2,X4Svisla2-X3Svisla2,TA_RIGHT,X5Svisla2-2,X5Svisla2-X4Svisla2,TA_RIGHT,X6Svisla2-2,X6Svisla2-X5Svisla2,TA_RIGHT,XKonec2-2,XKonec2-X6Svisla2,TA_RIGHT) ;Close(TXTFileVykaz) ;Open(TXTFileVykaz,VykazTXT) i=1 While(i<=PocRad2) begin LocStr=ReadLn(TXTFileVykaz) LocStr1=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr2=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr3=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr4=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr5=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr6=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr7='' IF(MinRok) LocStr7=ToChar(#9,LocStr) DynTab(LocStr1+#9+LocStr2+#9+LocStr4+#9+LocStr5+#9+LocStr6+#9+LocStr7) inc(i) end end else begin DefTab(3,YRadkovani2,XZacatek2+2,X1Svisla2-2,TA_LEFT,X1Svisla2+2,X2Svisla2-X1Svisla2-4,TA_BOTH,(X2Svisla2+(X3Svisla2-X2Svisla2)/2),X3Svisla2-X2Svisla2-2,TA_CENTER) LoadWNSPos(2) TabFromWns(1,0,PocRad2,$7) SaveWnsPos(3); ulozim aktualni pozici ve WNS souboru do bunky 3 LoadWnsPos(2) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta2+1) DefTab(4,YRadkovani2,X4Svisla2-2,X4Svisla2-X3Svisla2,TA_RIGHT,X5Svisla2-2,X5Svisla2-X4Svisla2,TA_RIGHT,X6Svisla2-2,X6Svisla2-X5Svisla2,TA_RIGHT,XKonec2-2,XKonec2-X6Svisla2,TA_RIGHT) TabFromWns(1,0,PocRad2,TiskniSloupceA) end end end; ;{==================================== str. 3} if(PocRad3>0) begin if((Zjednodus)or(PouzeJednaStrana)) begin end else begin NextPage end FONTFACE(Normal); PEN(0,0.7) LINEA(XZacatek3,YTlusta3,XKonec3,YTlusta3); RoundBOXA(XZacatek3,YTlusta3-Y1Hlav3,XKonec3,YKonec3,3.3,3.3) ; obdelnik na 3. straně PEN(0,0.3) LINEA(X1Svisla3,YTlusta3-Y1Hlav3,X1Svisla3,YKonec3) ; 1. svisla if(not TiskJenNenul) LINEA(X2Svisla3,YTlusta3-Y1Hlav3,X2Svisla3,YKonec3) ; 2. svisla LINEA(X3Svisla3,YTlusta3-Y1Hlav3,X3Svisla3,YKonec3) ; 3. svisla LINEA(X4Svisla3,YTlusta3-Y1Hlav3,X4Svisla3,YKonec3) ; 4. svisla ;LINEA(X5Svisla3,YTlusta3-Y1Hlav3,X5Svisla3,YKonec3) ; 5. svisla LocI=PocRad3 if(LocI=0) LocI=1 LINESA(XZacatek3,YTlusta3+YRadkovani3,XKonec3,YTlusta3+YRadkovani3,0,YRadkovani3,LocI-1) FONTSIZE(5) FontFace(Bold) TEXT(XZacatek3,YTlusta3-Y1Hlav3-6,TA_LEFT,'PASIVA') FONTSIZE(3) FontFace(Normal) TEXT(XZacatek3+(X1Svisla3-XZacatek3)/2,YTlusta3-Y1Hlav3+2.5,TA_CENTER,'Položka') TEXT(XZacatek3+(X1Svisla3-XZacatek3)/2,YTlusta3-5,TA_CENTER,'a') TEXT((X1Svisla3+(X2Svisla3-X1Svisla3)/2),YTlusta3-Y1Hlav3+2.5,TA_CENTER,'T E X T') TEXT((X1Svisla3+(X2Svisla3-X1Svisla3)/2),YTlusta3-5,TA_CENTER,'b') if(not TiskJenNenul) begin XTEXT((X2Svisla3+(X3Svisla3-X2Svisla3)/2),YTlusta3-Y1Hlav3+2.5,X3Svisla3-X2Svisla3-1,TA_CENTER,'Označ.') TEXT((X2Svisla3+(X3Svisla3-X2Svisla3)/2),YTlusta3-5,TA_CENTER,'c') end TEXT((X3Svisla3+(X4Svisla3-X3Svisla3)/2),YTlusta3-Y1Hlav3+2.5,TA_CENTER,'Běžné účetní období') TEXT((X3Svisla3+(X4Svisla3-X3Svisla3)/2),YTlusta3-5,TA_CENTER,'1'); TEXT((X4Svisla3+(X5Svisla3-X4Svisla3)/2),YTlusta3-Y1Hlav3+2.5,TA_CENTER,'Minulé období') TEXT((X4Svisla3+(X5Svisla3-X4Svisla3)/2),YTlusta3-5,TA_CENTER,'2'); if(Zjednodus) TabPos(YTlusta3+1) else TabPos(YTlusta3+2) ;FontWidthScale(0.8) ;zuzeni dlouhych textů, aby vyšly na řádek end FONTSIZE(VelikostPisma) if(PocRad3>0) begin if(TiskJenNenul) begin TabPos(YTlusta3+1.5) X1=XZacatek3+2; pomocne promenne, aby nebyla delka retezce vice nez 255 S1=X1Svisla3-2 DefTab(4,YRadkovani3,X1,S1,TA_LEFT,X1Svisla3+2,X3Svisla3-X1Svisla3-4,TA_LEFT|TA_MaskRight,X4Svisla3-2,X4Svisla3-X3Svisla3,TA_RIGHT,X5Svisla3-2,X5Svisla3-X4Svisla3,TA_RIGHT) i=1 While(i<=PocRad3); (i<=PocetPasivTisk) begin LocStr=ReadLn(TXTFileVykaz) LocStr1=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr2=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr3=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr4=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr5='' IF(MinRok) LocStr5=ToChar(#9,LocStr) DynTab(LocStr1+#9+LocStr2+#9+LocStr4+#9+LocStr5) inc(i) end end else begin if(Zjednodus) ;{zjednodušený rozsah} begin DefTab(3,YRadkovani3,XZacatek3+2,X1Svisla3-2,TA_LEFT,X1Svisla3+2,X2Svisla3-X1Svisla3-4,TA_LEFT|TA_MaskRight,(X2Svisla3+(X3Svisla3-X2Svisla3)/2),X3Svisla3-X2Svisla3-2,TA_CENTER) TabPos(YTlusta3+1.5) if(ItsBlank) begin PrintText(PocRad3); end else begin LoadWNSPos(2) TabFromWns(1,0,3,$3) SkipWNSLine(1,0,3); přeskočení A.I.1. až A.I.3 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,4); přeskočení A.II.1. až A.II.4 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,2); přeskočení A.III.1. až A.III.2 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,2); přeskočení A.IV.1. až A.IV.2 TabFromWns(1,0,3,$3) SkipWNSLine(1,0,4); přeskočení B.I.1. až B.I.4 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,10); přeskočení B.II.1. až B.II.10 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,11); přeskočení B.III.1. až B.III.11 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,3); přeskočení B.IV.1. až B.IV.3 TabFromWns(1,0,1,$3) SkipWNSLine(1,0,2); přeskočení C.I.1. až C.I.2 SaveWnsPos(3) While(LineNum<=PocRad1+PocRad3) begin Text((X2Svisla3+(X3Svisla3-X2Svisla3)/2),YTlusta3+1.5+((LineNum-PocRad1-1)*YRadkovani3),TA_Center,Str(LineNum)) Inc(LineNum) end LoadWnsPos(2) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta3+0.5) DefTab(2,YRadkovani3,X4Svisla3-2,X4Svisla3-X3Svisla3,TA_RIGHT,X5Svisla3-2,X5Svisla3-X4Svisla3,TA_RIGHT) TabFromWns(1,0,3,TiskniSloupceP) SkipWNSLine(1,0,3); přeskočení A.I.1. až A.I.3 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,4); přeskočení A.II.1. až A.II.4 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,2); přeskočení A.III.1. až A.III.2 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,2); přeskočení A.IV.1. až A.IV.2 TabFromWns(1,0,3,TiskniSloupceP) SkipWNSLine(1,0,4); přeskočení B.I.1. až B.I.4 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,10); přeskočení B.II.1. až B.II.10 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,11); přeskočení B.III.1. až B.III.11 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,3); přeskočení B.IV.1. až B.IV.3 TabFromWns(1,0,1,TiskniSloupceP) SkipWNSLine(1,0,2); přeskočení C.I.1. až C.I.2 end; end else ;{plný rozsah} begin TabPos(YTlusta3+2.5) DefTab(3,YRadkovani3,XZacatek3+2,X1Svisla3-2,TA_LEFT,X1Svisla3+2,X2Svisla3-X1Svisla3-4,TA_BOTH,(X2Svisla3+(X3Svisla3-X2Svisla3)/2),X3Svisla3-X2Svisla3-2,TA_CENTER) if(ItsBlank) begin PrintText(PocRad3); end else begin LoadWNSPos(3) TabFromWns(1,0,PocRad3,$7) SaveWnsPos(4); ulozim aktualni pozici ve WNS souboru do bunky 3 LoadWnsPos(3) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta3+1) DefTab(2,YRadkovani3,X4Svisla3-2,X4Svisla3-X3Svisla3,TA_RIGHT,X5Svisla3-2,X5Svisla3-X4Svisla3,TA_RIGHT) TabFromWns(1,0,PocRad3,TiskniSloupceP) end; end end end ;{==================================== str. 4} if(PocRad4>0) begin NextPage FONTFACE(Normal); PEN(0,0.7) LINEA(XZacatek4,YTlusta4,XKonec4,YTlusta4); RoundBOXA(XZacatek4,YTlusta4-Y1Hlav4,XKonec4,YKonec4,3.3,3.3) ; obdelnik na 4. straně PEN(0,0.3) LINEA(X1Svisla4,YTlusta4-Y1Hlav4,X1Svisla4,YKonec4) ; 1. svisla if(not TiskJenNenul) LINEA(X2Svisla4,YTlusta4-Y1Hlav4,X2Svisla4,YKonec4) ; 2. svisla LINEA(X3Svisla4,YTlusta4-Y1Hlav4,X3Svisla4,YKonec4) ; 3. svisla LINEA(X4Svisla4,YTlusta4-Y1Hlav4,X4Svisla4,YKonec4) ; 4. svisla LocI=PocRad4 if(LocI=0) LocI=1 LINESA(XZacatek4,YTlusta4+YRadkovani4,XKonec4,YTlusta4+YRadkovani4,0,YRadkovani4,LocI-1) ;FONTSIZE(5) ;FontFace(Bold) ;TEXT(XZacatek4,YTlusta4-Y1Hlav4-6,TA_LEFT,'PASIVA') FONTSIZE(3) FontFace(Normal) TEXT(XZacatek4+(X1Svisla4-XZacatek4)/2,YTlusta4-Y1Hlav4+2.5,TA_CENTER,'Položka') TEXT(XZacatek4+(X1Svisla4-XZacatek4)/2,YTlusta4-5,TA_CENTER,'a') TEXT((X1Svisla4+(X2Svisla4-X1Svisla4)/2),YTlusta4-Y1Hlav4+2.5,TA_CENTER,'T E X T') TEXT((X1Svisla4+(X2Svisla4-X1Svisla4)/2),YTlusta4-5,TA_CENTER,'b') if(not TiskJenNenul) begin XTEXT((X2Svisla4+(X3Svisla4-X2Svisla4)/2),YTlusta4-Y1Hlav4+2.5,X3Svisla4-X2Svisla4-1,TA_CENTER,'Označ.') TEXT((X2Svisla4+(X3Svisla4-X2Svisla4)/2),YTlusta4-5,TA_CENTER,'c') end TEXT((X3Svisla4+(X4Svisla4-X3Svisla4)/2),YTlusta4-Y1Hlav4+2.5,TA_CENTER,'Běžné účetní období') TEXT((X3Svisla4+(X4Svisla4-X3Svisla4)/2),YTlusta4-5,TA_CENTER,'1'); TEXT((X4Svisla4+(X5Svisla4-X4Svisla4)/2),YTlusta4-Y1Hlav4+2.5,TA_CENTER,'Minulé období') TEXT((X4Svisla4+(X5Svisla4-X4Svisla4)/2),YTlusta4-5,TA_CENTER,'2'); TabPos(YTlusta4+2) FONTSIZE(VelikostPisma) if(TiskJenNenul) begin X1=XZacatek4+2; pomocne promenne, aby nebyla delka retezce vice nez 255 S1=X1Svisla4-2 DefTab(4,YRadkovani4,X1,S1,TA_LEFT,X1Svisla4+2,X3Svisla4-X1Svisla4-4,TA_LEFT|TA_MaskRight,X4Svisla4-2,X4Svisla4-X3Svisla4,TA_RIGHT,X5Svisla4-2,X5Svisla4-X4Svisla4,TA_RIGHT) i=1 While(i<=PocRad4); begin LocStr=ReadLn(TXTFileVykaz) LocStr1=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr2=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr3=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr4=ToChar(#9,LocStr) LocStr=FromChar(#9,LocStr) LocStr5='' IF(MinRok) LocStr5=ToChar(#9,LocStr) DynTab(LocStr1+#9+LocStr2+#9+LocStr4+#9+LocStr5) inc(i) end end else begin if(PocRad4>0) begin DefTab(3,YRadkovani4,XZacatek4+2,X1Svisla4-2,TA_LEFT,X1Svisla4+2,X2Svisla4-X1Svisla4-4,TA_BOTH,(X2Svisla4+(X3Svisla4-X2Svisla4)/2),X3Svisla4-X2Svisla4-2,TA_CENTER) FONTSIZE(VelikostPisma) if(ItsBlank) begin PrintText(PocRad4); end else begin LoadWNSPos(4) TabFromWns(1,0,PocRad4,$7) SaveWnsPos(5); ulozim aktualni pozici ve WNS souboru do bunky 5 LoadWnsPos(4) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta4+1) DefTab(2,YRadkovani4,X4Svisla4-2,X4Svisla4-X3Svisla4,TA_RIGHT,X5Svisla4-2,X5Svisla4-X4Svisla4,TA_RIGHT) TabFromWns(1,0,PocRad4,TiskniSloupceP) end; end end end CallDDT('PataVyk.ddt') Konec: END