Come posso eseguire l'esecuzione del codice finché l'utente non seleziona il primo set di dati da filtrare?Ho una finestra per richiedere all'utente di filtrare in base ai numeri di modello che vorrebbero scegliere, il problema è che penso che questa finestra venga sovrascritta e causi un errore quando viene eseguita completamente, quindi mi piacerebbe per prima cosa fermarsi, visualizzare la finestra e attendere che l'utente inserisca le proprie scelte. Ecco lo script della finestra:
//*** Create a window to prompt user to filter for Model numbers they would like to use
prods = Associative Array( Column( dt2, "Product CFN" ) << getValues ) << getKeys;
nw1 = New Window( "2014 Product Filter", lb1 = List Box( prods ), Button Box( "OK", OKscript2014 ) );
OKscript2014 = Expr(
SelectedProds = lb1 << getSelected;
selectedRows = [];
For( p = 1, p <= N Items( SelectedProds ), p++,
selectedRows = V Concat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p] ) )
);
dt5 = dt2 << Subset( Rows( selectedRows ), LinkToOriginalDataTable( 0 ) );
Wait( 0 );
dt5 << Save( dir || "\PrimaryRFR_ProductFiltered_2014.jmp" );
);
Ri: Come posso eseguire l'esecuzione del codice fino a quando l'utente seleziona il primo set di dati da filtrare?Crea la finestra modale - che interrompe tutta l'esecuzione del codice fino alla chiusura della finestra. Dovrai inoltre spostare la definizione dello script nel pulsante nella finestra sopra la finestra stessa. Esempio:
prods = Associative Array( Column( dt2, "Product CFN" ) << getValues ) << getKeys;
OKscript2014 = Expr(
SelectedProds = lb1 << getSelected;
selectedRows = [];
For( p = 1, p <= N Items( SelectedProds ), p++,
selectedRows = V Concat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p] ) )
);
dt5 = dt2 << Subset( Rows( selectedRows ), LinkToOriginalDataTable( 0 ) );
Wait( 0 );
dt5 << Save( dir || "\PrimaryRFR_ProductFiltered_2014.jmp" );
);
nw1 = New Window( "2014 Product Filter", <<MODAL></MODAL>
Ri: Come posso eseguire l'esecuzione del codice fino a quando l'utente seleziona il primo set di dati da filtrare?Grazie! C'è anche un modo per rendere questa finestra frontale e centrata all'utente? In modo da non vederlo sovrascritto da un'altra tabella di dati?
Cordiali saluti,
ZachRi: Come posso eseguire l'esecuzione del codice fino a quando l'utente seleziona il primo set di dati da filtrare?Una finestra modale dovrebbe essere sempre in primo piano. Se hai altre finestre che visualizzano una finestra modale, ti consiglio di chiamare il supporto tecnico. Una finestra non modale non sarà sempre in primo piano. È possibile inviare una finestra non modale << portare la finestra al messaggio principale.