Reputation: 197
In my first event handler, I will collect all the fields I need from the SalesTable form. In this form, I need to get these fields from the SalesLine. Below is my code:
[FormEventHandler(formStr(SalesTable), FormEventType::PostRun)]
public static void SalesTable_OnPostRun(xFormRun sender, FormEventArgs e)
{
SalesLine salesLine;
SalesTable salesTable = sender.dataSource(formDataSourceStr(SalesTable,salesTable)).cursor();
select ItemId, SalesId, ShippingDateConfirmed from salesLine
where salesLine.SalesId == SalesTable.SalesId;
}
After that, this next event handler is the OnClick event of a button found in another form..
[FormControlEventHandler(formControlStr(SalesAvailableDlvDates, TransferToConfirmedButton), FormControlEventType::Clicked)]
public static void TransferToConfirmedButton_OnClicked(FormControl sender, FormControlEventArgs e)
{
//some code here
}
In this event handler of a different form which is SalesAvailableDlvDates, here I need the fields from my SalesLine table which I obtained from the SalesTable form. Because in here, this is the button needed to be triggered where this will place values into a newly created table.
Is there anyway I can pass the values from the SalesTable event handler to the SalesAvailableDlvDates event handler?
Because in SalesAvailableDlvDates, I COULD NOT obtain the SalesLine data. Is it possible to pass values from one event handler to another?
Upvotes: 0
Views: 2619
Reputation: 2281
In SalesAvailableDlvDates
form event handler you can obtain the form caller. Then if salesCalcAvailableDlvDates
is a SalesCalcAvailableDlvDates_SalesTable
or SalesCalcAvailableDlvDates_SalesLine
you can get data you needed from the corresponding parm
method.
[FormControlEventHandler(formControlStr(SalesAvailableDlvDates, TransferToConfirmedButton), FormControlEventType::Clicked)]
public static void TransferToConfirmedButton_OnClicked(FormControl sender, FormControlEventArgs e)
{
SalesTable salesTable;
SalesLine salesLine;
SalesCalcAvailableDlvDates salesCalcAvailableDlvDates;
SalesCalcAvailableDlvDates_SalesLine salesCalcAvailableDlvDates_SalesLine;
SalesCalcAvailableDlvDates_SalesTable salesCalcAvailableDlvDates_SalesTable;
FormRun formRun;
;
formRun = sender.formRun() as FormRun;
salesCalcAvailableDlvDates = formRun.args().caller();
switch (classIdGet(salesCalcAvailableDlvDates))
{
case classNum(SalesCalcAvailableDlvDates_SalesLine):
salesCalcAvailableDlvDates_SalesLine = salesCalcAvailableDlvDates as SalesCalcAvailableDlvDates_SalesLine;
salesLine = salesCalcAvailableDlvDates_SalesLine.parmSalesLine();
salesTable = salesLine.salesTable();
break;
case classNum(SalesCalcAvailableDlvDates_SalesTable):
salesCalcAvailableDlvDates_SalesTable = salesCalcAvailableDlvDates as salesCalcAvailableDlvDates_SalesTable;
salesTable = salesCalcAvailableDlvDates_SalesTable.parmSalesTable();
break;
default:
break;
}
}
Upvotes: 1