Demonstration of Form Datasource Field Event or Data Event “onValidating”.Validating field values in form level.
Demonstration of Form Datasource Field Event or Data Event “onValidating”.Validating field values in form level.
Sample Code
1.Create a new class.
2.Copy “onValidating” event from Form Datasource field & paste the same into the class.
[FormDataFieldEventHandler(formDataFieldStr(SalesTable, SalesLine, SalesPrice), FormDataFieldEventType::Validating)]
public static void SalesPrice_OnValidating(FormDataObject sender, FormDataFieldEventArgs e)
{
var args = e as FormDataFieldCancelEventArgs;
FormRun formRun = sender.datasource().formRun();
boolean ret;
SalesTable salesTable = formRun.dataSource(formdatasourcestr(SalesTable, SalesTable)).cursor();
SalesLine salesLine = formRun.dataSource(formdatasourcestr(SalesTable, SalesLine)).cursor();
formRun = sender.datasource().formRun();
if (CustTable::find(salesTable.CustAccount).AcxOverrideSalesPrice == NoYes::Yes && salesLine.SalesQty > 0)
{
ret = checkFailed('Override Sales Price Is True On Customer Card.');
args.cancel(true);
}
}
-------------------------------------------------
/// <summary>
/// This class return whether vendor is having records.
/// </summary>
class KGSATLSVendaccountEventHandler
{
/// <summary>
/// Vendor return an error if vendoronhold status = All/Purchagreement
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormDataFieldEventHandler(formDataFieldStr(PurchAgreementCreate, PurchAgreementHeader, VendAccount), FormDataFieldEventType::Validating)]
public static void VendAccount_OnValidating(FormDataObject sender, FormDataFieldEventArgs e)
{
var args = e as FormDataFieldCancelEventArgs;
VendTable vendTable;
boolean ret;
FormRun formRun = sender.datasource().formRun();
PurchAgreementHeader purchAgreementHeader = formRun.dataSource(formdatasourcestr(PurchAgreementCreate, PurchAgreementHeader)).cursor();
select firstonly vendTable
where vendTable.AccountNum == purchAgreementHeader.VendAccount
&& (vendTable.Blocked == CustVendorBlocked::All
|| vendTable.Blocked == CustVendorBlocked::PurchAgreement);
if(vendTable.RecId)
{
ret = checkFailed(strFmt('@KGSATLS:KGSATLSVendoronholderror'));
args.cancel(true);
}
}
}
Sample Code
1.Create a new class.
2.Copy “onValidating” event from Form Datasource field & paste the same into the class.
[FormDataFieldEventHandler(formDataFieldStr(SalesTable, SalesLine, SalesPrice), FormDataFieldEventType::Validating)]
public static void SalesPrice_OnValidating(FormDataObject sender, FormDataFieldEventArgs e)
{
var args = e as FormDataFieldCancelEventArgs;
FormRun formRun = sender.datasource().formRun();
boolean ret;
SalesTable salesTable = formRun.dataSource(formdatasourcestr(SalesTable, SalesTable)).cursor();
SalesLine salesLine = formRun.dataSource(formdatasourcestr(SalesTable, SalesLine)).cursor();
formRun = sender.datasource().formRun();
if (CustTable::find(salesTable.CustAccount).AcxOverrideSalesPrice == NoYes::Yes && salesLine.SalesQty > 0)
{
ret = checkFailed('Override Sales Price Is True On Customer Card.');
args.cancel(true);
}
}
-------------------------------------------------
/// <summary>
/// This class return whether vendor is having records.
/// </summary>
class KGSATLSVendaccountEventHandler
{
/// <summary>
/// Vendor return an error if vendoronhold status = All/Purchagreement
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormDataFieldEventHandler(formDataFieldStr(PurchAgreementCreate, PurchAgreementHeader, VendAccount), FormDataFieldEventType::Validating)]
public static void VendAccount_OnValidating(FormDataObject sender, FormDataFieldEventArgs e)
{
var args = e as FormDataFieldCancelEventArgs;
VendTable vendTable;
boolean ret;
FormRun formRun = sender.datasource().formRun();
PurchAgreementHeader purchAgreementHeader = formRun.dataSource(formdatasourcestr(PurchAgreementCreate, PurchAgreementHeader)).cursor();
select firstonly vendTable
where vendTable.AccountNum == purchAgreementHeader.VendAccount
&& (vendTable.Blocked == CustVendorBlocked::All
|| vendTable.Blocked == CustVendorBlocked::PurchAgreement);
if(vendTable.RecId)
{
ret = checkFailed(strFmt('@KGSATLS:KGSATLSVendoronholderror'));
args.cancel(true);
}
}
}
Comments
Post a Comment