Per l'esigenza di permettere all'utente di inserire tanti barcode in un'unica videata d'input su web, ho utilizzato la fast part Memo (FP_RMEMO).
Con tale fastpart è possibile avere un tasto di default (ad esempio CONFERMA) senza che tale tasto venga attivato alla lettura del barcode (ciò avviene perché il lettore barcode restituisce il codice numerico letto più il codice di INVIO, cioè CR).
Inoltre si può usare la fast part come campo Note, in modo che l'utente possa scrivere andando a capo con l'invio senza che, come detto, la wam reagisca attivando un tasto di default.
Alcune definizioni:
DEFINE FIELD(£Curr_Item) REFFLD(£STD_NUM)
DEFINE FIELD(£Totl_Item) REFFLD(£STD_NUM)
DEFINE FIELD(£Line_Text) TYPE(*CHAR) LENGTH(030)
Per la formattazione (nell'evento uExecute):
* FastPart Memo
£FastPart.UsingName := FP_RMEMO *(nome della fastpart)
£FastPart.UmaxLineLength := 30 *(lunghezza della riga, in questo caso 30 caratteri)
£FastPart.UVisibleLines := 30 *(linee visibili a schermo)
£FastPart.uItemCount := 0 *(linee correnti, impostare a 0 per svuotare la memo box).
Per leggere il contenuto:
£FastPart.UsingName := FP_RMEMO
* Conteggio item della memo box
£Totl_Item := £FastPart.uItemCount
* Scorro gli item della memo box
BEGIN_LOOP USING(£Curr_Item) TO(£Totl_Item)
* Lettura riga
SET COM(£FastPart) USINGINSTANCE(£Curr_Item)
£Line_Text := £FastPart.uLine
... elaborazione ...
END_LOOP
Spero vi possa essere utile per altre implementazioni.
Per ulteriori informazioni vedere anche la WAM DM_DET4 dove viene mostrato come leggere il contenuto della fp memo riuscendo a "capire" se l'utente è andato a capo con INVIO oppure no (così da poter ricostruire la stringa intera).