cli:franke:2802-ull_ikea_con_nicelab

This is an old revision of the document!


2802 - ULL IKEA con NiceLabel

AGENTPRINTMSI

Richieste che effettua ad AGENTSTAMPA:

  1) recprint -> ottiene il rec da stampare e lo salva sul database
  2) printRecFromId -> ottiene il rec da stampare tramite query a etichetw
  3) stampamanu -> effettua la stampa

AGENTSTAMPA (/code/cpp/module/service/palctrl/stampa/agentstampa.cpp)

L'agente si occupa di eseguire la stampa di etichette IKEA. Puo' stampare in due modalita':

  1. stampa automatica: richiesta dall'agente java
  2. stampa manuale: richiesta dall'interfaccia

Il p.to 1) e 2) sono eseguiti attraverso la tell, rispettivamente:

  1. request=stampaauto, p1=rec(codlotp), ritorna true se la stampa e' avvenuta correttamente
  2. request=stampamanu, p1=rec(codart,peso,npz,yyww,codlotp,codsup,barcode,npzfmt), ove codart=codice articolo Ikea, peso=peso del bancale, npz=numero pezzi, yyww=anno/settimana, codlotp=codice lotto bancale; il nome del rec (rec.name=path_file) e' il path completo del file del layout da stampare; nel nume va indicato il numero di etichette da stampare

Il rec da utilizzare per la stampa manuale puo' essere richiesto all'agente stesso attraverso la ask con:

  1. request=recprint, p1=rec(codart,peso,npz,codlotp,codsup), p2=path_del_file l'agente restituisce il rec con tutti i dati compilati
 if(smsg->request=="recprint"){
		rv = recprint(IREC_GETVALUE(p1, "codart"), IREC_GETVALUE(p1, "codsup"), atof(IREC_GETVALUE(p1, "pesotot")), atof(IREC_GETVALUE(p1, "peso")), atoi(IREC_GETVALUE(p1, "npz")), IREC_GETVALUE(p1, "codlotp"), p2->value(), atoi(IREC_GETVALUE(p1, "xinterfa")), atoi(IREC_GETVALUE(p1, "yinterfa")), atof(IREC_GETVALUE(p1, "stackcap")));
	}

P1(REC): codart, codsup, pesotot, peso, npz, codlotp, xinterfa, yinterfa, stackcap

P2 (String): layout

  1. Ottiene il numeratore attraverso una getnume della tabella 'ikeapiano' sul campo 'codice' per ottenere un codice per il PIANO del pallet
  2. Prepara un REC con i seguenti campi:
    • 0, "codart"
    • 1, "peso"
    • 2, "npzfmt"
    • 3, "yyww"
    • 4, "codlotp"
    • 5, "codsup"
    • 6, "barcode"
    • 7, "npz"
    • 8, "idetic"
    • 9, "layout"
    • 10, "tm"
    • 11, "pesotot"
    • 12, "xinterfa"
    • 13, "yinterfa"
    • 14, "stackcap"
  3. Popola il REC con i valori ottenuti da parametro. Aggiunge 'npzfmt' con il npz formattato a 3 cifre e 'yyww' basata sulla data odierna
  4. Elabora il codice del piano nel seguente modo:
        int totlen=17;
        int bcforlen=m_bcforinfo->size();
        char fmt[51];
        sprintf(fmt, "%%0%dd", totlen-bcforlen);
    	sprintf(copas, fmt, copa); 
  5. "identic" → numeratore ottenuto nel punto 1
  6. Prepara il codice a barre in questo modo:
        sprintf(s, "%s%s", m_bcforinfo->value(), copas);
     
        dove 'm_bcforinfo' -> dato fisso del fornitore per il codice a barre EAN128 
  7. !!! FA UNA DOWNLOAD DEL REC SUL DATABASE !!!
  8. Imposta il nome del REC con il valore del 'layout'
  9. Ritorna il REC creato

f(smsg→request=="recprintfromid"){

	rv = recprintfromid(atoi(IREC_GETVALUE(p1, "idetic")), p2->value());
  }

P1(REC): identic P2 (String): layout

  1. Mi estraggo dal database una riga di etichetw tramite il codice di idetic ricevuto nel p1
  2. Imposta il nome del REC con il layout ricevuto nel p2
  3. Ritorna il REC creato
  • cli/franke/2802-ull_ikea_con_nicelab.1721032251.txt.gz
  • Last modified: 2024/07/15 10:30
  • by r.fioretti