Creare un terminale per la lettura dei codici a barre

Attraverso le opzioni presenti sulle tabelle, un telefono e un lettore a codice a barre è possibile creare un completo e funzionante terminale per la lettura dei codici a barre da utilizzare ad esempio, all'interno dei magazzini per creare rapidamente i documenti di trasporto con Nios4. Hardware Per creare fisicamente il terminale utilizzeremo un normale telefono Android e un lettore a codice a barre bluetooth Eyoyo . Questo lettore è studiato espressamente per essere collegato a un telefono e attraverso il bluetooth simulare l'input della tastiera.   Impostazione della tabella Andiamo sulle opzioni delle tabelle . In questo caso attiveremo la lettura dei codici a barre della tabella che gestisce le righe di dettaglio di un ddt di acquisto. Per configurare correttamente la lettura occorerrà impostare tre parametri. Il primo è il campo sottotabella da utilizzare. Questo viene utilizzato per poter selezionare l'articolo da inserire sulla riga del ddt. In questo caso il campo

Creare una notifica dagli script

 

Dalle ultime versione del sistema è possibile creare e programmare delle notifiche direttamente via script. Queste notifiche non sono collegate direttamente alle schede dei dati ma direttamente al programma.

Come tutte le notifiche di Nios4, se vengono create su un database locale queste saranno attiviabili solo se il programma in quel momento è attivo. In caso il database sia cloud saranno visualizzate come notifiche sui telefoni senza che il programma deve necessariamente essere attivo.

Creazione dell'oggetto notification

notification     = program.newnotification()

notification.adduser("help@d-one.info")

notification.title = "notifica"

notification.description = "notifica di prova"

Come prima cosa creaiamo l'oggetto notification dal programma. Creato l'oggetto aggiungiamo l'utente o gli utenti che dovranno visualizzare questa notifica. Gli utenti dovranno necessariamente essere quelli che possono condividere il database attuale.

Inseriamo il titolo e la descrizione che visualizzeremo nella notifica.

Tipologia della notifica

notification.actionallert()

Attualmente le notifiche sono di due tipologia. La prima è la visualizzazione di un allert semplice impostabile dando il comando actionallert. La seconda è l'abertura di una scheda dati. In questo caso oltre al comando dovremo dare la tabella e il gguid per identificare in modo univoco il record.

notification.actionopendataview(*nometabella*,*gguidrecord*)

 Impostiamo la data della notifica

notification.datereminder = dataview.getvalue("data_scadenza")

notification.typebefore = 1

notification.save()

A questo punto possiamo impostare la data di visualizzazione della notifica.

La proprietà datareminder imposta la data effettiva della visualizzazione.

La proprietà typebefore imposta di quanto dovrà essere l'anticipo di visualizzazione rispetto al tempo impostato. In questo caso il valore 1 indica 5 minuti prima.

Come ultima cosa procederemo al salvataggio. Salvata la notifica questa sarà attiva. Sui database cloud occorrerà sincronizzare i dati per distribuirla su tutti i propri dispositivi.

A questo punto sarebbe buona norma recuperare il gguid della notifica per poterla successivamente gestire. Ad esempio per cancellarla dovremmo agire direttamente sul database con una chiamata sql. Per modificare una notifica già esistente dobbiamo creare l'oggetto e impostare il gguid salvato precedentemente. Occorrerà comunque reimpostare tutti i valori di questa, con l'unica differenza che in salvataggio non verrà creata una nuova notifica ma verrà aggiornata quella con lo stesso gguid.

gnotifica = notification.gguid

database.deletedatarowsql("SELECT * FROM so_notifications WHERE gguid='" .. gnotifica .. "'")

In questo esempio procediamo a eliminare la notifica precedentemente creata.

Esempi di impostazione della data da applicare alla notifica

I passaggi da eseguire per la costruzione delle date principalmente servono per creare dei valori compatibili con il sistema degli script che accettano la data solo in formato timestamp.

datainiziale = dataview.getvalue("data_ordine")
datafinale   = utility.dateadddays(datainiziale,30)

giornofinale = utility.dateday(datafinale)
mesefinale   = utility.datemonth(datafinale)

--salto il natale
if giornofinale == 25 and mesefinale == 12 then
   datafinale = utility.dateadddays(datafinale,10)
end

--controllo che non sia domenica
if utility.datedayofweek(datafinale) == 0 then
   datafinale = utility.dateadddays(datafinale,1)
end

notification.datereminder = datafinale

In questo esempio calcoliamo il valore dalla data di creazione dell'ordine. Preso il valore aggiungiamo 30 giorni e vediamo dove cade la nuova data. Controlliamo poi che non cada a natale e che non sia domenica. Naturalmente si possono inserire anche altri controlli sul valore prima di impostare la data della notifica.

datafinale = utility.createdate(2022,7,18,10,30,0)
In questo caso la data viene creata direttamente dai valori inseriti con il comando createdate partendo dall'anno fino ad arrivare ai secondi.






Commenti