Text imprimantă etichete
Funcțiile customizate de tipul "Text imprimantă etichete" sunt de două tipuri: STANDARD și INLINE și sunt utilizate pentru configurarea și tipărirea etichetelor.
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ă.
Funcțiile customizate vor putea fi selectate în cadrul asistentului Tipărire coduri de bare, iar sursa script-ului va fi Funcții customizate.
Parametri funcție customizată
Parametru | Tip | Descriere |
---|---|---|
@nume_tabel | VARCHAR(128) | Denumirea tabelului înregistrării asociate (OPȚIONAL) |
@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 |
@id_imprimanta | NUMERIC(18,0) | Id-ul imprimantei de unde se va lista eticheta |
@paramsJSON | NVARCHAR(MAX) | Datele documentului în format JSON. Nu e obligatoriu să se folosească. Structura JSON-ului este următoarea: pl_pr - (SMALLINT) - Punctul de lucru al produsului id_pr - (NUMERIC(18,0)) - Id-ul intern al produsului tip_codbar - (TINYINT) - Tipul codului de bare, care poate avea următoarele valori: 0 = Fără, 1 = Cod nespecificat, 2 = Normal Code 39, 3 = Full ASCII Code 39, 4 = HIBC Code 39, 5 = CodaBar, 6 = Code 93, 7 = Code 128, 8 = UCC/EAN 128, 9 = Interleaved 2 of 5, 10 = PostNET, 11 = UPC-A, 12 = UPC-E, 13 = EAN/JAN-8, 14 = EAN/JAN-13, 15 = BookLand, 16 = MSI/Plessey, 17 = PDF-417, 18 = Aztec Cod, 19 = Data Matrix, 20 = MaxiCode, 21 = RSS-14, 22 = RSS-14 Stacked, 23 = RSS-14 Stacked Omnidirectional, 24 = RSS Limited tva_o - (NUMERIC(2,0)) - Procent TVA ieșire garantie - (SMALLINT) - Garanție folosință bun, exprimată în numărul de luni nr_lot - (VARCHAR(50)) - Seria produsului den_sup - (VARCHAR(500)) - Denumirea suplimentară a produsului denpr - (NVARCHAR(231)) - Denumirea produsului, include și descrierea produsului denumire - (NVARCHAR(110)) - Denumirea produsului descriere - (NVARCHAR(120)) - Descrierea produsului dim - (VARCHAR(50)) - Dimensiunea produsului culoare - (VARCHAR(50)) - Culoarea produsului stas - (VARCHAR(50)) - S.T.A.S um - (CHAR(8)) - Unitatea de măsură a produsului unittarget - (NUMERIC(15,2)) - Unități de target norma_timp - (NUMERIC(5,2)) - Norma de timp, exprimată în ore și minute kcalorii - (NUMERIC(5,1)) - Numărul de kcalorii pe unitatea de produs proteine - (NUMERIC(5,1)) - Cantitatea de proteine, exprimată în grame pe unitatea de produs grasimi - (NUMERIC(5,1)) - Cantitatea de grăsimi în grame pe unitatea de produs carbohidrati - (NUMERIC(5,1)) - Cantitatea de carbohidrați în grame pe unitatea de produs fibre - (NUMERIC(5,1)) - Cantitatea de fibre în grame pe unitatea de produs locatie - (VARCHAR(10)) - Locația produsului val_pctfid - (NUMERIC(15,2)) - Valoarea punctelor de fidelitate status - (VARCHAR(50)) - Statusul produsului ambalare - (NUMERIC(15,3)) - Cantitatea de produs per unitate de ambalare nume_brand - (VARCHAR(200)) - Numele brandului nume_grupa - (VARCHAR(100)) - Numele grupei nume_clasa - (VARCHAR(30)) - Numele clasei nume_subcl - (VARCHAR(100)) - Numele subclasei greu_um - (NUMERIC(15,3)) - Greutatea articolului volum - (NUMERIC(15,3)) - Volumul articolului um2 - (CHAR(8) - Unitatea de măsură secundară cod_origine - (VARCHAR(100)) - Cod origine produs cod_ext - (VARCHAR(20)) - Codul de bare al produsului cod_selectie - (VARCHAR(50)) - Cod selecție produs puv - (MONEY) - Prețul de vânzare fără TVA al produsului puv_tva - (MONEY) - Prețul de vânzare cu TVA al produsului cantitate - (NUMERIC(15,3)) - Cantitatea produsului masa_bruta - (NUMERIC(15,3)) - Masa brută a produsului masa_neta - (NUMERIC(15,3)) - Masa netă a produsului spec_descriere - (NVARCHAR(MAX)) - Prezentarea produsului spec_instalare - (NVARCHAR(MAX)) - Scurtă descriere a modului de instalare spec_utilizare - (NVARCHAR(MAX)) - Scurtă descriere a modului de utilizare a produsului observatii - (VARCHAR(MAX)) - Observații puv_lista - (MONEY) - Prețul fără TVA din lista de preț puv_tva_lista - (MONEY)) - Prețul cu TVA din lista de preț data_modif_pret - (DATE) - Data modificării ultimului preț pr_disc_bonus - (NUMERIC(5,2)) - Procent discount bonus id_arhiva - (NUMERIC(18,0)) - Id-ul arhivei nr_comanda - (VARCHAR(20)) - Numărul comenzii data_livrare - (VARCHAR(10)) - Data livrării nume_cli - (NVARCHAR(200)) - Numele clientului nume_furn - (NVARCHAR(200)) - Numele furnizorului adresa - (VARCHAR(250)) - Adresa partenerului cod_postal - (VARCHAR(7)) - Codul poștal al adresei de livrare pr_tva_o - (NUMERIC(2,0)) - Procentul de TVA ieșire oferte_preturi - (VARCHAR(MAX)) - Lista ofertelor de preț utilizator - (VARCHAR(50)) - Utilizatorul care tipărește eticheta tara_origine - (VARCHAR(100)) - Țara în care a fost fabricat produsul cod_colet - (VARCHAR(MAX)) - Codul coletului den_tip_codbar - (VARCHAR(MAX)) - Denumirea tipului codului de bare data_exp - (VARCHAR(10)) - Data de expirare a produsului data_in - (VARCHAR(10)) - Data intrării produsului în stoc data_pif - (VARCHAR(10)) - Data punerii in funcțiune |
Structura returnată de funcția customizată
Structură | Tip | Descriere |
---|---|---|
id_imprimanta | NUMERIC(18,0) | Id-ul imprimantei de unde se va lista eticheta |
text_tiparit | NVARCHAR(MAX) | Textul ce va fi tipărit pe etichetă |
Exemplu de funcție customizată INLINE pentru tipărirea etichetelor:
Pentru funcția STANDARD se va insera în tabela @ret_table, urmat de același select:
INSERT INTO @ret_table(id_imprimanta, text_tiparit)
SELECT id_imprimanta = 545554,
text_tiparit = 'SIZE 56 mm,43 mm
CLS
GAP 3 mm,0
REFERENCE 0 ,0
SHIFT 0,0
DENSITY 8
SET CUTTER OFF
SET PEEL OFF
DIRECTION 1' + CHAR(13) + CHAR(10)
+ 'TEXT 100,20,"1",0,1,2,"' + TRIM(l.denpr) + '"' + CHAR(13) + CHAR(10)
+ IIF(l.cod_ext!= '', 'BARCODE 410,10,"39",61,1,0,2,2,"' + TRIM(l.cod_ext) + '"' + CHAR(13) + CHAR(10), '')
+ IIF(l.tip_produs = 'C',
(SELECT STRING_AGG('TEXT ' + CAST(500 + 40 * rowNo AS VARCHAR(10)) + ',100,"1",0,1,2,"' + TRIM(c.nume_clasa) + '"' + CHAR(13) + CHAR(10)
+ 'TEXT ' + CAST(500 + 40 * rowNo AS VARCHAR(10)) + ',300,"1",0,1,2,"' + TRIM(c.cod_ext) + '"' + CHAR(13) + CHAR(10)
+ 'TEXT ' + CAST(500 + 40 * rowNo AS VARCHAR(10)) + ',500,"1",0,1,2,"' + TRIM(c.denumire) + '"' + CHAR(13) + CHAR(10)
+ 'TEXT ' + CAST(500 + 40 * rowNo AS VARCHAR(10)) + ',700,"1",0,1,2,"' + TRIM(c.descriere) + '"' + CHAR(13) + CHAR(10)
+ 'TEXT ' + CAST(500 + 40 * rowNo AS VARCHAR(10)) + ',900,"1",0,1,2,"' + TRIM(STR(c.cantitate, 15, 3)) + '"', CHAR(13) + CHAR(10) )
FROM
(SELECT n.denumire, n.descriere, n.cod_ext, n.nume_clasa, c.cantitate, ROW_NUMBER() OVER(ORDER BY c.id) AS RowNo
FROM nomen3_comp c
INNER JOIN nomen3_view n ON c.pl_prcom = n.pct_lcr AND c.id_prcom = n.id
WHERE c.pl_pr = l.pl_pr AND c.id_pr = l.id_pr) c ) + CHAR(13) + CHAR(10),
'')
+ 'PRINT 1,1'
FROM linfactclienti_view l
WHERE l.anluna = @al_tabel AND l.pl_cli = @pl_tabel AND l.id_cli = @id_tabel