E' stata creata la Pop-Up WPOP0038 per la selezione parametrica del codice articolo da usare nelle stampe e nelle elaborazioni
PASSI DA ESEGUIRE
1) Wam che chiama la Pop ( codice )
a) Inserire nella WebMap i campi £R_STRLST e £R_STRSTG in Hidden.
WEB_MAP FOR(*BOTH) FIELDS(£xxxxxx £yyyyyy £zzzzzz (£R_STRLST *hidden) (£R_STRSTG *hidden))
b) Nella routine uExecute inizializzare i due campi a *null
£R_STRLST := *null
£R_STRSTG := *null
2) Wam che chiama la Pop ( Xsl)
a) Trascinare i campi £R_STRLST £R_STRSTG nella DIV per i campi nascosti
b) Inserire nell'xsl la weblet "Pop-up Ricerca" ed assegnare le proprietà come nell'immagine.
c) Appena sotto la achiusura del tag DIV inserire questo pezzo di codice Javascript
<script language="javascript">
<xsl:text disable-output-escaping="yes">//<![CDATA[</xsl:text>
function POPSCAMBIO()
{
curForm = document.LANSA;
curForm.__CampiEXC = new Array();
curForm.__CampiEXC[0] = {src: "R_STRSTG", dest: "R_STRSTG"};
curForm.__CampiEXC[1] = {src: "R_STRLST", dest: "R_STRLST"};
}
<xsl:text disable-output-escaping="yes">//]]></xsl:text>
</script>
d) Impostare la proprietà PRE_SHOW_JS del prompter in questo modo
<xsl:with-param name="pre_show_js">
<xsl:text>POPSCAMBIO();</xsl:text>
<xsl:text>InsertHidden(document.LANSA,'R_STRSTG',document.LANSA.R_STRSTG.value);</xsl:text>
<xsl:text>InsertHidden(document.LANSA,'R_STRLST',document.LANSA.R_STRLST.value);</xsl:text>
<xsl:text>InsertHidden(document.LANSA,'R_FLTOT','S');</xsl:text>
</xsl:with-param>
Il terzo parametro (R_FLTOT) è opzionale, serve per visualizzare o meno la colonna "Totalizzazione" che dovrebbe essere usata solo per le stampe.
Il campo deve valere 'S' o 'N'
3) Recupero/Exchange della lista
Nella routine Salva/Conferma/Stampa solitamente viene lanciato un programma in batch al quale si passa il nome della lista tramite exchange.
E' sufficiente assegnare alla variabile del nome-lista il campo £R_STRLST (che ci è stato ripassato da WPOP0038) e poi azzerarlo
£NOMLISTP := £R_STRLST
EXCHANGE(£NOMLISTP )
SUBMIT PROCESS(XXXXXXX) FUNCTION(YYYYYYY) JOBD(*USRPRF) JOBQ(£R_USRJOBQ) OUTQ(*CURRENT)
£R_STRLST := *null
Nel caso di programmi interattivi occorre definire la lista £LISCODW e fare una RESTORE_SAVED_LIST
DEF_LIST NAME(£LISCODW) FIELDS(£CDDSCD £DACAMPO £ACAMPO £FLAGTOT £CDINIZ £CDFINE) TYPE(*WORKING)
USE BUILTIN(RESTORE_SAVED_LIST) WITH_ARGS(£R_STRLST) TO_GET(£LISCODW)
USE BUILTIN(DELETE_SAVED_LIST) WITH_ARGS(£R_STRLST)
£R_STRLST := *null