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);



}

}

}
 

 

Comments

Popular posts from this blog

Event handlers and post handlers in D365

Data entites method calling sequence in D365FO

How to Extend Sales Order Update Functionality to Custom Fields in D365 Finance and Operations