In questo post vediamo come creare un "wizard". Il nostro wizard avrà due step. Il primo dove selezioniamo da 1 a n Clienti e il secondo dove selezioniamo da 1 a n SalesOrder. Il tasto "finish" andrà semplicemente a stampare i valori selezionati.
Per prima cosa creiamo una form usando il pattern "Wizard" che chiameremo "LILTestWizard".la nostra form avrà due datasource (CustTable e SalesTable) e sarà fatta così:
la form dovrà contenere i seguenti metodi:
public class LILTestWizardForm extends FormRun
{
LILTestWizardClassForm sysWizard;
void init()
{
super();
if (element.args().caller())
{
sysWizard = element.args().caller();
}
}
void run()
{
super();
}
SysWizard wizard()
{
return sysWizard;
}
}
class LILTestWizardClassForm extends SysWizard
{
FormDataSource CustTableDS;
FormDataSource SalesTableDS;
CustTable custTable;
SalesTable salesTable;
MultiSelectionHelper selectionHelperCustTable,
selectionHelperSalesTable;
FormName formname()
{
return formstr(LILTestWizardForm);
}
public void setupNavigation()
{
}
public boolean validate()
{
return true;
}
public static str description()
{
return "Customers and sales orders selection";
}
public static void main(Args args)
{
LILTestWizardClassForm wizard = new LILTestWizardClassForm();
if (wizard.prompt())
{
wizard.run();
}
}
public void finish()
{
selectionHelperCustTable = MultiSelectionHelper::createFromCaller(this.formRun());
selectionHelperSalesTable = MultiSelectionHelper::createFromCaller(this.formRun());
CustTableDS = this.formRun().dataSource(tableStr(CustTable));
SalesTableDS = this.formRun().dataSource(tableStr(SalesTable));
selectionHelperCustTable.parmDatasource(CustTableDS);
selectionHelperSalesTable.parmDatasource(SalesTableDS);
custTable = selectionHelperCustTable.getFirst();
salesTable = selectionHelperSalesTable.getFirst();
while(custTable)
{
info(custTable.AccountNum);
custTable = selectionHelperCustTable.getNext();
}
while(salesTable)
{
info(salesTable.SalesId);
salesTable = selectionHelperSalesTable.getNext();
}
super();
}
}
A questo punto dobbiamo creare un menù item di tipo action che punta a LILTestWizardClassForm e metterlo a menù.Ecco il risultato:
Ottimo ! : )
RispondiElimina