; Popis formuláře 'Souhrnné hlášení k dani z přidané hodnoty - vzor č.1' ; verze: z 21.7.2005 ; Autor: Milan Slíva + Zdeněk Čapek Name('Souhrnné hlášení k DPH') Designed('') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://wwww.winduo.cz') Descr('Formulář Souhrnné hlášení k DPH') ;NewWNS('SOUHHL01.WNS') WNSType(0) FileName('SouhHlas.WNS') DeclareRec('Program') DeclareRec('Denik') DeclareRec('KeyDenik1') DeclareRec('KeyDenik7') DeclareRec('Adresar') DeclareRec('KeyAdresar1') if((Ctvrtleti>4)or(Ctvrtleti<1)) Halt('Údaj Čtvrtletí je zadán chybně: '+Str(Ctvrtleti)) if(RokHlas<2004) Halt('Údaj Rok je zadán chybně: '+Str(RokHlas)) if(Ctvrtleti=1) begin SDatumOd:String='01.01.'+Str(RokHlas) SDatumDo:String='31.03.'+Str(RokHlas) end if(Ctvrtleti=2) begin SDatumOd:String='01.04.'+Str(RokHlas) SDatumDo:String='30.06.'+Str(RokHlas) end if(Ctvrtleti=3) begin SDatumOd:String='01.07.'+Str(RokHlas) SDatumDo:String='30.09.'+Str(RokHlas) end if(Ctvrtleti=4) begin SDatumOd:String='01.10.'+Str(RokHlas) SDatumDo:String='31.12.'+Str(RokHlas) end if((Ctvrtleti=2)and(RokHlas=2004)) begin SDatumOd:String='01.05.'+Str(RokHlas) SDatumDo:String='30.06.'+Str(RokHlas) end DatumOd:Word=ValDate(SDatumOd) DatumDo:Word=ValDate(SDatumDo) ;zjistit počet řádků, které budou tisteny ;řádky s kódem DPH: ;zvlášť roletka 50 + 52 (kód=0) základ za 0% ;zvlášť roletka 51 + 53 (kód=1) základ za 0% ;zvlášť roletka 59 (kód=2) základ za 0% ;vysčítat součet "základ za 0%" podle DIČ za zadané období (kvartál). ;{Tiskne se vždy jeden řádek za jedno DIČ. Asi upozornit, pokud je DIČ nevyplněné nebo ;pokud DIČ začíná CZ (hlásí se totiž případy se zahraničním DIČ)} ;Údaj "Počet plnění" by měl být počet interních čísel. ;Údaj "kód země" = první dva znaky z DIČ ;Údaj "DIČ pořizovatele" = DIČ bez prvních dvou znaků ;Údaj "kód plnění" viz výše ;Údaj "Celková hodnota plnění v Kč" = součet Denik.castka ;načítat součet pro "kontrolní součet", vynulovat za každou stránku ;na začátku jsou definovány údaje PocRad1 a PocRad2 pro počty řádků k tisku. ;asi udělat pomocný datový soubor, který již bude mít vysčítaná data ;zjistit počet tištěných řádků, uložit do PocetZaznamu ;procedura NaplnStrData - dořešit, aby tiskla data z pomocného souboru ;pokud bude pomocny index k deníku pro vyhledání záznamů z deníku, pak udělat (možná) dotaz, zda chtějí i pomocnou sestavu, která bude tisknout včetně detailu? ; a na první nebo poslední strany pak tisknout detailní rozpis ;pokud ale bude jen vysčítání z deníku a tisk setříděného pomocného souboru bez indexování deníku, tak to asi nepůjde SledovanaDan:Array[1..5] of Byte=50,51,52,53,59 kod0:Array[1..2] of Byte=50,52 kod1:Array[1..2] of Byte=51,53 kod2:Array[1..1] of Byte=59 kod:Byte LocStat:String[2] Record Sumar DIC :String[14]; Stat :String[2] kod :Byte; pocet :LongInt; last :LongInt; Celkem:Double; Nazev :String[35] end; Record SumarKey Length:Byte DIC :Array[1..14] of Char; Kod :Byte; end; Record DetailyKey Length :Byte Veta :LongInt; Doklad :Array[1..10] of Char; Datum :Word; end; VetaS:LongInt LastCislo:LongInt=0 MakeTempFile(Sumar,SumarKey,False,False); MakeTempFile(,DetailyKey,True,False); ClearKey(KeyDenik7); While(NextKey(KeyDenik7,VetaD)) begin ReadRec(Denik,VetaD); if((Denik.ICO<>0)and(InArray(SledovanaDan,Denik.DanT2))and(Denik.DanT&$F0=$80)and(Denik.Datum_zp>=DatumOd)and(Denik.Datum_zp<=DatumDo)) begin KeyAdresar1.Length=4 KeyAdresar1.ICO=SwapL(Denik.ICO) if(FindKey(KeyAdresar1,VetaA)) begin ReadRec(Adresar,VetaA) LocStat=UpCase(Copy(Adresar.DIC,1,2)); if(CompareStr(LocStat,UpCase(Program.StateID))<>0) begin SumarKey.Length=SizeOf(SumarKey)-1 StrToChars(SumarKey.DIC,Adresar.DIC) if(InArray(Kod0,Denik.DanT2)) Kod=0 else if(InArray(Kod1,Denik.DanT2)) Kod=1 else if(InArray(Kod2,Denik.DanT2)) Kod=2 else Halt('Chyba ! Nebyly správně definovány kódy'); SumarKey.Kod=Kod if(FindKey(SumarKey,VetaS)) begin ReadRec(Sumar,VetaS) Sumar.Celkem=Sumar.Celkem+Denik.Castka; if(Sumar.Last<>KeyDenik7.Cislo) begin Inc(Sumar.Pocet) Sumar.Last=KeyDenik7.Cislo end; ModifyRec(Sumar,VetaS) end else begin ClearRec(Sumar); Sumar.Stat=LocStat Sumar.DIC=Copy(Adresar.DIC,3,255); Sumar.Nazev=Adresar.Nazev Sumar.Kod=Kod Inc(Sumar.Pocet) Sumar.Celkem=Denik.Castka Sumar.Last=KeyDenik7.Cislo VetaS=AddRec(Sumar) AddKey(SumarKey,VetaS); end; DetailyKey.Length=SizeOf(DetailyKey)-1 DetailyKey.Veta=SwapL(VetaS) ;StrToChars(Denik.Doklad,DetailyKey.Doklad) StrToChars(DetailyKey.Doklad,Denik.Doklad) DetailyKey.Datum=Swap(Denik.Datum_ZP) AddKey(DetailyKey,VetaD); end; end; end; end; PocetZaznamu:Word=UsedRecs(Sumar) ClearKey(SumarKey); LocB=NextKey(SumarKey,VetaS) ;{--------------------- zjistění počtu stran: -------------------------} PocetStran1:word=0 PocetStran2:word=0 PocetStranCelkem:word=0 Vytisteno:Word=0 PocetZaznamuZbyva:Word=PocetZaznamu While(VytistenoVytisteno) begin Inc(PocetStran2) Vytisteno=Vytisteno+PocRad2 end end PocetStranCelkem=PocetStran1+PocetStran2 ;{---------------------- Tisk: -------------------------------} PocetStran1=0 Vytisteno=0 PocetZaznamuZbyva=PocetZaznamu-Vytisteno PocetTistenych:Byte if(PocetZaznamu=0) begin Str1() NaplnStr1Ident() Str2() NaplnStr2Ident() end else begin While(PocetZaznamuZbyva>0) begin if(Vytisteno=0) NaplnStr1Ident() if(PocetZaznamuZbyva>PocRad1) PocetTistenych=PocRad1 else PocetTistenych=PocetZaznamuZbyva if(PocetTistenych>0) begin Str1() NaplnStrData(PocetTistenych,1) end PocetZaznamuZbyva=PocetZaznamu-Vytisteno Str2() if(PocetZaznamuZbyva>PocRad2) PocetTistenych=PocRad2 else begin PocetTistenych=PocetZaznamuZbyva NaplnStr2Ident() end if(PocetTistenych>0) NaplnStrData(PocetTistenych,2) PocetZaznamuZbyva=PocetZaznamu-Vytisteno end end ;{--------------------------- cyklus pro tisk detailů ---------------------------------------} if(TiskDetail) begin HlavickaRek() Poprve:Boolean=True CelkemRek:Real DefDynTab(5,185,3.8,5,4,TA_Right,10,TA_Right,10,TA_LEFT,25,TA_LEFT,15,TA_Right) TabPos(SourY) ;TabPos=SourY FONTSIZE(3.8) FONTFACE(BOLD) DynTab('Poč.'+#9+'Datum DPH'+#9+'Doklad'+#9+'Popis dokladu'+#9+'Částka') SourY=SourY+5 ClearKey(SumarKey); While(NextKey(SumarKey,VetaS)) begin ReadRec(Sumar,VetaS); ; vytisteni hlavicky radku If(not Poprve) begin DynTab('Celkem'+#9+#9+#9+#9+StrFinanc(CelkemRek,2)) CelkemRek=0 SourY=SourY+8 TabPos(SourY) ;TabPos=SourY end FONTSIZE(3.6) FONTFACE(BOLD) Text(10,SourY,TA_Left,Sumar.Stat+Sumar.DIC+' '+Sumar.Nazev+' kód: '+Str(Sumar.Kod,1)+' počet: '+Str(Sumar.Pocet)+' celkem: '+StrFinanc(Sumar.Celkem,2)) SourY=SourY+4 TabPos(SourY) ;TabPos=SourY Poprve=False if(SourY>DelkaStrany) HlavickaRek() FONTSIZE(3.6) FONTFACE(Normal) PorCislo=0 DetailyKey.Length=4 DetailyKey.Veta=SwapL(VetaS) LocB=SearchKey(DetailyKey,VetaD) While((LocB) and (DetailyKey.Veta=SwapL(VetaS))) begin ReadRec(Denik,VetaD); if(PoslIntCislo<>Denik.Cislo) Inc(PorCislo) if(PorCislo=0) Inc(PorCislo) PoslIntCislo=Denik.Cislo ;TabPos=SourY TabPos(SourY) DynTab(Str(PorCislo,4)+#9+StrDate(Denik.Datum_ZP)+#9+Denik.Doklad+#9+Denik.Popis+#9+StrFinanc(Denik.Castka,2)) SourY=SourY+3.8 if(SourY>DelkaStrany) HlavickaRek() CelkemRek=CelkemRek+Denik.Castka ; vytisteni detailu z deniku LocB=NextKey(DetailyKey,VetaD); end; end; DynTab('Celkem'+#9+#9+#9+#9+StrFinanc(CelkemRek,2)) end ;{===========================================================================================} Procedure Str1() ;{----------- Tisk 1. strany - rámečky --------------------} ;{doplnit číslování stránek...} if(not(PocetZaznamuZbyva=PocetZaznamu)) NEXTPAGE SumaStr=0 PEN(0,0.4) LINEA(10,148,185,148) ROUNDBOXA(10,154,185,277,3.3,3.3) LINEA(10,161,185,161) LINEA(10,271,185,271) PEN(0,0.2) ROUNDBOXA(164,4,185,10,3.3,3.3) ROUNDBOXA(10,12,90,18,3.3,3.3) ROUNDBOXA(10,23,70,29,3.3,3.3) LINESA(15,27.5,15,28.8,5,0,11) ROUNDBOXA(105,14,185,49,3.3,3.3) ROUNDBOXA(92,71,112,77,3.3,3.3) ROUNDBOXA(123,71,143,77,3.3,3.3) ROUNDBOXA(10,84,185,90,3.3,3.3) LINESA(15,88.5,15,89.8,5,0,34) ROUNDBOXA(10,92,125,98,3.3,3.3) LINESA(15,96.5,15,97.8,5,0,22) ROUNDBOXA(130,92,185,98,3.3,3.3) LINESA(135,96.5,135,97.8,5,0,10) ROUNDBOXA(10,106,105,112,3.3,3.3) LINESA(15,110.5,15,111.8,5,0,18) ROUNDBOXA(110,106,160,112,3.3,3.3) LINESA(115,110.5,115,111.8,4.545,0,10) ROUNDBOXA(165,106,185,112,3.3,3.3) LINESA(170,110.5,170,111.8,5,0,3) ROUNDBOXA(10,120,155,126,3.3,3.3) LINESA(15,124.5,15,125.8,5,0,28) ROUNDBOXA(160,120,185,126,3.3,3.3) LINESA(165,124.5,165,125.8,5,0,4) ROUNDBOXA(10,130,185,136,3.3,3.3) LINESA(15,134.5,15,135.8,5,0,34) ROUNDBOXA(10,140,85,146,3.3,3.3) LINESA(15,144.5,15,145.8,5,0,14) LINESA(10,166.5,185,166.5,0,5.5,19) LINEA(25,154,25,271) LINEA(40,154,40,271) LINEA(100,154,100,271) LINEA(115,154,115,271) LINEA(130,154,130,277) FONTSIZE(5) FONTFACE(BOLD) TEXT(10,5,TA_LEFT|TA_BASELINE,'A. ODDÍL') TEXT(10,153,TA_LEFT|TA_BASELINE,'B. ODDÍL') FONTSIZE(3.5) TEXT(102.5,4,TA_CENTER|TA_BASELINE,'Než začnete vyplňovat tiskopis, přečtěte si, prosím, pokyny.') FONTSIZE(9) TEXT(102.5,60,TA_CENTER|TA_BASELINE,'SOUHRNNÉ HLÁŠENÍ') FONTSIZE(6) TEXT(102.5,65,TA_CENTER|TA_BASELINE,'k dani z přidané hodnoty') FONTSIZE(4) TEXT(102.5,70,TA_CENTER|TA_BASELINE,'podle § 102 zákona č. 235/2004 Sb., o dani z přidané hodnoty') TEXT(90,75,TA_RIGHT|TA_BASELINE,'za kalendářní čtvrtletí') TEXT(121,75,TA_RIGHT|TA_BASELINE,'rok') FONTSIZE(3.2) TEXT(10,80,TA_BASELINE,'Právnická osoba:') TEXT(10,102,TA_BASELINE,'Fyzická osoba:') TEXT(10,116,TA_BASELINE,'Trvalé bydliště fyzické osoby nebo sídlo právnické osoby:') FONTFACE(NORMAL) TEXT(162,8,TA_RIGHT|TA_BASELINE,'Pořadové číslo strany / Celkový počet stran') TEXT(10,11,TA_LEFT|TA_BASELINE,'Finančnímu úřadu v, ve, pro') TEXT(10,22,TA_BASELINE,'Daňové identifikační číslo') TEXT(10,83,TA_LEFT|TA_BASELINE,'Obchodní jméno') TEXT(10,105,TA_LEFT|TA_BASELINE,'Příjmení') TEXT(110,105,TA_LEFT|TA_BASELINE,'Jméno') TEXT(165,105,TA_LEFT|TA_BASELINE,'Titul') TEXT(10,119,TA_LEFT|TA_BASELINE,'Obec') TEXT(160,119,TA_LEFT|TA_BASELINE,'PSČ') TEXT(10,129,TA_LEFT|TA_BASELINE,'Ulice, část obce (číslo popisné / číslem orientačním)') TEXT(10,139,TA_LEFT|TA_BASELINE,'Stát') TEXT(17.5,157.25,TA_Center|TA_BASELINE,'Číslo') TEXT(17.5,159.75,TA_Center|TA_BASELINE,'řádku') TEXT(32.5,157.25,TA_Center|TA_BASELINE,'Kód') TEXT(32.5,159.75,TA_Center|TA_BASELINE,'země') TEXT(70,158.5,TA_Center|TA_BASELINE,'DIČ pořizovatele zboží') TEXT(107.5,157.25,TA_Center|TA_BASELINE,'Kód') TEXT(107.5,159.75,TA_Center|TA_BASELINE,'plnění') TEXT(122.5,157.25,TA_Center|TA_BASELINE,'Počet') TEXT(122.5,159.75,TA_Center|TA_BASELINE,'plnění') TEXT(157.5,158.5,TA_Center|TA_BASELINE,'Celková hodnota plnění v Kč') i:byte=1 Ysour:real=165 While(i<=20) begin TEXT(17.5,Ysour,TA_Center|TA_BASELINE,i) Inc(i) YSour=YSour+5.5 end TEXT(12.5,275,TA_Left|TA_BASELINE,'Kontrolní součet řádků 1-20:') FONTSIZE(2.5) TEXT(145,46,TA_CENTER|TA_BASELINE,'otisk prezentačního razítka finančního úřadu') TEXT(10,279,TA_BASELINE,'25 5521 MFin 5521 - vzor č. 1') TEXT(185,279,TA_RIGHT|TA_BASELINE,'Vytištěno systémem WinDUO') FONTSIZE(3.5) FONTFACE(BOLD|Italic) Inc(PocetStran1) LocStr='' if(PocetStranCelkem<>0) LocStr=Str(PocetStran1)+' / '+Str(PocetStranCelkem) TEXT(174.5,8,TA_Center|TA_BASELINE,LocStr) STEXT(12.5,27,TA_CENTER|TA_BASELINE,5,12,DIC) TEXT(102,75,TA_Center|TA_BASELINE,Ctvrtleti) TEXT(133,75,TA_Center|TA_BASELINE,RokHlas) end ;{===========================================================================================} Procedure NaplnStr1Ident() ;{======= identifikační hodnoty 1. strany ==============} FONTSIZE(3.5) FONTFACE(BOLD|Italic) TEXT(12.5,16,TA_LEFT|TA_BASELINE,FinancniUrad) ; STEXT(12.5,27,TA_CENTER|TA_BASELINE,5,12,DIC) ; TEXT(102,75,TA_Center|TA_BASELINE,Ctvrtleti) ; TEXT(133,75,TA_Center|TA_BASELINE,RokHlas) STEXT(12.5,88,TA_CENTER|TA_BASELINE,5,35,ObchodniJmeno) STEXT(12.5,96,TA_CENTER|TA_BASELINE,5,23,ObchodniJmeno2) STEXT(132.5,96,TA_CENTER|TA_BASELINE,5,11,DodatekJmena) STEXT(12.5,110,TA_CENTER|TA_BASELINE,5,19,FOPrijmeni) STEXT(112.5,110,TA_CENTER|TA_BASELINE,4.545,11,FOJmeno) STEXT(167.5,110,TA_CENTER|TA_BASELINE,5,4,FOTitul) STEXT(12.5,124,TA_CENTER|TA_BASELINE,5,29,Obec) STEXT(162.5,124,TA_CENTER|TA_BASELINE,5,5,PSCDan) STEXT(12.5,134,TA_CENTER|TA_BASELINE,5,35,UliceDan) STEXT(12.5,144,TA_CENTER|TA_BASELINE,5,15,Stat) ;Text(85,78,TA_CENTER|TA_BASELINE,OBDMESIC); ;Text(122,78,TA_CENTER|TA_BASELINE,OBDKVART); ;Text(153,78,TA_CENTER|TA_BASELINE,OBDROK); end ;{===========================================================================================} Procedure Str2() ;{======= S T R A N A 2 - rámečky =======} NEXTPAGE SumaStr=0 PEN(0,0.4) ROUNDBOXA(0,9,175,132,3.3,3.3) ROUNDBOXA(120,243,175,272,3.3,3.3) LINEA(0,16,175,16) LINEA(0,126,175,126) LINEA(0,137,175,137) LINEA(0,240,175,240) PEN(0,0.2) ROUNDBOXA(153,0,175,6,3.3,3.3) LINESA(0,21.5,175,21.5,0,5.5,19) LINEA(15,9,15,126) LINEA(30,9,30,126) LINEA(90,9,90,126) LINEA(105,9,105,126) LINEA(120,9,120,132) ROUNDBOXA(0,170,115,176,3.3,3.3) LINESA(5,174.5,5,175.8,5,0,22) ROUNDBOXA(120,170,175,176,3.3,3.3) LINESA(125,174.5,125,175.8,5,0,10) ROUNDBOXA(0,184,175,190,3.3,3.3) LINESA(5,188.5,5,189.8,5,0,34) ROUNDBOXA(9,221,49,227,3.3,3.3) LINESA(14,225.5,14,226.8,10,0,2) LINESA(34,225.5,34,226.8,5,0,3) LINESA(19,224.5,19,226.8,10,0,2) ROUNDBOXA(62,197,117,227,3.3,3.3) ROUNDBOXA(130,197,175,227,3.3,3.3) ROUNDBOXA(20,230,110,236,3.3,3.3) ROUNDBOXA(130,230,175,236,3.3,3.3) ROUNDBOXA(0,243,110,272,3.3,3.3) FONTSIZE(3.5) FONTFACE(BOLD|Italic) Inc(PocetStran1) if(PocetStran1<=PocetStranCelkem) begin LocStr=Str(PocetStran1)+' / '+Str(PocetStranCelkem) TEXT(164,4,TA_Center|TA_BASELINE,LocStr) end FONTSIZE(5) FONTFACE(BOLD|NORMAL) TEXT(0,144,TA_LEFT|TA_BASELINE,'C. ODDÍL') FONTSIZE(3.5) TEXT(87.5,150,TA_Center|TA_BASELINE,'PROHLAŠUJI, ŽE VŠECHNY MNOU UVEDENÉ ÚDAJE V TOMTO SOUHRNNÉM HLÁŠENÍ') TEXT(87.5,154,TA_Center|TA_BASELINE,'JSOU PRAVDIVÉ A ÚPLNÉ.') FONTSIZE(3.2) TEXT(0,165,TA_Left|TA_BASELINE,'Osoba oprávněná k podpisu za daňový subjekt:') FONTFACE(Normal) TEXT(150,4,TA_RIGHT|TA_BASELINE,'Pořadové číslo strany / Celkový počet stran') TEXT(7.5,12.25,TA_Center|TA_BASELINE,'Číslo') TEXT(7.5,14.75,TA_Center|TA_BASELINE,'řádku') TEXT(22.5,12.25,TA_Center|TA_BASELINE,'Kód') TEXT(22.5,14.75,TA_Center|TA_BASELINE,'země') TEXT(60,13.5,TA_Center|TA_BASELINE,'DIČ pořizovatele zboží') TEXT(97.5,12.25,TA_Center|TA_BASELINE,'Kód') TEXT(97.5,14.75,TA_Center|TA_BASELINE,'plnění') TEXT(112.5,12.25,TA_Center|TA_BASELINE,'Počet') TEXT(112.5,14.75,TA_Center|TA_BASELINE,'plnění') TEXT(147.5,13.5,TA_Center|TA_BASELINE,'Celková hodnota plnění v Kč') i:byte=1 Ysour:real=19.5 While(i<=20) begin TEXT(7.5,Ysour,TA_Center|TA_BASELINE,i) Inc(i) YSour=YSour+5.5 end TEXT(2.5,130,TA_Left|TA_BASELINE,'Kontrolní součet řádků 1-20:') TEXT(0,168.5,TA_Left|TA_BASELINE,'Příjmení') TEXT(120,168.5,TA_Left|TA_BASELINE,'Jméno') TEXT(0,182.5,TA_Left|TA_BASELINE,'U právnické osoby: postavení vzhledem k právnické osobě') FONTSIZE(3) TEXT(0,225,TA_Left|TA_BASELINE,'Datum') TEXT(53,222,TA_Left|TA_BASELINE,'Otisk') TEXT(53,225,TA_Left|TA_BASELINE,'razítka') TEXT(120,225,TA_Left|TA_BASELINE,'Podpis') TEXT(0,234,TA_Left|TA_BASELINE,'Hlášení sestavil') TEXT(120,234,TA_Left|TA_BASELINE,'Telefon') TEXT(2.5,246,TA_Left|TA_BASELINE,'Záznamy finančního úřadu') TEXT(122,274.5,TA_Left|TA_BASELINE,'Podpis oprávněného pracovníka správce daně') end ;{===========================================================================================} Procedure NaplnStr2Ident() ;{======= identifikační hodnoty 2. strany ==============} FONTSIZE(3.5) FONTFACE(BOLD|Italic) STEXT(2.5,174,TA_CENTER|TA_BASELINE,5,23,Prijmeni) STEXT(122.5,174,TA_CENTER|TA_BASELINE,5,11,Jmeno) STEXT(2.5,188,TA_CENTER|TA_BASELINE,5,35,Postaveni) LocStr=DenZData(StrDate(DatumHlaseni),2)+MesicZData(StrDate(DatumHlaseni),2)+RokZData(StrDate(DatumHlaseni),4) STEXT(11.5,225,TA_CENTER|TA_BASELINE,5,8,LocStr) TEXT(25,234,TA_LEFT|TA_BASELINE,Sestavil) TEXT(135,234,TA_LEFT|TA_BASELINE,TelefonDPH) end ;{===========================================================================================} Procedure NaplnStrData(Pr1:Byte,TypStrany:Byte) ;{======= tisk dat ==============} ;podle typu strany zvolit souřadnice a počet řádků ;cyklus pro tisk řádků, počet řádků je Pr1 LocByte:Byte=0 if(TypStrany=1) begin DefTab(5,5.5,32.5,13,TA_CENTER,70,65,TA_CENTER,107.5,12,TA_CENTER,128.5,12,TA_Right,177,48,TA_Right) TabPos=162 SourXKontrSoucet=177 SourYKontrSoucet=272 end else begin DefTab(5,5.5,22.5,13,TA_CENTER,60,65,TA_CENTER,97.5,12,TA_CENTER,118.5,12,TA_Right,167,48,TA_Right) TabPos=18 SourXKontrSoucet=167 SourYKontrSoucet=127 end While(LocByte0) begin Text(SourXKontrSoucet,SourYKontrSoucet,TA_Right,StrFinanc(SumaStr,0)) end ;FONTSIZE(2.5) ;FONTFACE(NORMAL) ;Text(1,SourY,TA_LEFT,'Pocet radku: '+Str(Pr1)+' Typ strany: '+Str(TypStrany)) Vytisteno=Vytisteno+Pr1 end ;{===========================================================================================} Procedure HlavickaRek() ;{======= hlavička detailní rekapitulace ==============} NextPage() SourY=10 FONTSIZE(4.2) FONTFACE(BOLD) Text(105,SourY,TA_Center,'Detailní rozpis k souhrnnému hlášeni DPH od data '+SDatumOd+' do data '+SDatumDo) Text(10,SourY,TA_LEFT,StrDate(GetDate())) ; tisk hlavičky SourY=SourY+5 FONTSIZE(3.6) FONTFACE(Normal) end END