From 7010acf850a48a8afb1255e6414f3e5da6d163b5 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Wed, 30 Sep 2026 09:47:06 +0300 Subject: [PATCH] sync SVN r18227 --- .../grid_albit/mock_cauta_alfa_capture.prg | 53 ---- utile/Teste/grid_albit/probe_env.prg | 78 ------ .../grid_albit/test_grid_albit_stack.prg | 227 ------------------ 3 files changed, 358 deletions(-) delete mode 100644 utile/Teste/grid_albit/mock_cauta_alfa_capture.prg delete mode 100644 utile/Teste/grid_albit/probe_env.prg delete mode 100644 utile/Teste/grid_albit/test_grid_albit_stack.prg diff --git a/utile/Teste/grid_albit/mock_cauta_alfa_capture.prg b/utile/Teste/grid_albit/mock_cauta_alfa_capture.prg deleted file mode 100644 index bcab69c..0000000 --- a/utile/Teste/grid_albit/mock_cauta_alfa_capture.prg +++ /dev/null @@ -1,53 +0,0 @@ -* mock_cauta_alfa_capture.prg - inlocuieste DOAR PROCEDURE cauta_alfa (COMUN\programe\cauta_alfa.prg, -* linia 16), NU restul lantului (do_cauta/CautPartenerContabilitate/alege_partener raman REALE, -* neatinse) - captureaza starea EXACT in punctul unde codul real ar deschide formularul modal de -* cautare: ASTACKINFO() (cine a apelat - LostFocus/Click/AfterRowColChange), Thisform.LockScreen, -* USED/RECCOUNT('tact'), Grid1.RecordSource. Nu deschide niciun formular - raspunde "Cancel" -* (gnButon=2), exact ca un operator care apasa Renunta, ca sa nu blocheze testul. -* Se incarca PRIMUL (inaintea "SET PROCEDURE TO cauta_alfa ADDITIVE" din test_init_env_auto) - la -* nume duplicat de procedura VFP foloseste fisierul incarcat PRIMUL. -* -* Rezultat expus (citit de testul principal): gnCaptureN (numarul de intrari capturate). - -Procedure cauta_alfa - Parameters tcselect,tcfiltru,tcschema,tcorder,tccoloana,tcTitlu,tcTitluColoane, ; - tcNume_Proc,tl_AllInList,tcFiltruOriginal,tcPrimaColoana, tnPornire, tnTipReturn, ; - tcIdColumn, tlDesktop, tcGroup, tcGridDynamicBackColor, tcGridToolTip, tlModParam, tcStringCriterii, ; - tcProceduraVerifica, tcProceduraCopiaza,tcLocate - - LOCAL lcStack, lnI, lnN - LOCAL ARRAY laStack[1] - gnCaptureN = gnCaptureN + 1 - - lnN = ASTACKINFO(laStack) - lcStack = '' - FOR lnI = 1 TO lnN - lcStack = lcStack + ' #' + TRANSFORM(lnI) + ' ' + TRANSFORM(laStack[lnI,3]) + ' linia ' + TRANSFORM(laStack[lnI,6]) + CHR(13) + CHR(10) - ENDFOR - - DO HarnessLog WITH '--- CAPTURE #' + TRANSFORM(gnCaptureN) + ' intrare in cauta_alfa (mock) ---' - DO HarnessLog WITH 'ASTACKINFO:' + CHR(13) + CHR(10) + lcStack - DO HarnessLog WITH 'LockScreen=' + TRANSFORM(goFormTest.LockScreen) + ; - ' USED(tact)=' + TRANSFORM(USED('tact')) + ' RECCOUNT(tact)=' + TRANSFORM(IIF(USED('tact'),RECCOUNT('tact'),-1)) + ; - ' RECNO(tact)=' + TRANSFORM(IIF(USED('tact'),RECNO('tact'),-1)) + ; - ' Grid1.RecordSource=[' + goFormTest.Grid1.RecordSource + ']' + ; - ' Grid1.Visible=' + TRANSFORM(goFormTest.Grid1.Visible) + ' Thisform.Visible=' + TRANSFORM(goFormTest.Visible) - - IF TYPE('gcCaptureSyncStep') = 'N' AND gcCaptureSyncStep > 0 - DO HarnessStep WITH gcCaptureSyncStep, 'in interiorul cauta_alfa (mock), captura #' + TRANSFORM(gnCaptureN), 8 - ENDIF - - *-- raspuns Cancel real (gnButon global, declarat PUBLIC in test_init_env_auto.prg) - gnButon = 2 - DO CASE - CASE tnTipReturn = 0 - LOCAL loRet - loRet = CREATEOBJECT('Empty') - ADDPROPERTY(loRet, 'id_part', 0) - ADDPROPERTY(loRet, 'tip', 0) - ADDPROPERTY(loRet, 'nume', '') - RETURN loRet - OTHERWISE - RETURN '' - ENDCASE -Endproc && cauta_alfa (mock capturare) diff --git a/utile/Teste/grid_albit/probe_env.prg b/utile/Teste/grid_albit/probe_env.prg deleted file mode 100644 index 7d2ed92..0000000 --- a/utile/Teste/grid_albit/probe_env.prg +++ /dev/null @@ -1,78 +0,0 @@ -* probe_env.prg - sonda READ-ONLY: structura vact_tot, un cont cu config_cont_ireg, si test tact minimal. -* Rulare: vfp9.exe -A -T "probe_env.prg" - -SET SAFETY OFF -SET TALK OFF -SET DELETED ON -SET EXACT ON -SET CENTURY ON -SET DATE DMY -SET NULLDISPLAY TO '' -CLOSE DATABASES - -PUBLIC gcLog -gcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\probe_env_log.txt" -STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog) - -ON ERROR DO PrE WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() -ON SHUTDOWN QUIT - -TRY - DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT', 2026, 9 - IF gnHandle <= 0 - DO PrL WITH 'FAIL conectare, gnHandle=' + TRANSFORM(gnHandle) - QUIT - ENDIF - DO PrL WITH 'conectat gnHandle=' + TRANSFORM(gnHandle) + ' gcS=' + gcS + ' gnAn=' + TRANSFORM(gnAn) + ' gnLuna=' + TRANSFORM(gnLuna) - - LOCAL llSucces - llSucces = goExecutor.oExecuta("select * from vact_tot where 1=2", "v_act") - DO PrL WITH 'vact_tot 1=2: succes=' + TRANSFORM(llSucces) - IF llSucces - LOCAL laF[1], lnI, lcCols - lnI = AFIELDS(laF, 'v_act') - lcCols = '' - FOR lnI = 1 TO ALEN(laF,1) - lcCols = lcCols + laF[lnI,1] + '(' + laF[lnI,2] + ') ' - ENDFOR - DO PrL WITH 'vact_tot campuri (' + TRANSFORM(ALEN(laF,1)) + '): ' + lcCols - USE IN v_act - ENDIF - - llSucces = goExecutor.oExecuta("select cont, count(*) as ncc from config_cont_ireg group by cont order by cont", "cCfg") - IF llSucces - DO PrL WITH 'config_cont_ireg conturi: reccount=' + TRANSFORM(RECCOUNT('cCfg')) - SELECT cCfg - SCAN - DO PrL WITH ' cont=[' + TRANSFORM(cont) + ']' - ENDSCAN - USE IN cCfg - ELSE - DO PrL WITH 'FAIL config_cont_ireg: ' + goExecutor.cEroare - ENDIF - - llSucces = goExecutor.oExecuta("select count(*) as n from coresp_tip_cont where cont = '4111'", "cCorp") - IF llSucces - DO PrL WITH 'coresp_tip_cont cont=4111: n=' + TRANSFORM(cCorp.n) - USE IN cCorp - ENDIF - - DO PrL WITH 'DONE ' + TTOC(DATETIME()) -CATCH TO loEx - DO PrL WITH 'EXCEPTIE ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure -ENDTRY - -QUIT - -PROCEDURE PrL - LPARAMETERS tcMsg - LOCAL lcL - SET SAFETY OFF - lcL = IIF(FILE(gcLog), FILETOSTR(gcLog), '') - STRTOFILE(lcL + TRANSFORM(tcMsg) + CHR(13) + CHR(10), gcLog) -ENDPROC - -PROCEDURE PrE - LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo - DO PrL WITH 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) -ENDPROC diff --git a/utile/Teste/grid_albit/test_grid_albit_stack.prg b/utile/Teste/grid_albit/test_grid_albit_stack.prg deleted file mode 100644 index ac3be39..0000000 --- a/utile/Teste/grid_albit/test_grid_albit_stack.prg +++ /dev/null @@ -1,227 +0,0 @@ -* test_grid_albit_stack.prg - dovada prin rulare (nu analiza statica) a CE declanseaza deschiderea -* cautarii partenerului cand se paraseste celula Partener Credit (Grid1.Column10) goala, in -* frm_modific2024 (COMUN\clase\omodificari.vc2:6375), ecranul de verificare dupa import. -* Instrumentare: mock_cauta_alfa_capture.prg inlocuieste cauta_alfa cu o capturare de stare -* (ASTACKINFO/LockScreen/USED/RECCOUNT/RecordSource), fara sa deschida vreun formular - restul -* lantului (do_cauta/CautPartenerContabilitate/alege_partener/LostFocus/AfterRowColChange) e REAL. -* tact e construit din structura REALA de productie (vact_tot -> ales/Cu_tva/tipnota, exact ca in -* Programe\ocont2003.prg::note_fara_predefinire), cu doua randuri: randul 1 cont 4111 (are -* config_cont_ireg+coresp_tip_cont) cu partener CREDIT gol, randul 2 cu partener deja completat. -* -* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\test_grid_albit_stack.prg" -* Iesire: D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\test_grid_albit_stack_log.txt - -SET SAFETY OFF -SET TALK OFF -SET DELETED ON -SET EXACT ON -SET CENTURY ON -SET DATE DMY -SET NULLDISPLAY TO '' -CLOSE DATABASES - -PUBLIC gcUILog, gcSyncDir, gnCaptureN, gcCaptureSyncStep, goFormTest -gcSyncDir = 'D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\uisync\' -gcUILog = 'D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\test_grid_albit_stack_log.txt' -STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) -gnCaptureN = 0 -gcCaptureSyncStep = 0 - -ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() -ON SHUTDOWN QUIT - -*-- cai complete: la lansare vfp9 -A -T directorul curent NU e cel al scriptului, deci nume goale -*-- de PRG nu se gasesc (era cauza dialogului "Program Error: harnesslog.prg does not exist") -SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\ui_harness.prg" ADDITIVE - -*-- mock-ul cauta_alfa TREBUIE incarcat inaintea test_init_env_auto (care face -*-- SET PROCEDURE TO cauta_alfa ADDITIVE) - la nume duplicat VFP tine fisierul incarcat PRIMUL -SET PROCEDURE TO "D:\ROA\ROACONT\COMUN\utile\Teste\grid_albit\mock_cauta_alfa_capture.prg" ADDITIVE - -TRY - DO "D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT', 2026, 9 - IF gnHandle <= 0 - DO HarnessLog WITH 'FAIL: conectare Oracle esuata (gnHandle=' + TRANSFORM(gnHandle) + ')' - DO HarnessDone WITH 'error' - QUIT - ENDIF - DO HarnessLog WITH 'mediu initializat gnHandle=' + TRANSFORM(gnHandle) - - DO BuildTact - DO HarnessLog WITH 'tact construit, reccount=' + TRANSFORM(RECCOUNT('tact')) + ' campuri=' + TRANSFORM(FCOUNT('tact')) - DO HarnessLog WITH ' rand1: scc=' + ALLTRIM(tact.scc) + ' partc=[' + ALLTRIM(NVL(tact.partc,'')) + ']' - GO 2 IN tact - DO HarnessLog WITH ' rand2: scc=' + ALLTRIM(tact.scc) + ' partc=[' + ALLTRIM(NVL(tact.partc,'')) + ']' - GO 1 IN tact - - SELECT tact - GO TOP - goFormTest = CREATEOBJECT('frm_modific2024', 90023, .T., NULL) - goFormTest.lActivExtrase = .T. - goFormTest.WindowType = 0 - goFormTest.Show() - DO HarnessLog WITH 'form afisat: LockScreen=' + TRANSFORM(goFormTest.LockScreen) + ' Grid1.RecordSource=[' + goFormTest.Grid1.RecordSource + '] Grid1.RecordSourceType=' + TRANSFORM(goFormTest.Grid1.RecordSourceType) + ' Visible=' + TRANSFORM(goFormTest.Visible) - - *===================================================================== - * SCENARIU A: parasirea celulei Partener Credit (goala) prin LostFocus, urmat de Click pe - * butonul "Partener Credit" - tiparul exact din log.txt (dubla cautare) - *===================================================================== - DO HarnessLog WITH '' - DO HarnessLog WITH '=== SCENARIU A: Column10.Text1.LostFocus (partc gol) apoi Command2.Click ===' - SELECT tact - GO 1 - LOCAL lnCapturiA0, lnCapturiA1 - lnCapturiA0 = gnCaptureN - DO HarnessLog WITH 'A: inainte - LockScreen=' + TRANSFORM(goFormTest.LockScreen) + ' recno=' + TRANSFORM(RECNO('tact')) + ' partc=[' + ALLTRIM(NVL(tact.partc,'')) + ']' - - *-- incearca intai focus REAL (poate declansa evenimente native suplimentare), apoi apelul direct - *-- garanteaza deterministic reproducerea, indiferent daca SetFocus a functionat headless - TRY - goFormTest.Grid1.SetFocus() - goFormTest.Grid1.Column10.Text1.SetFocus() - DO HarnessLog WITH 'A: SetFocus real pe Column10.Text1 - OK, ActiveColumn=' + TRANSFORM(goFormTest.Grid1.ActiveColumn) - CATCH TO loExFocus - DO HarnessLog WITH 'A: SetFocus real a esuat (' + loExFocus.Message + ') - continui cu apelul direct al metodei' - ENDTRY - - goFormTest.Grid1.Column10.Text1.LostFocus() - lnCapturiA1 = gnCaptureN - DO HarnessLog WITH 'A1 (LostFocus): capturi noi=' + TRANSFORM(lnCapturiA1 - lnCapturiA0) + ' LockScreen dupa=' + TRANSFORM(goFormTest.LockScreen) + ' partc=[' + ALLTRIM(NVL(tact.partc,'')) + ']' - - goFormTest.Command2.Click() - DO HarnessLog WITH 'A2 (Command2.Click): capturi noi=' + TRANSFORM(gnCaptureN - lnCapturiA1) + ' LockScreen dupa=' + TRANSFORM(goFormTest.LockScreen) - DO HarnessLog WITH 'A: TOTAL capturi scenariu=' + TRANSFORM(gnCaptureN - lnCapturiA0) + ' (asteptat 2 daca ipoteza H1 se confirma: LostFocus + Click deschid ambele cautarea)' - - *===================================================================== - * SCENARIU B: schimbare de rand, cu randul PARASIT avand partc gol - testeaza (B1) daca un GO - * brut pe cursorul legat declanseaza singur vreun eveniment, si (B2) dansul LockScreen din - * AfterRowColChange (16083-16097) cand randul recalculat (nRecLipsuri) are partc gol - *===================================================================== - DO HarnessLog WITH '' - DO HarnessLog WITH '=== SCENARIU B: schimbare de rand, randul cu partc gol e cel reverificat de AfterRowColChange ===' - SELECT tact - GO 1 - LOCAL lnCapturiB0, lnCapturiB1 - lnCapturiB0 = gnCaptureN - TRY - goFormTest.Grid1.Column10.Text1.SetFocus() - CATCH TO loExFocus - ENDTRY - GO 2 IN tact - lnCapturiB1 = gnCaptureN - DO HarnessLog WITH 'B1 (GO 2 brut, fara apel explicit): capturi noi=' + TRANSFORM(lnCapturiB1 - lnCapturiB0) + ' LockScreen=' + TRANSFORM(goFormTest.LockScreen) - - goFormTest.nRecLipsuri = 1 && "randul parasit" pe care AfterRowColChange il reverifica e randul 1 (partc gol) - goFormTest.cSemnLipsuri = 'FORTAT-DIFERIT-CA-SA-INTRE-PE-RAMURA' - DO HarnessLog WITH 'B2: inainte de AfterRowColChange - LockScreen=' + TRANSFORM(goFormTest.LockScreen) + ' recno curent=' + TRANSFORM(RECNO('tact')) + ' nRecLipsuri=' + TRANSFORM(goFormTest.nRecLipsuri) - goFormTest.Grid1.AfterRowColChange(10) - DO HarnessLog WITH 'B2 (AfterRowColChange explicit): capturi noi=' + TRANSFORM(gnCaptureN - lnCapturiB1) + ' LockScreen dupa=' + TRANSFORM(goFormTest.LockScreen) + ' recno curent=' + TRANSFORM(RECNO('tact')) - DO HarnessLog WITH 'B: TOTAL capturi scenariu=' + TRANSFORM(gnCaptureN - lnCapturiB0) - - *===================================================================== - * SCENARIU C: Click direct pe buton, FARA ca focusul sa fi trecut prin celula (fara LostFocus) - *===================================================================== - DO HarnessLog WITH '' - DO HarnessLog WITH '=== SCENARIU C: Command2.Click direct, focus pe alt control (nu in celula Partener Credit) ===' - SELECT tact - GO 1 - LOCAL lnCapturiC0 - lnCapturiC0 = gnCaptureN - TRY - goFormTest.but_renunt1.SetFocus() - CATCH TO loExFocus - ENDTRY - goFormTest.Command2.Click() - DO HarnessLog WITH 'C (Command2.Click direct): capturi noi=' + TRANSFORM(gnCaptureN - lnCapturiC0) + ' LockScreen dupa=' + TRANSFORM(goFormTest.LockScreen) - - DO HarnessLog WITH '' - DO HarnessLog WITH '=== REZULTAT: total capturi cauta_alfa=' + TRANSFORM(gnCaptureN) + ' ===' - DO HarnessDone WITH 'done' - DO HarnessLog WITH 'TOTAL: test terminat fara exceptie' -CATCH TO loEx - DO HarnessLog WITH 'EXCEPTIE: ' + loEx.Message + ' (' + TRANSFORM(loEx.LineNo) + ') ' + loEx.Procedure - DO HarnessDone WITH 'error' -ENDTRY - -QUIT - -********************************************************** -* tact - structura REALA de productie (vact_tot -> ales/Cu_tva/tipnota), ca in -* Programe\ocont2003.prg::note_fara_predefinire (liniile 1007-1082). Doua randuri: primul cu -* cont 4111 (config_cont_ireg + coresp_tip_cont populate pe schema de test) si partener CREDIT -* gol - tinta bugului; al doilea cu partener deja completat, doar ca sa existe "schimbare de rand". -PROCEDURE BuildTact - LOCAL llSucces - IF USED('tact') - USE IN tact - ENDIF - IF USED('actactan') - USE IN actactan - ENDIF - IF USED('crsJtvaTemp') - USE IN crsJtvaTemp - ENDIF - *-- Init/Load (frm_modific2024) citesc crsJtvaTemp - exact apelul din ocont2003.prg:997 - update_jtva_coloane("", "crsJtvaTemp", 1) - - llSucces = goExecutor.oExecuta("select * from vact_tot where 1=2", "v_act") - IF !llSucces - DO HarnessLog WITH 'FAIL: vact_tot inaccesibil - ' + goExecutor.cEroare - RETURN .F. - ENDIF - SELECT * FROM v_act INTO CURSOR actactan READWRITE - USE IN v_act - SELECT .F. AS ales, IIF(EMPTY(NVL(a.id_jtva_coloana,0)),0,1) AS Cu_tva, CAST(0 AS N(2)) AS tipnota, a.* FROM actactan a INTO CURSOR tact READWRITE - USE IN actactan - - *-- trul/trul_obinv - formularul le foloseste (pgfArticole) chiar daca randurile de tact nu au - *-- rulaje; goale, aceeasi structura ca in ocont2003.prg::note_fara_predefinire (1017-1044) - IF USED('trul') - USE IN trul - ENDIF - llSucces = goExecutor.oExecuta("select * from vrul_tot where 1=2", "v_rul") - IF !llSucces - DO HarnessLog WITH 'FAIL: vrul_tot inaccesibil - ' + goExecutor.cEroare - RETURN .F. - ENDIF - SELECT *, valoare + valtva AS valoarectva, valoarev + valtvav AS valoarevctva FROM v_rul INTO CURSOR trul READWRITE - USE IN v_rul - - IF USED('trul_obinv') - USE IN trul_obinv - ENDIF - llSucces = goExecutor.oExecuta("select * from vrul_obinv_tot where 1=2", "v_rul_obinv") - IF !llSucces - DO HarnessLog WITH 'FAIL: vrul_obinv_tot inaccesibil - ' + goExecutor.cEroare - RETURN .F. - ENDIF - SELECT *, valoare + valtva AS valoarectva, valoarev + valtvav AS valoarevctva FROM v_rul_obinv INTO CURSOR trul_obinv READWRITE - USE IN v_rul_obinv - - SELECT tact - APPEND BLANK - REPLACE dataireg WITH DATETIME(), dataact WITH DATETIME(), datascad WITH DATETIME() + 30 * 86400 - REPLACE id_sucursala WITH NVL(gnIdSucursala, 0), sters WITH 0, an WITH gnAn, luna WITH gnLuna - REPLACE scd WITH '628', scc WITH '4111', partd WITH 'CHELTUIALA TEST', id_partd WITH 0 - REPLACE partc WITH '', id_partc WITH 0, suma WITH 100.00, nract WITH 1, cod WITH 1 - - APPEND BLANK - REPLACE dataireg WITH DATETIME(), dataact WITH DATETIME(), datascad WITH DATETIME() + 30 * 86400 - REPLACE id_sucursala WITH NVL(gnIdSucursala, 0), sters WITH 0, an WITH gnAn, luna WITH gnLuna - REPLACE scd WITH '5121', scc WITH '4111', partd WITH '', id_partd WITH 0 - REPLACE partc WITH 'PARTENER DEJA ALES', id_partc WITH 1, suma WITH 50.00, nract WITH 2, cod WITH 1 - - GO TOP - RETURN .T. -ENDPROC - -********************************************************** -PROCEDURE PrErrLocal - LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo - LOCAL lcMsg - lcMsg = 'EROARE ' + TRANSFORM(tnError) + ' ' + TRANSFORM(tcMessage) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLineNo) - IF TYPE('gcUILog') = 'C' AND !EMPTY(gcUILog) - SET SAFETY OFF - STRTOFILE(IIF(FILE(gcUILog), FILETOSTR(gcUILog), '') + lcMsg + CHR(13) + CHR(10), gcUILog) - ENDIF -ENDPROC