[ExtensionOf(formDataSourceStr(TrvExpenses,TrvExpTrans))]final class DTTrvExpenses_TrvExpTrans_Extension{ [Control(/Button/)] class DeleteExpenceLines { /// <summary> /// Remove the selected expenses from the expense report /// </summary> public void clicked() { // Invoke method to process expense line deletion. // This method should be invoked for deletion from both details view and grid view. // There is no special processing for deletion from grid view. this.MyMethodToDeleteLines(); super(); } }}
[FormControlEventHandler(formControlStr(FormName, ButtonName), FormControlEventType::Clicked)] public static void ButtonName_OnClicked(FormControl sender, FormControlEventArgs e) { FormButtonControl callerButton = sender as FormButtonControl; FormRun form = callerButton.formRun(); FormDataSource dataSourceName_ds= form.dataSource(formDataSourceStr(FormName, DataSourceName)) as FormDataSource; // datasource name where the records to be deleted.
//Multiselect helper class
TableName tableName;//records to delete from
MultiSelectiper helper = MultiSelectionHelonHelper::construct(); helper.parmDatasource(dataSourceName_ds); tableName= helper.getFirst(); while (tableName.RecId != 0) { tableName.doDelete(); custPaymModeTablelocal = helper.getNext(); }
}
Thanks,
Girish S.
public class TrvExpTrans extends common { public void doDelete() { if(!this.canExpenseLineBeDeletedWithApprovalStatus()) { return; } super(); } /// <summary> /// List of approval Status for which expense line can be deleted /// </summary> /// <returns> /// true if we can delete , false if not allowed /// </returns> private boolean canExpenseLineBeDeletedWithApprovalStatus() { if( this.ApprovalStatus == TrvAppStatus::None || this.ApprovalStatus == TrvAppStatus::Matched || this.ApprovalStatus == TrvAppStatus::Create ) { return true; } return false; } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> [FormControlEventHandler(formControlStr(TrvExpenses, DeleteExpenceLines), FormControlEventType::Clicked)] public static void DeleteExpenceLines_OnClicked(FormControl sender, FormControlEventArgs e) { FormButtonControl callerButton = sender as FormButtonControl; FormRun form = callerButton.formRun(); FormDataSource trvExpTrans_ds = form.dataSource(formDataSourceStr(TrvExpenses,TrvExpTrans)) as FormDataSource; // datasource name where the records to be deleted. //Multiselect helper class TrvExpTrans _trvExpTrans ;//records to delete from MultiSelectionHelper helper = MultiSelectionHelper::construct(); helper.parmDatasource( trvExpTrans_ds); _trvExpTrans = helper.getFirst(); while ( _trvExpTrans.RecId != 0) { _trvExpTrans.doDelete(); _trvExpTrans = helper.getNext(); } } }
[ExtensionOf(formDataSourceStr(TrvExpenses,TrvExpTrans))] final class DTTrvExpenses_TrvExpTrans_Extension { public void doDelete() { if(!this.canExpenseLineBeDeletedWithApprovalStatus()) { return; } } /// <summary> /// List of approval Status for which expense line can be deleted /// </summary> /// <returns> /// true if we can delete , false if not allowed /// </returns> Public boolean canExpenseLineBeDeletedWithApprovalStatus() { TrvExpTable trvExpTable; if( trvExpTable.ApprovalStatus == TrvAppStatus::Pending) { return true; } return false; } }
[ExtensionOf(formDataSourceStr(TrvExpenses,TrvExpTrans))] final class DTTrvExpenses_TrvExpTrans_Extension { /// <summary> /// List of approval Status for which expense line can be deleted /// </summary> /// <returns> /// true if we can delete , false if not allowed /// </returns> Public boolean doDelete() { TrvExpTable trvExpTable; trvExpTable = this.cursor(); if(trvExpTable.ApprovalStatus == TrvAppStatus::Pending) { return true; } return false; } }
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Abhilash Warrier as our Community Spotlight honoree for…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
CA Neeraj Kumar 2,177
André Arnaud de Cal... 860 Super User 2025 Season 2
Sohaib Cheema 593 User Group Leader