From 7bb485f4ae03aa4a19c8cb43b6c3eb4c9101eeee Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Thu, 1 Oct 2026 18:43:55 +0300 Subject: [PATCH] sync SVN r18245 --- docs/depanare_testare_vfp.md | 3 +++ programe/oproceduri_comune.prg | 10 ++++++++++ skills/roa-vfp-headless-test/SKILL.md | 2 ++ 3 files changed, 15 insertions(+) diff --git a/docs/depanare_testare_vfp.md b/docs/depanare_testare_vfp.md index b8e0c74..fc3769b 100644 --- a/docs/depanare_testare_vfp.md +++ b/docs/depanare_testare_vfp.md @@ -191,6 +191,9 @@ Cand un bug apare "de azi", compara cu clasa veche fara sa atingi SVN: - **Eroarea SQL prin `goExecutor` e o forma modala INTERNA VFP**: `watchdog_vfp.ps1` nu o vede (nu e fereastra top-level), procesul sta pana la timeout. Verifica fiecare `SELECT` din test cu `sqlplus` inainte de rulare (ex. `anaf_efactura` nu are `numar_act`/`data_act` - sunt in view-urile `anaf_vefactura_*`). +- **Si interogarile de DIAGNOSTIC ad-hoc (nu doar testul) trec pe `SQLEXEC` direct + log, niciodata prin `goExecutor`**: + un `_DIAG_SERII` cu o coloana ghicita (`serii_numere.id_tip_doc`, ORA-00904) a lasat dialog modal pe ecranul + utilizatorului (29.09.2026). Coloanele se iau din `ALL_TAB_COLUMNS`. Diagnosticul din afara scopului testului nu se face. - **Forma din `.vcx` cu `CREATEOBJECT` direct poate pica in `Init` cu erori de binding** ("Error with _checkbox1 - Value : Data type mismatch", CREATEOBJECT intoarce `.F.`), desi in aplicatie merge. Fa un stub `.scx` bazat pe clasa si deschide-l cu `DO FORM ... NAME lo NOSHOW` - asa se instantiaza ca in aplicatie, iar erorile ar arata calea completa a controlului. diff --git a/programe/oproceduri_comune.prg b/programe/oproceduri_comune.prg index dc32636..2cb7efc 100644 --- a/programe/oproceduri_comune.prg +++ b/programe/oproceduri_comune.prg @@ -2983,6 +2983,16 @@ Endproc Procedure lansare_help_meniu + Local lcPdf, llHtml + * manualul pdf al aplicatiei: \Help\manual_.pdf; daca exista si manualul html, se alege + lcPdf = Iif(Type('gcAppPath') = 'C' And Type('gcAppName') = 'C', gcAppPath + 'Help\manual_' + gcAppName + '.pdf', '') + If !Empty(m.lcPdf) And File(m.lcPdf) + llHtml = Type('ohelp.tool_help1') = 'O' And !Empty(ohelp.tool_help1.Help.comanda_program) And ohelp.tool_help1.Help.comanda_program <> 'INACTIV' + If !m.llHtml Or amessagebox('Deschideti manualul PDF?' + Chr(13) + '(Nu = manualul HTML)', 4 + 32, 'Manual de utilizare') = 6 + OPEN_DEFAULT_APP(m.lcPdf) + Return + Endif + Endif If Type('ohelp.tool_help1') <> 'O' Return Endif diff --git a/skills/roa-vfp-headless-test/SKILL.md b/skills/roa-vfp-headless-test/SKILL.md index 2dda83a..4a01ff1 100644 --- a/skills/roa-vfp-headless-test/SKILL.md +++ b/skills/roa-vfp-headless-test/SKILL.md @@ -42,6 +42,8 @@ Ambele se lanseaza de aici; ambele au aceleasi capcane de baza. Fara log/png, te Condensat; fiecare are istoric scump in `COMUN\docs\depanare_testare_vfp.md` (sec. 6-7) si `COMUN\docs\testare-ui-vfp.md`. Consulta-le inainte sa schimbi scriptul sau sa invinuiesti codul. +- Orice SQL din test SAU din diagnostic ad-hoc: `SQLEXEC` direct + log, nu `goExecutor` (eroarea = dialog + modal pe ecranul utilizatorului); coloanele din `ALL_TAB_COLUMNS`, nu ghicite; rulare doar prin `watchdog_vfp.ps1 -AutoDismiss`. - `-A` si `-T` sunt obligatorii amandoua: fara `-T` procesul sta pe splash, simptom identic cu o eroare de compilare. `-A` ignora config.fpw si porneste SAFETY ON. - SAFETY ON sub `-A`: primul `STRTOFILE`/`COMPILE` peste fisier existent scoate dialogul modal