# Flux: ecranul „Vizualizare comenzi" (unificat: luna curenta + istoric) ## Lanț - `Programe/oproceduri_vizualizare.prg:616` `Procedure vizualizare_comenzi` `Lparameters tlIstoric` (`:617`) — **o singura procedura pentru ambele tile-uri**, nu doua separate. `pcschema`/`pcselect` (`:623-632`) pe `auto_istoric_comenzi a`, cu **+6 campuri** fata de forma veche: `asigurator`, `marca`, `masina`, `inspector`, `nr_dosar`, `inchis_fortat`. `pcorder = a.datai,a.nrord` (`:639`). - **Capcană**: `pcfiltru = [1=2]` (`:637`) — cursorul `crscomenzi` se deschide **gol**; gridul se populează abia la căutarea din formular. Neschimbat fata de forma veche. - `gencursor('pocomenzi','crscomenzi',...)` (`:641`) → `pocomenzi.ca_baza1.afisare()` (`:642`) → `Createobject('frm_viz_comenzi', m.tlIstoric)` (`:644`) → `.Show(1)` (`:645`). - Tile-uri (`Clase/ofundal_dev.vc2`): `Page2.Cw4.do_actiune` (`:681`) `DO vizualizare_comenzi ... WITH .F.` (`nid_cw=5`, luna curenta), `Page2.Cw5.do_actiune` (`:685`) `WITH .T.` (`nid_cw=6`, istoric). Drepturile pe cele doua tile-uri raman separate (nid_cw diferit). - Formular: `Clase/oviz_devize.vc2:13110` (`DEFINE CLASS frm_viz_comenzi`). Proprietate `lIstoric` (`*p: listoric`, `:13196`), primita in `Init(tlIstoric)` — controleaza titlul (ISTORIC / VIZUALIZARE COMENZI) si filtrul de mai jos. - `frm_viz_comenzi.do_cauta` (`Clase/oviz_devize.vc2:14272`) — **aici** se bifurca cele doua moduri si se construieste filtrul real: - `lcFiltru = Iif(Thisform.lIstoric, [2=2], gcCondLuna)` (`:14284`) — istoricul vede tot, modul "luna curenta" ramane limitat la `gcCondLuna`; - + filtrele bifate: `ck_datai` (`:14286`), `ck_nrinmat` (`:14290`), `ck_nrord` (`:14294`), `ck_nume` (`:14298`), `ck_asigurator` (`:14302`), `ck_inspector` (`:14306`), `ck_nr_dosar` (`:14310`), `ck_series` (`:14314`), `ck_referinta` (`:14343`) — **ultimii 4 (asigurator, inspector, nr_dosar, referinta) sunt noi**, nu existau in forma veche de "luna curenta"; - + `and a.id_tip = ...` dacă s-a ales un tip (`:14318`); - + `and a.validat = 0/1` după `cbValidat` (`:14323-14327`); - + `and a.inchis_fortat = 0/1` după `cbArhivat` (`:14331-14335`); - apoi `Thisform.actualizeaza_grid1(lcFiltru)`. - `actualizeaza_grid1` — pune `pocomenzi.ca_baza1.cfiltru`, reapelă `afisare()`, cu `save_grid` / `restore_grid`. - Coloane noi, adaugate **la coada** grid-ului (`Column22-27`, `:13628-13661`): `cAsigurator`, `cMarca`, `cMasina`, `cInspector`, `cNr_dosar`, `cArhivat` (`IIF(inchis_fortat=1,'Da','Nu')`). - `Cmd_sterge1`/`do_sterge` exista in clasa (`:13465`, `:14587`) dar `Visible = .F.` (`:13472`) — butonul de stergere ramane ascuns, ca in fosta forma de istoric; activarea lui e o decizie separata, netratata de unificare. ## Valorile implicite ale combo-urilor (contează la orice măsurătoare) | combo | implicit | efect în `do_cauta` | |---|---|---| | `cbArhivat` | `"Active"` (`Clase/oviz_devize.vc2:14665`) | mereu `and a.inchis_fortat = 0` (`:14332`) | | `cbValidat` | `""` (`:14701`) | nimic | | `cbtip_deviz` | `""` (`:65`, clasa `ctip_deviz`) | nimic | ## Ecranul pereche „Vizualizare facturi" - `Programe/oproceduri_vizualizare.prg:231` `Procedure vizualizare_facturi` — sursa `auto_facturi_emise a` (`:247`); `pcFiltru = [1=2]` (`:253`), deci din nou cursor gol. - Filtrul real e în `frm_viz_facturi.do_cauta` (`Clase/oviz_devize.vc2:16941`) și **nu** folosește `gcCondLuna` (linia e comentată la `:16946`), ci `extract(month from dataact)=gnLuna` + `extract(year from dataact)=gnAn` (`:16945`) + checkbox-uri; `actualizeaza_grid1` (`:16983`). - Formular: `Clase/oviz_devize.vc2:16005` (`DEFINE CLASS frm_viz_facturi`). ## Editare de grid - Coloane noi **doar la coadă** — preferințele de grid (`gridprefs.tmp` din GridExtras) se aplică pozițional; o coloană inserată la mijloc mută toate preferințele salvate.