sync SVN r18181

This commit is contained in:
2026-09-18 19:48:19 +03:00
parent 79214c44ea
commit 45aad0f07c
5 changed files with 1122 additions and 16 deletions

View File

@@ -132,6 +132,8 @@ Cand un bug apare "de azi", compara cu clasa veche fara sa atingi SVN:
`INKEY(0)` asteapta, timerele VFP nu se declanseaza, deci un dialog/o bucla blocata asa nu poate
fi deblocata din interiorul procesului - in rulare headless arata ca un proces viu care nu mai
scrie in log.
- **Doua constructii care NU compileaza, dar trec de `txt2vcx`** (storno eFactura, 18.09.2026): `NEWOBJECT('c', 'lib.vcx', , p1, ...)` cu argumentul 3 omis ("Function argument value, type, or count is invalid" - pune `''`) si `CREATEOBJECT(...).Metoda()` inlantuit ("Syntax error"). `txt2vcx` (si `-DryRun`) NU compileaza metodele: dupa write-back, copiaza `.vcx`/`.vct` in ACELASI folder sub alt nume (parintii se rezolva relativ), `COMPILE CLASSLIB` headless, citeste `.ERR`, sterge copia.
- **`FOR EACH` pe `loDom.selectNodes(...)`** da la rulare "Expression evaluator failed". Foloseste `loN = loDom.selectNodes(...)` + `FOR i = 0 TO loN.length - 1` / `loN.item(i)`.
## 7. Capcane la SCRIEREA scriptului de test
@@ -178,3 +180,14 @@ Cand un bug apare "de azi", compara cu clasa veche fara sa atingi SVN:
si apoi apeleaza cod care citeste globalul masoara valoarea veche, fara niciun semn de eroare.
Verifica intai pe ce cale citeste codul testat; daca e globalul, seteaza-l direct in test (si
restaureaza-l la final), nu prin `scrie_optiune()`.
- **Liniile de dinainte de `ON ERROR` dau dialog nativ pe ecranul utilizatorului.** `ALLTRIM(NVL(tcParam, ''))` pe un
parametru nepasat (`.F.`) = "Function argument value..." ca dialog "Program Error", nu in log. Seteaza `ON ERROR` pe
primele linii si foloseste `TRANSFORM(tcParam)` pentru parametri optionali.
- **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_*`).
- **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.
- **Rularile de test se fac DOAR prin `watchdog_vfp.ps1 -AutoDismiss`**: un lansator propriu fara plasa a lasat 3 dialoguri
modale pe ecranul utilizatorului (18.09.2026).