Squash al branch-ului de lucru plan13-s2. Clase: ofacturare (nucleul formularului unificat), ofacturare_comun, ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de cautare), omodificari. Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie si cota standard de TVA cand articolul nu are cota pe politica. Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte proiecte sunt rezolvate pastrand ambele parti. Loguri de rulare a testelor scoase din versionare; testele raman. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
128 lines
4.1 KiB
Plaintext
128 lines
4.1 KiB
Plaintext
*!* 31.08.2026
|
|
*!* subagent masuratoare argumente
|
|
*!* masoara empiric comportamentul VFP9 la argumente in plus fata de LPARAMETERS declarat,
|
|
*!* atat pentru rutine locale cat si pentru rutine dintr-un fisier de proceduri separat (IN)
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
CLOSE ALL
|
|
|
|
lcLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\test_vfp_args_in_plus_log.txt'
|
|
lcExt = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\proceduri_test_args.prg'
|
|
|
|
IF FILE(lcLog)
|
|
DELETE FILE (lcLog)
|
|
ENDIF
|
|
|
|
loglin('SAFETY=' + SET('SAFETY') + ' RESOURCE=' + SET('RESOURCE'))
|
|
loglin('=== START masuratoare argumente in plus VFP9 ===')
|
|
|
|
*-- CAZ 1 LOCAL: DO rutina WITH a catre PROCEDURE fara niciun LPARAMETERS
|
|
loglin('')
|
|
loglin('--- CAZ1 LOCAL: DO rutina_noparam WITH "valA" (fara LPARAMETERS) ---')
|
|
TRY
|
|
DO rutina_noparam WITH 'valA'
|
|
loglin('CAZ1 LOCAL: fara eroare')
|
|
CATCH TO loErr
|
|
loglin('CAZ1 LOCAL: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 2 LOCAL: DO rutina WITH a,b catre PROCEDURE cu LPARAMETERS p1 (un singur parametru)
|
|
loglin('')
|
|
loglin('--- CAZ2 LOCAL: DO rutina_1p WITH "valA","valB" (LPARAMETERS p1) ---')
|
|
TRY
|
|
DO rutina_1p WITH 'valA', 'valB'
|
|
loglin('CAZ2 LOCAL: fara eroare')
|
|
CATCH TO loErr
|
|
loglin('CAZ2 LOCAL: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 3 LOCAL: rutina(a,b,c) sintaxa de functie catre LPARAMETERS p1,p2
|
|
loglin('')
|
|
loglin('--- CAZ3 LOCAL: rutina_2p("valA","valB","valC") (LPARAMETERS p1,p2) ---')
|
|
TRY
|
|
lcRes = rutina_2p('valA', 'valB', 'valC')
|
|
loglin('CAZ3 LOCAL: fara eroare, rezultat=' + lcRes)
|
|
CATCH TO loErr
|
|
loglin('CAZ3 LOCAL: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 4 LOCAL control: rutina(a) catre LPARAMETERS p1,p2 -- argument in MINUS
|
|
loglin('')
|
|
loglin('--- CAZ4 LOCAL (control, argument in minus): rutina_2p("valA") ---')
|
|
TRY
|
|
lcRes = rutina_2p('valA')
|
|
loglin('CAZ4 LOCAL: fara eroare, rezultat=' + lcRes)
|
|
CATCH TO loErr
|
|
loglin('CAZ4 LOCAL: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 1 IN FISIER SEPARAT: DO rutina IN altfisier.prg
|
|
loglin('')
|
|
loglin('--- CAZ1 IN: DO rutina_noparam_ext WITH "valA" IN (lcExt) ---')
|
|
TRY
|
|
DO rutina_noparam_ext WITH 'valA' IN (lcExt)
|
|
loglin('CAZ1 IN: fara eroare')
|
|
CATCH TO loErr
|
|
loglin('CAZ1 IN: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 2 IN FISIER SEPARAT
|
|
loglin('')
|
|
loglin('--- CAZ2 IN: DO rutina_1p_ext WITH "valA","valB" IN (lcExt) ---')
|
|
TRY
|
|
DO rutina_1p_ext WITH 'valA', 'valB' IN (lcExt)
|
|
loglin('CAZ2 IN: fara eroare')
|
|
CATCH TO loErr
|
|
loglin('CAZ2 IN: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
*-- CAZ 3 si 4 IN FISIER SEPARAT: sintaxa de functie nu suporta clauza IN,
|
|
*-- mecanismul echivalent folosit real in cod e SET PROCEDURE TO <fisier> ADDITIVE
|
|
loglin('')
|
|
loglin('--- CAZ3/4 IN: SET PROCEDURE TO (lcExt) ADDITIVE, apoi rutina_2p_ext(...) ---')
|
|
TRY
|
|
SET PROCEDURE TO (lcExt) ADDITIVE
|
|
loglin('SET PROCEDURE TO reusit')
|
|
CATCH TO loErr
|
|
loglin('SET PROCEDURE TO: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
loglin('--- CAZ3 IN: rutina_2p_ext("valA","valB","valC") ---')
|
|
TRY
|
|
lcRes = rutina_2p_ext('valA', 'valB', 'valC')
|
|
loglin('CAZ3 IN: fara eroare, rezultat=' + lcRes)
|
|
CATCH TO loErr
|
|
loglin('CAZ3 IN: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
loglin('--- CAZ4 IN (control, argument in minus): rutina_2p_ext("valA") ---')
|
|
TRY
|
|
lcRes = rutina_2p_ext('valA')
|
|
loglin('CAZ4 IN: fara eroare, rezultat=' + lcRes)
|
|
CATCH TO loErr
|
|
loglin('CAZ4 IN: EROARE ' + TRANSFORM(loErr.ErrorNo) + ' : ' + loErr.Message)
|
|
ENDTRY
|
|
|
|
loglin('')
|
|
loglin('=== SFARSIT masuratoare ===')
|
|
|
|
QUIT
|
|
|
|
PROCEDURE loglin(tcTxt)
|
|
STRTOFILE(tcTxt + CHR(13) + CHR(10), lcLog, 1)
|
|
ENDPROC
|
|
|
|
PROCEDURE rutina_noparam
|
|
lcDummy = 'fara LPARAMETERS deloc'
|
|
RETURN
|
|
|
|
PROCEDURE rutina_1p
|
|
LPARAMETERS p1
|
|
RETURN
|
|
|
|
FUNCTION rutina_2p
|
|
LPARAMETERS p1, p2
|
|
lcP2 = IIF(VARTYPE(p2) = 'L' AND ISNULL(p2), 'NULL', IIF(VARTYPE(p2) = 'L', TRANSFORM(p2) + '(bool.F=lipsa)', TRANSFORM(p2)))
|
|
RETURN '2p LOCAL OK, p1=' + TRANSFORM(p1) + ', p2=' + lcP2 + ', VARTYPE(p2)=' + VARTYPE(p2) + ', PARAMETERS()=' + TRANSFORM(PARAMETERS())
|