Exemplu de fişier de descriere rezultat prin listarea unui document din hMARFA, care urmează să fie tipărit efectiv cu hPRINT:
[PARAMETRI]
#LUNGIME_FORMULAR= 64
[FACTURA]
// ------------------------------------------------
// Cumparator
#Client1=
#Client2=TOURIST SA
#CodRCoC=J01/111/1991
#CodFisC=R534978
#Adr1C =str.Viilor nr.58
#Adr2C =
#JudC =Mun. Bucuresti
#ContC =RO24 RNCB 0100 0000 5555 0001
#BancaC =Comerciala Bucuresti
#Obs1 =
#Obs2 =
// ------------------------------------------------
// Date factura
#CotaTva= 19 %
#NrFac =050020
#DataFac=29/07/06
#NrAviz1= A70001, A70002
#NrAviz2=
#Rand=
1.;Paine 1,1 kg - feliata si ;BUC; 40.0; 1.40; 56.00; 10.64
;impachetata in pungi de
;plastic
2.;Cafea macinata ;KG ; 12.0; 24.00; 288.00; 54.72
3.;Ulei floarea soarelui ;LT ; 2.0; 3.34; 6.68; 1.27
// --------------------------------------------------
// Valori factura
#TotFac = 417.31
#TotVal = 350.68
#TotAcz = 0.00
#TotTva = 66.63
// --------------------------------------------------
// Date privind expeditia
#Delegat1=
#Delegat2=Delegat Petru
#CI =
#CIPol =
#Auto =auto
#AutoNr =CV-03-XYZ
#LivData =
#LivOra =
Datele din fişierul de descriere sunt preluate ca atare de hPRINT şi sunt tipărite pe document. Sunt păstrate şi spaţiile. Astfel existenţa spaţiului după semnul „=“ este semnificativă.
Prin inserarea/suprimarea spaţiilor, se poate modifica decalajul informaţiilor la tipărire.
Majoritatea câmpurilor au un nume sugestiv, astfel ele nu necesită o explicaţie specială.
#Obs1 şi #Obs2 sunt opţionale şi pot fi încărcate cu un text explicativ.
#Ci - carte de identitate,
#CiPol - completează rubrica eliberat(a) de pe document.
Câmpul rând enumeră articolele de pe factură împreună cu datele cu care se tipăreşte. Caracterul care desparte câmpurile înşirate pe orizontală este „;“.
Are o sintaxă specială:
<număr ordine>;<Specificaţie marfă>;<UM>;<cantit.>;<Pu>;<val>;<val TVA>
Parametrul #LUNGIME_FORMULAR suprascrie valoarea definită pentru acelaşi parametru în Parametri generali. Este o valoare proprie documentului listat, fiind citită din Formatul de pagină aparţinând documentului.
Astfel în Parametri generali poate să existe o valoare valabilă de obicei, dar care poate fi suprascrisă.
Definiţiile pentru formularul de model:
#HPRINT
#INCEPUT
# {INITIALIZARE}
//
[PARAMETRI]
{D}LUNGIME_FORMULAR={LTxt}
[FACTURA]
{C}------------------------------------------------
{C}Cumparator
{D}Client1=
{D}Client2={Cumparator }
{D}CodRCoC={CodRegComC }
{D}CodFisC={CodFiscalC }
{D}Adr1C ={LocalitateC }
{D}Adr2C ={Adresa1Cumparator }
{D}JudC ={JudetC }
{D}ContC ={ContC }
{D}BancaC ={BancaC }
{D}Obs1 =
{D}Obs2 =
{C}------------------------------------------------
{C}Date factura
{D}NrFac ={Nr }{NrRef }
{D}DataFac={Data }
{D}NrAviz1={NrAviz1 }
{D}NrAviz2={NrAviz2 }
{D}CotaTva={Tva}
{C} Specificatia marfii UM Cantit. PU Livrare Valoare Val.TVA
{C}-----------------------------------------------------------------------------------
//
{D}Rand=
//
//#INCEPUTGRUPA
//# {INITGRUPA}
// ;COTA TVA: {TVA}
//
#RIND
{N};{SpecificatieMarfa1 };{U};{Cant } ;{PuLiv } ; {Val } ;{ValTva }
;{SpecificatieMarfa2 }
;{SpecificatieMarfa2 }
;{SpecificatieMarfa2 }
//#SFIRSITGRUPA
// ;TOTAL COTA TVA: {TVA} ; ; ; ; {GrVal } ;{GrTva }
//
#SFIRSIT
//{AvansPg}
{C}-----------------------------------------------------------------------------------
{C} {TotVal } {TotTva }
{C}
{C} Total fact: {TotFac }
{C}Valori factura:
{D}TotFac = {TotFac }
{D}TotVal = {TotVal }
{D}TotTva ={TotTva }
{D}TotAcz = {TotAcz }
{C}--------------------------------------------------
{C}Date privind expeditia
{D}Delegat1=
{D}Delegat2={TextLiber2 }
{D}CI =
{D}CIPol =
{D}Auto ={TextLiber3 }
{D}AutoNr ={TextLiber4 }
{D}LivData ={Data }
{D}LivOra =
{Pagina2}
//
//
{D}Sfarsit
#SFIRSITFORMULAR
#HPRINT de la început specifică faptul, că este un document special ce se listează cu hPRINT.
Câmpul {C} permite inserarea comentariilor în fişierul de definiţii rezultat.
Câmpul {D} permite inserarea comenzilor în fişierul de definiţii rezultat.
Cuvintele cheie se scriu direct după câmpul {D}.
Exemplu:
{D}NrFac = care în fişierul de definiţii generat se traduce în #NrFac =
În mod prestabilit câmpul {Specificaţie marfa1} este de 31 caractere şi este implementată fragmentarea denumirii cu ajutorul câmpului {Specificaţie marfa2}.
Se poate opta şi pentru o altă modalitate de implementare, şi anume pentru câmpurile {Specificaţie marfa1}, {Specificaţie marfa2} se defineşte lungimea de 52 de caractere. Prin urmare, denumirile articolelor de pe factură vor fi tipărite pe o întindere de 52 caractere, iar pentru tipărire se vor folosi automat caractere de 20 CPI.
Câmpurile {SpecificatieMarfa1} şi {SpecificatieMarfa2} traduc eventualele caractere „;“ în „,“, care dacă ar fi generate în fişierul de definiţii ar determina tipărirea greşită a rândurilor de factură.
Este posibilă şi tipărirea unor rânduri de observaţii la sfârşitul zonei rezervate pentru articole. Pentru implementarea acestei facilităţi se parcurg următorii paşi:
Câmpul {Pagina2} este folosit pentru depistarea situaţiei în care există prea multe rânduri care nu ar încăpea pe formular. Acest caz este depistat şi semnalat. Ulterior, în scriptul de lansare a tipăririi se va testa această situaţie şi nu se va tipări la imprimantă un astfel de document. Documentul poate fi tipărit pe ecran.
Dacă executaţi upgrade pentru documente deja folosite cu ajutorul formulelor listate, verificaţi ca variabilele sistem xF_6, xF_7 şi xF_8 să fie libere, deoarece sunt utilizate în aceste formule noi.
Dacă aţi implementat un algoritm special de listare, acesta va trebui să fie preluat în noul model de factură livrată.
Identificaţi câmpurile noi introduse şi transferaţi-le în noul model.
Pentru tipărirea informaţiilor suplimentare faţă de cele standard pot fi folosite câmpurile rezervate pentru observaţii Obs1 şi Obs2, sau există şi posibilitatea tipăririi unor observaţii în zona rezervată pentru articole aşa cum a fost prezentat mai înainte.
Pentru activarea listării pe cote TVA:
#RIND
// #DACA xF_1 != xF_Tva
// # h_MesErr ("Cote TVA diferite !",0)
// #ABANDON
#INCEPUTGRUPA
# {INITGRUPA}
;COTA TVA: {TVA}
#SFIRSITGRUPA
;TOTAL COTA TVA: {TVA} ...//
Alte observaţii:
Formatul de pagină din hMARFA recomandat pentru un document este:
Numar exemplare: 1
Pagina: - lungime: 66 - latime: 89
Text: - lungime: 65 - latime: 89
Pg.impare Pg.pare
Margini: - sus: 0 - stinga: 0 0
- jos: 1 - dreapta: 0 0//
Pentru formularul de factură numărul de rânduri rezervate pentru articole se calculează astfel:
randuri articole = lungime formular - 30
unde lungime formular este exprimată în rânduri de 6LPI.
Recomandabil este ca după ugrade facturile care se listează cu hPRINT să aibă o descriere de model şi formule separate. Deci creaţi un model propriu. Cele vechi vor rămâne cu definiţiile existente, cele care se tipăresc cu hPRINT, într-un model nou.
Operaţia de upgrade încarcă un set format din tipurile de documente TFAC, TFACS şi TFACR.
De obicei tipurile de documente TFAC şi TFACR au definiţii identice pentru MODEL/Formular şi MODEL/Formule. Acest lucru este adevărat pentru tipurile de documente livrate în upgrade.
Dacă modificaţi algoritmul de listare pentru TFAC, definiţiile MODEL/Formular şi MODEL/Formule modificate recomandăm să fie preluate şi în TFACR.
Preluarea poate fi făcută simplu printr-o operaţie de export şi import din Tipuri de documente.
De asemenea, pachetul de instalare conţine şi definiţii pentru factura în format A5. Definiţia este asemănătoare cu cea pentru factura format A4.
Pe o pagină A4 se tipăresc două formulare de factură A5. Astfel, lungimea de pagină indicată reprezintă lungimea ocupată de cele două formulare de factură A5.
Tipul de document ICH din pachet conţine definiţia pentru chitanţă în format grafic. Definiţia este simplă, conţine definiţia modelului şi a formulei.
Chitanţa poate să conţină o imagine de fundal.
Dacă în baza de date s-a implementat atât factura A4 cât şi chitanţa, pentru cele două tipuri de documente este recomandabil să se folosească imagini de fundal diferite. Acest lucru poate fi necesar, deoarece spaţiul disponibil pentru imaginea de fundal la cele două formulare diferă, astfel imaginea poate să apară distorsionată după tipărire. Deci imaginea de fundal trebuie să fie pregătită special pentru factură şi pentru chitanţă. Pentru a rezolva această situaţie, la tipărirea chitanţei se poate folosi o imagine de fundal proprie chitanţei, prin indicarea fişierului imagine în secţiunea Parametri:
[PARAMETRI]
#WATERMARK= <nume_fisier_watermark>
Chitanţa tipărită ocupă 15 rânduri. Dacă este posibil, pagina va conţine mai multe chitanţe tipărite în limita spaţiului disponibil.
Există şi combinaţia pentru factură şi chitanţă. Pagina va conţine formularul de factură şi chitanţă.
Chitanţa va fi completată numai dacă a fost generată la validarea facturii.
În caz contrar chitanţa va fi anulată, adică se tipăreşte şi formularul de chitanţă, dar câmpurile se completează cu „Anulat“.
Pentru ca generarea chitanţei să fie posibilă în timpul validării, în formula de validare trebuie să fie active liniile:
#DACA !(xF_Jrn = "MVR")
# xF_Incasare ("MICL ", , , "ICH ", , , xF_TotFac)
care au ca efect generarea chitanţei corespunzătoare facturii validate.
Formulele de mai sus generează chitanţa în jurnalul MICL, dacă jurnalul nu este vid, deci este necesar ca jurnalul să conţină cel puţin prima poziţie cu sold.
Imaginea de fundal va fi aceeaşi, atât pentru factură, cât şi pentru chitanţa tipărită, deşi spaţiul disponibil este diferit. Din acest motiv imaginea va fi puţin distorsionată, prin urmare va trebui proiectată pentru o situaţie de compromis.
Lungimea de pagină indicată va fi ocupată de cele două formulare.
Pachetul upgrade conţine şi definiţiile pentru avizul de însoţire a mărfii în format A4.
Începând cu hPRINT V 1.08 este posibilă tipărirea semnăturii şi a ştampilei pe facturi. Vezi parametrul SIGNATURE.
Dacă semnătura diferă în funcţie de staţia de lucru de la care se listează factura, modificaţi în modelul corespunzător tipului de document:
{D}SIGNATURE={Signature}
iar în formule definiţi:
Signature ; Semnatura si stampila; "SIGN_"+h_StatId()+".BMP"; C11
Va trebui să existe un fişier bitmap pentru fiecare staţie. Ex. SIGN_01.BMP, SIGN_02.BMP pentru staţiile 01, 02.