; Rozvaha pro podnikatele pro rok 2016 ; verze z 17.4.2015 Designed('') Author('Milan Slíva','EMail: sliva@fi.cz','http://www.fi.cz') Descr('Rozvaha pro podnikatele v plném rozsahu','podle Vyhl. 472/2003 Sb. pro rok 2004') FileName('FIRO'+ObdMesic(2)+ObdRok(2)+'.WNS') DeclareRec('Program') Radkovani:Real=6 Procedure HlavickaA() DataHeight:Real=Polozek*Radkovani; Pen(0,0.7) RoundBox(ColPos[1],YHeadTop,Width,Height+DataHeight,3.3,3.3) Line(XZacatek1,YHeadTop+Height,Width,0) Pen(0,0.1) FontSize(3.5) FontFace(Normal); Line(ColPos[2],YHeadTop,0,Height+DataHeight); Line(ColPos[3],YHeadTop,0,Height+DataHeight); Line(ColPos[4],YHeadTop,0,Height+DataHeight); Line(ColPos[5],YHeadTop+7,0,Height+DataHeight-7); Line(ColPos[6],YHeadTop+7,0,Height+DataHeight-7); Line(ColPos[7],YHeadTop,0,Height+DataHeight); LineA(ColPos[4],YHeadTop+7,ColPos[7],YHeadTop+7); LocR=ColPos[1] LocR2=LocR+(ColAct[1]/2) XText(LocR2,YHeadTop+2,ColAct[1]-3,TA_CENTER,'Položka'); XText(LocR2,YHeadTop+11,ColAct[1]-3,TA_CENTER,'a'); LocR=LocR+ColAct[1] LocR2=LocR+(ColAct[2]/2) XText(LocR2,YHeadTop+2,ColAct[2]-3,TA_CENTER,'T E X T'); XText(LocR2,YHeadTop+11,ColAct[2]-3,TA_CENTER,'b'); LocR=LocR+ColAct[2] LocR2=LocR+(ColAct[3]/2) XText(LocR2,YHeadTop+11,ColAct[3]-3,TA_CENTER,'c'); LocR=LocR+ColAct[3] LocR2=LocR+(ColAct[4]/2) XText(LocR2,YHeadTop+8,ColAct[4]-3,TA_CENTER,'Brutto'); XText(LocR2,YHeadTop+11,ColAct[4]-3,TA_CENTER,'1'); LocR=LocR+ColAct[4] LocR2=LocR+(ColAct[5]/2) XText(LocR2,YHeadTop+2,ColAct[4]+ColAct[5]+ColAct[6]-3,TA_CENTER,'Skutečnost v účetním období'); XText(LocR2,YHeadTop+8,ColAct[5]-3,TA_CENTER,'Korekce'); XText(LocR2,YHeadTop+11,ColAct[5]-3,TA_CENTER,'2'); LocR=LocR+ColAct[5] LocR2=LocR+(ColAct[6]/2) XText(LocR2,YHeadTop+8,ColAct[6]-3,TA_CENTER,'Netto'); XText(LocR2,YHeadTop+11,ColAct[6]-3,TA_CENTER,'3'); LocR=LocR+ColAct[6] LocR2=LocR+(ColAct[7]/2) XText(LocR2,YHeadTop+2,ColAct[7]-3,TA_CENTER,'Minulé obd.'); XText(LocR2,YHeadTop+8,ColAct[7]-3,TA_CENTER,'Netto'); XText(LocR2,YHeadTop+11,ColAct[7]-3,TA_CENTER,'4'); LineS(XZacatek1,YDataTop+Radkovani,Width,0,0,Radkovani,Polozek-1) end; Procedure HlavickaP() DataHeight:Real=Polozek*Radkovani; Pen(0,0.7) RoundBox(ColPos[1],YHeadTop,Width,Height+DataHeight,3.3,3.3) Line(XZacatek1,YHeadTop+Height,Width,0) Pen(0,0.1) FontSize(3.5) FontFace(Normal); Line(ColPos[2],YHeadTop,0,Height+DataHeight); Line(ColPos[3],YHeadTop,0,Height+DataHeight); Line(ColPos[4],YHeadTop,0,Height+DataHeight); Line(ColPos[5],YHeadTop,0,Height+DataHeight); LocR=ColPos[1] LocR2=LocR+(ColAct[1]/2) XText(LocR2,YHeadTop+2,ColAct[1]-3,TA_CENTER,'Položka'); XText(LocR2,YHeadTop+11,ColAct[1]-3,TA_CENTER,'a'); LocR=LocR+ColAct[1] LocR2=LocR+(ColAct[2]/2) XText(LocR2,YHeadTop+2,ColAct[2]-3,TA_CENTER,'T E X T'); XText(LocR2,YHeadTop+11,ColAct[2]-3,TA_CENTER,'b'); LocR=LocR+ColAct[2] LocR2=LocR+(ColAct[3]/2) XText(LocR2,YHeadTop+11,ColAct[3]-3,TA_CENTER,'c'); LocR=LocR+ColAct[3] LocR2=LocR+(ColAct[4]/2) XText(LocR2,YHeadTop+2,ColAct[4]-3,TA_CENTER,'Běžné účetní období'); XText(LocR2,YHeadTop+11,ColAct[4]-3,TA_CENTER,'1'); LocR=LocR+ColAct[4] LocR2=LocR+(ColAct[5]/2) XText(LocR2,YHeadTop+2,ColAct[5]-3,TA_CENTER,'Minulé období'); XText(LocR2,YHeadTop+11,ColAct[5]-3,TA_CENTER,'2'); LineS(XZacatek1,YDataTop+Radkovani,Width,0,0,Radkovani,Polozek-1) end; Procedure PrintFromFile() LocW=0 While((EOF(Soubor)=False) and (LocWAsc('$')) begin Inc(HotovoRadku) if(InArray(Radky,HotovoRadku)) begin Inc(LocW) if(FirstChar=Asc('@')) begin ReadedLine=FromChar('@',ReadedLine); end else if(FirstChar=Asc('#')) begin ReadedLine=FromChar(',',FromChar(',',ReadedLine)); end ReadedLine=ReadedLine+#9+Str(HotovoRadku); DynTab(ReadedLine) end; end end; end; INI:String=DataPath+'VYKAZY.INI' LocStr:String LocI:Integer LocB:Byte LocB2:Byte LocR:Real LocR2:Real LocW:Word Polozek:Word TiskniSloupceA:Word TiskniSloupceP:Word LocBo:Boolean VelikostPisma:Real=0 VelikostPisma=Val(GetFromIni('VYKAZY','VelikostPisma',INI)) if(VelikostPisma=0) VelikostPisma=3.5 TypVykazu:Byte=Val(GetFromIni('VYKAZY','TypVykazu',INI)) RadekVH:Byte Global MinRok:Boolean=False Global VyplMO:Byte=0 StatusWindowInCall(False) ItsBlank:Boolean FormName:String=GetTabName(3); 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 TypVykazu=Program.TypJednotky end else begin Name('Rozvaha - Prázdný formulář') DefName:String=GetRelevantName(form_Rozvaha,TypVykazu); NamesCount:Word=GetRelevantTable(form_Rozvaha,'Names'); DefDialog('Rozsah formuláře',256,112); DlgShade(-1,,8,8,240,32); DlgCombo(101,DefName,12,12,232,256,33,CBS_DropDownList,Names); DlgButton(id_OK,'OK',56,46); DlgButton(id_Cancel,'Zpět',138,46); if(DlgExecute(True)<>id_OK) Halt; TypVykazu=GetRelevantID(form_Rozvaha,DefName); ItsBlank=True ReadedLine:String FirstChar:Byte end; Global NazevSest2:String=GetRelevantName(form_Rozvaha,TypVykazu); if(ItsBlank) begin Soubor:TextFile; Open(Soubor,FormName); end else begin OpenWNS(WNSName) SaveWnsPos(1) end; Rozhrani:Word=GetTableBoundary(form_Rozvaha); SouborTab:TextFile 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(KonecCyklu) end end end KonecCyklu: RadkuCelkem:Word=GetTableLines(form_Rozvaha); RadkuAktiva:Word RadkuPasiva:Word Radku:Word=GetRelevantLines(form_Rozvaha,TypVykazu,'Radky') HotovoRadku:Word HotovoRadkuSave:Word IndexOd:Word=GetFirstIndex(Radky) IndexDo:Word=GetLastIndex(Radky) While(IndexOd<=IndexDo) begin if(Radky[IndexOd]RadkuAktiva) Polozek=RadkuAktiva; HlavickaA(); TabPos(YDataTop+1.5) DefTab(3,Radkovani,ColPos[1]+2,ColAct[1]-4,TA_LEFT|TA_Constrict,ColPos[2]+2,ColAct[2]-4,TA_Both|TA_Constrict,ColPos[3]+ColAct[3]/2,ColAct[3],TA_Center|TA_ConStrict) if(ItsBlank) begin PrintFromFile() end else begin HotovoRadkuSave=HotovoRadku LoadWnsPos(1) LocW=0 While(LocW0) begin NextPage(); YBottom:Real=285 Height:Real=Y1Hlav1 YHeadTop:Real=15 YDataTop:Real=15+Height Width:Real=XKonec1-XZacatek1 Polozek=Int((YBottom-YDataTop)/Radkovani); if(Polozek>RadkuAktiva) Polozek=RadkuAktiva; FONTSIZE(5) FontFace(Bold) TEXT(XZacatek1+Width,YHeadTop-7,TA_RIGHT,'AKTIVA') HlavickaA(); TabPos(YDataTop+1.5) DefTab(3,Radkovani,ColPos[1]+2,ColAct[1]-4,TA_LEFT|TA_Constrict,ColPos[2]+2,ColAct[2]-4,TA_Both|TA_Constrict,ColPos[3]+ColAct[3]/2,ColAct[3],TA_Center|TA_ConStrict) if(ItsBlank) begin PrintFromFile() end else begin LoadWnsPos(1) HotovoRadkuSave=HotovoRadku LocW=0 While(LocW0) begin YBottom:Real=285 Height:Real=Y1Hlav1 if(TypVykazu=0)or(HotovoRadku>Rozhrani) begin NextPage(); YHeadTop=15 YDataTop=15+Height LocBo=true end else begin YHeadTop=YHeadTop+Height+DataHeight+15; YDataTop=YHeadTop+Height LocBo=false end; Width:Real=XKonec1-XZacatek1 Polozek=Int((YBottom-YDataTop)/Radkovani); if(Polozek>RadkuPasiva) Polozek=RadkuPasiva; FONTSIZE(5) FontFace(Bold) TEXT(XZacatek1+Width,YHeadTop-7,TA_RIGHT,'PASIVA') HlavickaP(); TabPos(YDataTop+1.5) DefTab(3,Radkovani,ColPos[1]+2,ColAct[1]-4,TA_LEFT|TA_Constrict,ColPos[2]+2,ColAct[2]-4,TA_Both|TA_Constrict,ColPos[3]+ColAct[3]/2,ColAct[3],TA_Center|TA_ConStrict) if(ItsBlank) begin PrintFromFile() end else begin LoadWnsPos(1) HotovoRadkuSave=HotovoRadku LocW=0 While(LocW