Acest site folosește cookie-uri. Prin navigarea pe acest site, iți exprimi acordul asupra folosirii cookie-urilor. Vezi și politica noastră de confidențialitate

N E X U S
Nexus ERP

Nexus ERP progres

loading

Formular Nexus ERP


Funcțiile customizate de tipul "Formular Nexus ERP" sunt de două tipuri: STANDARD și INLINE și sunt utilizate pentru generarea rapoartelor formular. În fereastra de configurare a rapoartelor există un tip de raport nou, implicit, utilizat doar pentru gruparea rapoartelor importate din funcții: Funcții custom - Formular. În cazul acestui tip de raport, este necesară adăugarea în setul de coloane returnate de funcția customizată a unui câmp "antet", care să conțină cheia primară a documentelor (anluna + "_" + dbo.id2cod(pct_lcr, id)). Acest câmp se utilizează intern la gruparea documentelor în cadrul raportului. În cadrul ferestrei de configurare rapoarte există și butonul "Import din funcții customizate". Prin intermediul acestuia, utilizatorii au posibilitatea de a importa funcțiile adăugate anterior în modulul "Funcții customizate". În cadrul ferestrei de import se poate opta pentru setarea perioadei, opțiune disponibilă ulterior importului, în pagina Setări a raportului. Setarea privind perioada are efect doar în cazul în care funcția utilizată ține cont de parametrii @data_ini și @data_fin.

Coloanele disponibile în cadrul raportului sunt importate ca și câmpuri calculate, utilizatorul având posibilitatea modificării tipului acestora și grupării după ele. În cazul în care se adaugă coloane noi în funcția customizată este necesară ștergerea raportului și importarea din nou a acestuia. Rapoartele de genul acesta vor fi valabile doar pentru societatea curentă (nu pot fi salvate ca rapoarte globale), funcțiile customizate fiind salvate pe fiecare societate în parte.

Pentru funcțiile INLINE se va realiza un select care să returneze structura prezentată, iar pentru funcțiile STANDARD se va realiza un INSERT INTO @ret_table, respectând aceeași structură.

Parametri funcție customizată

Parametru Tip Descriere
@al_tabel VARCHAR(6) ANLUNA, parte din cheia primară a înregistrării asociate
@pl_tabel SMALLINT PCT_LCR, parte din cheia primară a înregistrării asociate
@id_tabel NUMERIC(18,0) ID, parte din cheia primară a înregistrării asociate
@data_ini DATE Data de început a perioadei de căutare
@data_fin DATE Data de finalizare a perioadei de căutare

 

Exemplu de funcție customizată INLINE pentru generarea unui raport Comenzi clienți - Formular:

Pentru funcția STANDARD se va insera în tabela @ret_table, urmat de același select:

INSERT INTO @ret_table([antet], [Denumire produs], [Cantitate comandata], [Cantitate rezervata din stoc], [Comandat la furnizor], [Cantitate onorata], [% aprovizionat], [% onorat], [Gestiuni rezervate], [Agent de vanzare])

SELECT [antet] = @al_tabel + '_' + dbo.id2cod(@pl_tabel, @id_tabel),
       [Denumire produs] = l.denpr,
       [Cantitate comandata] = l.cantitate,
       [Cantitate rezervata din stoc] = l.stocrezerv,
       [Comandat la furnizor] = l.comandafrn,
       [Cantitate onorata] = l.onorat,
       [% aprovizionat] = IIF(l.comandafrn != 0, ROUND(l.onorat_nir / l.comandafrn * 100, 2), 0),
       [% onorat] = IIF(l.cantitate != 0, ROUND(l.onorat / l.cantitate * 100, 2), 0),
       [Gestiuni rezervare] = ISNULL(r.gestiunir, ''),
       [Agent de vanzare] = ISNULL(r.nume_pers, '')
    FROM comcl_detalii_produse(dbo.anluna(@data_fin), @pl_tabel, @id_tabel) l
    OUTER APPLY (SELECT STRING_AGG(cr.nume_gest, ', ') AS gestiunir, MAX(cr.nume_pers) AS nume_pers
                    FROM (SELECT DISTINCT s.nume_gest, ISNULL(TRIM(p.numefam) + ' ' + TRIM(p.prenume), '') AS nume_pers
                            FROM sel_stoc(dbo.anluna(@data_fin)) s
                            INNER JOIN comenziclienti c ON s.pl_cmd = c.pct_lcr AND s.id_cmd = c.id
                            LEFT JOIN personal p ON c.pl_pers = p.pct_lcr AND c.id_pers = p.id
                            WHERE s.pl_cmd = @pl_tabel AND id_cmd = @id_tabel AND cantitate > 0 
                                AND pl_pr = l.pl_pr AND id_pr = l.id_pr AND cod_pr = l.cod_pr AND (l.nr_lot = '' OR nr_lot = l.nr_lot)) cr) r

  •     Interogare date prin Nexus API
  • Raport Nexus ERP