găsiți mai jos un script pentru completarea datelor delegatului pe factura.
Code: Select all
// script DELEG
//
// In operatia de Adaugare factura
// completeaza cod client in antetul facturii,
// si datele delegatului in textul liber.
//
// Scriptul este apelat in Initializare - Formule.
// Dupa randul # xF_lOpTva := {"1Ix"} (sau similar)
// se scrie: # gcmd_exec("DELEG")
//
// Textul liber al documentului trebuie sa contina urmatorul text:
//
// Nume delegat:
// CI:
//
// Datele delegatului se completeaza in Persoane.
// Campuri folosite: Numele si prenumele
// si primul rand din Observatii pentru datele de buletin.
// (Se pot folosi si alte campuri, modificand adecvat scriptul.)
// activat numai pt. un anumit model de document
#IF ! fac_model = "D"
Abandon()
#ENDIF
// citire cod client
cCodFirma := SPACE(7)
h_GetParam(@cCodFirma,;
"Alegere client",;
"Cod firma",;
"hlp_firm (2, 1, , .F.)",;
"h_Valid(vf_firm(sParam),'Cod client inexistent.')",;
"@!")
// iesit cu ESC
#IF EMPTY(cCodFirma)
Abandon()
#ENDIF
// salvare alias curent
cAlias := ALIAS()
// deschidere Persoane
#IF ! h_UseAlias("per")
Abandon()
#ENDIF
DBSELECTAREA("per")
// filtru pe persoanele firmei alese anterior
DBSETFILTER({|| (per->CODFIRMA=cCodFirma) })
DBGOTOP()
// nu exista persoana pt. aceasta firma
#IF EOF()
h_MesErr("Nu exista persoane introduse pentru firma "+firm->INITIALE,0)
h_CloseAlias("per")
DBSELECTAREA(cAlias)
Abandon()
#ENDIF
// citire cod persoana
cCodPers := SPACE(5)
h_GetParam(@cCodPers,;
"Alegere delegat",;
"Cod persoana",;
"hlp_per (2, 1, , .F.)",;
"h_Valid(vf_per(sParam),'Cod persoana inexistent.')",;
"@!")
// iesit cu ESC
#IF EMPTY(cCodPers)
h_CloseAlias("per")
DBSELECTAREA(cAlias)
Abandon()
#ENDIF
// completare cod client in antetul facturii
fac_codbenef := cCodFirma
// completare nume delegat si date buletin in text liber
fac_txtlib := STRTRAN(fac_txtlib, "delegat:", "delegat: "+ALLTRIM(per->NUME))
fac_txtlib := STRTRAN(fac_txtlib, "CI:", "CI: "+ALLTRIM(per->OBS))
// inchidere fis. persoane
h_CloseAlias("per")
// revenire la alias initial
DBSELECTAREA(cAlias)
// Optional: ca sa apara si datele firmei in antet. Cursorul trece in text liber.
h_KeyBoard(REPLICATE(CHR(13),7)+CHR(28)+CHR(13))