Announcements
No record found.
[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.
Congratulations to our 2026 Super Stars!
Thanks to all of our 2025 Community Spotlight stars!
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Giorgio Bonacorsi 617
André Arnaud de Cal... 461 Super User 2026 Season 1
Syed Haris Shah 298 Super User 2026 Season 1