In questo articolo descriviamo le funzionalità di upload di un file, ma stavolta lo vedremo in mobile. E’ infatti molto semplice realizzare una scheda che permetta di caricare file, in particolare fotografie scattate al volo, in una cartella, utilizzando il cellulare.

Prima di proseguire la lettura di questo post vi invito a leggere, se non lo avete già fatto, il primo articolo riguardante questo argomento che spiega, tra le altra cosa, la corretta configurazione di Sme.UP Provider, che è un prerequisito per il funzionmento:

http://blog.smeup.com/gestione-file/

Come caricare i file tramite l’app di Sme.UP

Utilizziamo lo showcase di Web.UP dalla app o dal browser del telefonino, collagandoci a webuptest.smeup.com. Apriamo il menu in alto a destra (rappresentato dai tre pallini disposti verticalmente) selezionando “Gestione field”, ora ci apparirà una scheda con svariate voci e possibilità per uploadare i nostri file.

Per esempio proviamo a caricare un’immagine. Nel menu che ci appare andiamo a selezionare la voce “immagine”,  e ci si presenterà una scheda in cui vedremo tutte le immagini già caricate. Si tratta di un esempio di visualizzazione del contenuto di una cartelle in modalità preview.

Ma ora guardiamo la cosa più interessante, come caricare le nostre immagini! In alto abbiamo un bottone con scritto “scegli file” in cui possiamo andare a selezionare l’immagine da caricare.

Il telefono ci proporrà di fare una foto, di cariarne una dalla galleria oppure di caricare altri file (questo dipende molto dal sistemo operativo dello spartphone).

Una volta selezionato, premere sul bottone “upload”. Ora avremmo la nostra immagine disponibile nell’elenco.

Filtri di controllo su file da caricare

Il componente che si occupa dell’upload di file è il componente Field, in questo caso di tipo “File Upload”.

::G.SUB.FLD 

::G.SET.FLD Type="Fup"

Questo componente ha diverse configurazioni, tutte esemplificate nello showcase. Ci permette, ad esempio, di creare un filtro sulle dimensione del file da caricare oppure l’estensione che deve avere per essere caricato. Ad esempio possiamo impostare come filtro che che il file che può essere caricato non può superare la grandezza di 10 Megabite e l’unica estensione possibile sia il .jpg.

Possibilità di inserimento barcode e immagini

Un’interessante esempio di utilizzo della funzione di caricamento immagini è quello di sfruttare il componente di lettura di barcode.

Faccio un esempio per capire la funzionalità di questo componente: un operatore nota che la sua macchina ha subito un guasto e scopre che il problema è la rottura di un pezzo meccanico. Ipotizzando che a bordo macchina sia stato apposto un barcode con il codice dalla stessa, l’operatore può usare la funzionalità bar-code per identificare la macchina ed allegare una foto del componente rotto.

Se per l’oggetto macchina è stata definita una cartella tramite la K09 (cercate in questo blog per trovare l’articolo relativo alle cartelle di un oggetti), basterà sparare il barcode che conterra il codice e uploadare l’immagine nella cartella dell’oggetto.

Il seguente video esemplifica la funzionalità:

Nello Showcase abbiamo realizzato una scheda di esempio, raggiungibile nel menu del componente FLD, alla voce “barCode and file upload”. 

                                                     

::G.SEZ Pos(1)
 ::G.SUB.FLD Tit="Selezione barcode"
 ::G.SET.FLD Type="Bcd"
 ::G.DIN Where="LABEL,FUP" When="Change" Sch.Var="BARCODE([K1])"
 ::D.OGG T() P() K()

::G.SEZ Pos(2)
 ::G.SUB.SCH Tit="*NONE" Menu="Vis" Id="FUP" Load="D"
 ::D.SCH Nam(FUP) P(BCD([BARCODE]))

::I.SCH Nam(FUP)
::G.SEZ Pos(1)
 ::G.SUB.FLD Tit="Caricamento files" Id="FILEUPLOAD"
 ::G.SET.FLD Type="Fup" FilePath="\\SRV005\smeup\SmeOgg\TAB£A\WE\BARCODE\"
 Ext="FupAut(true)" Load="D"
 ::G.DIN Where="MAT" When="Change" Sch.Var="PATH(\\SRV005\smeup\SmeOgg\TAB£A\WE\BARCODE\)"
 ::D.OGG T() P() K()

::G.SEZ Pos(2)
 ::G.SUB.MAT Tit="Files caricati" Id="MAT" Load="D"
 ::G.SET.MAT Columns="DELETE|DOWNLOAD|VIEW|PRW|C02|C06|C05" Formulas="DELETE;;T(Delete)B(Yes)E(F(INT;JA_00_05;DEL) 1(J1;PATHFILE;[C02]) NOTIFY(MAT));256;5;J4BTN|DOWNLOAD;;T()I(VO;COD_VER;000023)E(F(OPN;PATH;) 1(J1;[C04];[C02]));256;5;J4BTN|VIEW;;T(Visualizza)B(Yes)E(F(EXD;*SCO;) 1(J1;[C04];[C02]) 4(;;VIS));256;5;J4BTN"
 ::G.DIN When="Click" Exec="F(EXD;*SCO;) 1(J1;PATHDIR;[C02]) 2(MB;SCP_SCH;&OG.K2) 4(;;DIRTMPL)" Enabled="{[C04] EQ PATHDIR}"
 ::G.DIN When="Click" Exec="F(EXD;*SCO;) 1(J1;PATHFILE;[C02]) 4(;;VIS)" Enabled="{[C04] EQ PATHFILE}"
 ::D.FUN.STD F(EXB;JA_00_05;LIS.ALL) 1(J1;PATHDIR;[PATH]) P(DET(SI) ShwDi(1) Filt(*) SYS(SI) RIS(*NO) )
::I.SCH.END