Files
comun/skills/roa-vfp-frx-report/references/editare-iterativa.md
2026-09-24 23:07:59 +03:00

30 lines
1.6 KiB
Markdown

# Editarea iterativa a unui raport existent
Doua cai; alege una si tine-o ca **sursa unica de adevar**.
## A. Generator `.prg` reutilizabil (reasezare / raport construit programatic)
Un singur `.prg` cu `COPY FILE <model>.frx TO <nou>.frx` (+ `.frt`), `USE ... EXCLUSIVE`, `ZAP`,
apoi `APPEND BLANK` + `REPLACE` per obiect printr-un singur `FUNCTION addrec` (valori implicite,
suprascrise per tip). Sursa de adevar e `.prg`-ul: il re-rulezi si regenereaza `.frx`/`.frt`.
Potrivit cand layout-ul se schimba mult (latimi, benzi, orientare) sau raportul se construieste de la
zero; fiecare runda porneste de la generatorul rundei precedente (r6: `build_r6.prg` derivat din
`build_final.prg`).
## B. Editarea `.fr2` + `frx_convert`
Pentru modificari mici de text/camp pe un raport existent:
`frx_convert.ps1 -Path r.frx` -> editezi `r.fr2` -> `frx_convert.ps1 -Path r.fr2` regenereaza
`r.frx`+`r.frt`. Editezi doar textul vizat (nu rescrie antetul), altfel risti sa strici formatul.
## Reguli
- **Nu edita ambele**: daca rulezi generatorul peste un `.frx` editat manual din `.fr2`, pierzi
editarea; daca editezi `.fr2` dupa ce ai rulat generatorul, `.frx` nu mai corespunde. Alege o
sursa si lucreaza numai in ea.
- `FoxBin2Prg.EXE` (prin `frx_convert.ps1`) lasa un `r.fr2.bak` cand `r.fr2` exista deja; nu face
parte din livrare - sterge-l.
- Modelul de pornire trebuie sa aiba toate benzile (Title/PageHeader/GroupHeader/Detail/GroupFooter/
PageFooter). `Rapoarte\listmfcota.frx` e valid; `COPY FILE` pastreaza si formatul de raport, pe
cand `COPY STRUCTURE` produce un `.frx` "invalid" (lipseste formatul).