; Výkaz ZaZ pro banky a fin.instituce pro rok 2002 ; verze z 11.4.2003 ; dodelat predminule obdobi, ale je to realne az v 2004, kdy bude prebirat predminule z 2002 FileName('FIVZ'+ObdMesic(2)+ObdRok(2)+'.WNS') Designed('') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('VZaZ pro banky a některé finanční instituce') WNSType(0); ;PMinRok:Boolean ; neni doreseno, az se bude resit, tak at to netaha z DUO.INI ale z DATA.INI ;MinRokName:String ;PMinRokName:String LocStr:String LocCis:Byte DeclareRec('Program') 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 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; ItsBlank:Boolean FormName:String=GetTabName(4); if(Length(ObdMesic(2))<>0) begin Name('Výkaz zisků a ztrát - Formulář za '+ObdMesic(2)+ObdRok(2)) end else begin Name('Výkaz zisků a ztrát - Prázdný') ItsBlank=True ReadedLine:String FirstChar:Byte LineNum:Word=1 end; Global MinRok:Boolean=False Global MinRokName:String StatusWindowInCall(False) Global VyplMO:Byte=0 if(not ItsBlank) CallDDT('DoplMO.ddt') ;debug ;dodelat predminule obdobi ;PMinRok=False ;LocCis=Val(PredObdRok(2)) ;PMinRokName=WorkPath+Copy(WNSName(),1,4)+'13'+PredObdRok(Val(PredObdRok(2)))+'.'+FromChar('.',WnsName) ;;PMinRokName=WorkPath+Copy(WNSName(),1,4)+'13'+PredObdRok(LocStr)+'.'+FromChar('.',WnsName) ;if(ExistFile(PMinRokName)) ; begin ; if(FirstInBatch()) ; begin ; MinRok=Question('Přejete si vyplnit i sloupec pro předminulé období?') ; SetIni('TEMP','PMinRok',PMinRok) ; end else ; begin ; MinRok=GetBoolean(GetIni('TEMP','PMinRok'),True) ; end ; end ;hlavicka Global NazevSest1:String='Výkaz zisku a ztráty' Global NazevSest2:String='podle pravidel pro banky a některé finanční instituce' ;např. v plném rozsahu Global Opatr1:String='Podle opatření Ministerstva financí ČR' Global Opatr2:String='Č.j.:282/73 391/2001' Global Opatr3:String='ze dne 7.prosince 2001' 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ě CallDDT('HlavVyk.ddt') PocRad1:Byte=30 ;pocet radku tabulky na 1. strane YRadkovani1:Real=6.8 ;posun radku v tabulce na 1.strane YKonec1:Real=YTlusta1+(pocrad1*YRadkovani1) X1Svisla1:Real=XZacatek1+10 X2Svisla1:Real=XZacatek1+107 X3Svisla1:Real=XZacatek1+116 X4Svisla1:Real=(X3Svisla1+(XKonec1-X3Svisla1)/3) X5Svisla1:Real=(X3Svisla1+(2*(XKonec1-X3Svisla1)/3)) Y2Hlav1:Real=9.5 PocRad2:Byte=21 ;pocet radku tabulky na 2. strane XZacatek2:Real=0 ; x souradnice zacatku tabulky na 2. straně XKonec2:Real=188 ; x souradnice konce tabulky na 2. straně YTlusta2:Real=20.5 ; Y-souradnice prvni tluste cary na 2. straně YRadkovani2:Real=6.8 YKonec2:Real=YTlusta2+(pocrad2*YRadkovani2) X1Svisla2:Real=X1Svisla1 X2Svisla2:Real=X2Svisla1 X3Svisla2:Real=X3Svisla1 X4Svisla2:Real=X4Svisla1 X5Svisla2:Real=X5Svisla1 Y1Hlav2:Real=Y1Hlav1 Y2Hlav2:Real=Y2Hlav1 ;paticka Global X1Pata:Real=XZacatek2 Global Y1Pata:Real=YKonec2+5 Global X2Pata:Real=XKonec2 Global Y2Pata:Real=YKonec2+35 ;definice tabulky hodnot FONTFACE(Normal); PEN(0,0.7) LINEA(XZacatek1,YTlusta1,XKonec1,YTlusta1); PEN(0,0.3) BOXA(XZacatek1,YTlusta1-Y1Hlav1,XKonec1,YKonec1) ; obdelnik na 1. straně LINEA(X1Svisla1,YTlusta1-Y1Hlav1,X1Svisla1,YKonec1) ; 1. svisla LINEA(X2Svisla1,YTlusta1-Y1Hlav1,X2Svisla1,YKonec1) ; 2. svisla LINEA(X3Svisla1,YTlusta1-Y1Hlav1,X3Svisla1,YKonec1) ; 3. svisla LINEA(X4Svisla1,YTlusta1-Y2Hlav1,X4Svisla1,YKonec1) ; 4. svisla LINEA(X5Svisla1,YTlusta1-Y2Hlav1,X5Svisla1,YKonec1) ; 5. svisla LINEA(X3Svisla1,YTlusta1-Y2Hlav1,XKonec1,YTlusta1-Y2Hlav1) ; vodorovna v prave pulce hlavicky LINESA(XZacatek1,YTlusta1+YRadkovani1,XKonec1,YTlusta1+YRadkovani1,0,YRadkovani1,PocRad1-1) FONTSIZE(3) FontFace(Normal) TEXT(XZacatek1+(X1Svisla1-XZacatek1)/2,YTlusta1-Y1Hlav1+2.5,TA_CENTER,'Označ.') TEXT(XZacatek1+(X1Svisla1-XZacatek1)/2,YTlusta1-5,TA_CENTER,'a') TEXT((X1Svisla1+(X2Svisla1-X1Svisla1)/2),YTlusta1-Y1Hlav1+2.5,TA_CENTER,'T E X T') TEXT((X1Svisla1+(X2Svisla1-X1Svisla1)/2),YTlusta1-5,TA_CENTER,'b') TEXT((X2Svisla1+(X3Svisla1-X2Svisla1)/2),YTlusta1-Y1Hlav1+2.5,TA_CENTER,'Číslo') TEXT((X2Svisla1+(X3Svisla1-X2Svisla1)/2),YTlusta1-Y1Hlav1+2.5+2.5,TA_CENTER,'řádku') TEXT((X2Svisla1+(X3Svisla1-X2Svisla1)/2),YTlusta1-5,TA_CENTER,'c') TEXT((X3Svisla1+(XKonec1-X3Svisla1)/2),YTlusta1-Y1Hlav1+2.5,TA_CENTER,'Skutečnost v účetním období') TEXT((X3Svisla1+(X4Svisla1-X3Svisla1)/2),YTlusta1-Y2Hlav1+1.5,TA_CENTER,'sledovaném') TEXT((X3Svisla1+(X4Svisla1-X3Svisla1)/2),YTlusta1-5,TA_CENTER,'1'); TEXT((X4Svisla1+(X5Svisla1-X4Svisla1)/2),YTlusta1-Y2Hlav1+1.5,TA_CENTER,'minulém') TEXT((X4Svisla1+(X5Svisla1-X4Svisla1)/2),YTlusta1-5,TA_CENTER,'2'); TEXT((X5Svisla1+(XKonec1-X5Svisla1)/2),YTlusta1-Y2Hlav1+1.5,TA_CENTER,'předminulém') TEXT((X5Svisla1+(XKonec1-X5Svisla1)/2),YTlusta1-5,TA_CENTER,'3'); if(ItsBlank) begin Soubor:TextFile; Open(Soubor,FormName); end else begin OpenWNS(WNSName) end; TabPos(YTlusta1+2.5) DefTab(3,YRadkovani1,XZacatek1+2,X1Svisla1-2,TA_LEFT,X1Svisla1+2,X2Svisla1-X1Svisla1-4,TA_BOTH,(X2Svisla1+(X3Svisla1-X2Svisla1)/2),X3Svisla1-X2Svisla1-2,TA_CENTER) if(ItsBlank) begin PrintText(PocRad1); end else begin SaveWnsPos(1) TabFromWns(2,7,PocRad1,$7) SaveWnsPos(2) LoadWnsPos(1) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta1+2) DefTab(1,YRadkovani1,X4Svisla1-2,X4Svisla1-X3Svisla1-2,TA_RIGHT) TabFromWns(2,7,PocRad1,$8) end; if(MinRok) begin OpenWNSIfExist(MinRokName) ;VZaZ z minuleho roku TabPos(YTlusta1+2) DefTab(1,YRadkovani1,X5Svisla1-2,X5Svisla1-X4Svisla1-2,TA_RIGHT) TabFromWns(2,0,PocRad1,$8) SaveWnsPos(12) ;znacka v souboru z minuleho roku OpenWNS(WNSName) ; otevreni zase toho aktualniho roku end; FONTSIZE(3.3) FontFace(Normal) TEXT(XKonec1,YKonec1+2,TA_RIGHT,'Vytištěno systémem WinDUO') ;========================================== str. 2 NextPage FONTFACE(Normal); PEN(0,0.7) LINEA(XZacatek2,YTlusta2,XKonec2,YTlusta2); PEN(0,0.3) BOXA(XZacatek2,YTlusta2-Y1Hlav2,XKonec2,YKonec2) ; obdelnik na 1. straně LINEA(X1Svisla2,YTlusta2-Y1Hlav2,X1Svisla2,YKonec2) ; 1. svisla 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(X3Svisla2,YTlusta2-Y2Hlav2,XKonec2,YTlusta2-Y2Hlav2) ; vodorovna v prave pulce hlavicky LINESA(XZacatek2,YTlusta2+YRadkovani2,XKonec2,YTlusta2+YRadkovani2,0,YRadkovani2,PocRad2-1) FONTSIZE(3) FontFace(Normal) TEXT(XZacatek2+(X1Svisla2-XZacatek2)/2,YTlusta2-Y1Hlav2+2.5,TA_CENTER,'Označ.') 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') TEXT((X2Svisla2+(X3Svisla2-X2Svisla2)/2),YTlusta2-Y1Hlav2+2.5,TA_CENTER,'Číslo') TEXT((X2Svisla2+(X3Svisla2-X2Svisla2)/2),YTlusta2-Y1Hlav2+2.5+2.5,TA_CENTER,'řádku') TEXT((X2Svisla2+(X3Svisla2-X2Svisla2)/2),YTlusta2-5,TA_CENTER,'c') TEXT((X3Svisla2+(XKonec2-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,'sledovaném') TEXT((X3Svisla2+(X4Svisla2-X3Svisla2)/2),YTlusta2-5,TA_CENTER,'1'); TEXT((X4Svisla2+(X5Svisla2-X4Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'minulém') TEXT((X4Svisla2+(X5Svisla2-X4Svisla2)/2),YTlusta2-5,TA_CENTER,'2'); TEXT((X5Svisla2+(XKonec2-X5Svisla2)/2),YTlusta2-Y2Hlav2+1.5,TA_CENTER,'předminulém') TEXT((X5Svisla2+(XKonec2-X5Svisla2)/2),YTlusta2-5,TA_CENTER,'3'); ;hodnoty: TabPos(YTlusta2+2.5) 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) FontWidthScale(0.75) ;zuzeni dlouhych textů, aby vyšly na řádek if(ItsBlank) begin PrintText(PocRad2); end else begin LoadWNSPos(2) TabFromWns(2,7,PocRad2,$7) LoadWNSPos(2) FontSize(4.5) FontFace(Bold|Italic) TabPos(YTlusta2+2) DefTab(1,YRadkovani2,X4Svisla2-2,X4Svisla2-X3Svisla2-2,TA_RIGHT) TabFromWns(2,7,PocRad2,$8) end; if(MinRok) begin OpenWNSIfExist(MinRokName) ;VZaZ z minuleho roku LoadWNSPos(12); TabPos(YTlusta2+2) DefTab(1,YRadkovani2,X5Svisla2-2,X5Svisla2-X4Svisla2-2,TA_RIGHT) TabFromWns(2,0,PocRad2,$8) OpenWNS(WNSName) ; otevreni zase toho aktualniho roku end CallDDT('PataVyk.ddt') ;FONTSIZE(3.3) ;FontFace(Normal) ;TEXT(XKonec2,272,TA_RIGHT,'Vytištěno systémem WinDUO') END