30 lines
1.6 KiB
Markdown
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).
|