I added a menu item on SalesLine grid in 'both salesTable' form and 'ProjSalesItemReq' form. Where these two forms have "SalesTable" and "SalesLine" as datasources
I want this menu item to be enabled only if SalesTable.SalesStatus = backOrder
is the only way to do it on active method for for salesLine datasource on both forms? just trying to see if there is another way than what i did, which will save calling the logic each time on active method for salesLine even though i'm checking SalesTable status
[ExtensionOf(formDataSourceStr(SalesTable, SalesLine))]
final class SalesTableSalesLineFormDS_Extension
{
public int active()
{
int ret = next active();
if(ret)
{
FormDataSource salesTableDataSource = element.dataSource(formDataSourceStr(SalesTable, SalesTable)) as FormDataSource;
SalesTable salesTable = salesTableDataSource.cursor();
if(salesTableDataSource && salesTable && salesTable.SalesStatus == SalesStatus::Backorder)
{
element.design().controlName(formControlStr(SalesTable,XMenu)).enabled(true);
}
else
{
element.design().controlName(formControlStr(SalesTable,XMenu)).enabled(false);
}
}
return ret;
}
}
[ExtensionOf(formDataSourceStr(ProjSalesItemReq, SalesLine))]
final class ProjSalesItemReqFormDS_Extension
{
public int active()
{
int ret = next active();
if(ret)
{
FormDataSource salesTableDataSource = element.dataSource(formDataSourceStr(ProjSalesItemReq, SalesTable)) as FormDataSource;
SalesTable salesTable = salesTableDataSource.cursor();
if(salesTableDataSource && salesTable && salesTable.SalesStatus == SalesStatus::Backorder)
{
element.design().controlName(formControlStr(ProjSalesItemReq,XMenu)).enabled(true);
}
else
{
element.design().controlName(formControlStr(ProjSalesItemReq,XMenu)).enabled(false);
}
}
return ret;
}
}