Files
comun/utile/Teste/facturare_unificat/test_vfp_args_in_plus.prg
Marius Mutu 8e022d332e #13: formular de facturare unificat - etapa curenta
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
2026-09-09 21:38:25 +03:00

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())