Here are quick examples of the most important event methods on a table,
class Dpk_VendTableEventHandlerClass | |
{ | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::InitializedRecord)] | |
public static void VendTable_onInitializedRecord(Common sender, DataEventArgs e) | |
{ | |
VendTable vendTable = sender as VendTable; | |
vendTable.VendGroup = "VG001"; //Change this value | |
//Add business logic | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::Inserted)] | |
public static void VendTable_onInserted(Common sender, DataEventArgs e) | |
{ | |
VendTable vendTable = sender as VendTable; | |
if(!vendTable.YourAccountNum) | |
{ | |
//Add business logic | |
vendTable.YourAccountNum = "This is event handler example"; | |
} | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::Deleted)] | |
public static void VendTable_onDeleted(Common sender, DataEventArgs e) | |
{ | |
VendTable vendTable = sender as VendTable; | |
//Add business logic | |
if (box::yesNo(strFmt('The selected vendor with Rating %1 will be deleted, are you sure ?', vendTable.CreditRating), dialogButton::Yes, 'Confirmation') == dialogButton::Yes) | |
{ | |
Info("Operation successfull"); | |
} | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::ValidatingWrite)] | |
public static void VendTable_onValidatingWrite(Common sender, DataEventArgs e) | |
{ | |
VendTable vendTable = sender as VendTable; | |
//Add business logic | |
if((vendTable.CreditMax && !vendTable.CreditRating) | |
|| (!vendTable.CreditMax && vendTable.CreditRating)) | |
{ | |
warning("Credit rating must filled for credit limit"); | |
} | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::ModifiedField)] | |
public static void VendTable_onModifiedField(Common sender, DataEventArgs e) | |
{ | |
ModifyFieldEventArgs event = e as ModifyFieldEventArgs; | |
VendTable vendTable = sender as VendTable; | |
FieldId fieldId = event.parmFieldId(); | |
switch(fieldId) | |
{ | |
//Add business logic | |
case fieldNum(VendTable, PaymMode): | |
Info("Business logic for PaymMode"); | |
break; | |
default: | |
break; | |
} | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
[DataEventHandler(tableStr(VendTable), DataEventType::ValidatingField)] | |
public static void VendTable_onValidatingField(Common sender, DataEventArgs e) | |
{ | |
VendTable vendTable = sender as VendTable; | |
ValidateFieldEventArgs validateFieldEventArgs = e as ValidateFieldEventArgs ; | |
boolean ret = validateFieldEventArgs.parmValidateResult(); | |
if(ret) | |
{ | |
switch(validateFieldEventArgs.parmFieldId()) | |
{ | |
//Add business logic | |
case fieldNum(VendTable, CreditMax): | |
if(vendTable.CreditRating == "Amber" && vendTable.CreditMax > 10000) | |
{ | |
vendTable.CreditMax = 0; | |
Error("Credit can not exceed more than 10K for Amber rating"); | |
ret = false; | |
} | |
break; | |
} | |
} | |
validateFieldEventArgs.parmValidateResult(ret); | |
} | |
} |
No comments:
Post a Comment