[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(); } }}
[ExtensionOf(tableStr(TrvExpTrans))]
final class DTTrvExpTrans_Extension
{
public void doDelete()
{
next doDelete();
if(!this.canExpenseLineBeDeleted())
{
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 canExpenseLineBeDeleted()
{
TrvExpTable trvExpTable;
if( trvExpTable.ApprovalStatus == TrvAppStatus::Pending)
{
return true;
}
return false;
}
}
[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)
{
if(_trvExpTrans.ApprovalStatus == TrvAppStatus::Pending)
{
_trvExpTrans.doDelete();
}
_trvExpTrans = helper.getNext();
}
}
[ExtensionOf(tableStr(TrvExpTrans))]
final class DTTrvExpTrans_Extension
{
public void doDelete()
{
next doDelete();
if(!this.canExpenseLineBeDeleted())
{
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 canExpenseLineBeDeleted()
{
TrvExpTable trvExpTable;
if( trvExpTable.ApprovalStatus == TrvAppStatus::Pending)
{
return true;
}
return false;
}
}
[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)
{
if(_trvExpTrans..ApprovalStatus == TrvAppStatus::Pending)
{
_trvExpTrans.delete();
}
_trvExpTrans = helper.getNext();
}
}
André Arnaud de Cal...
291,965
Super User 2025 Season 1
Martin Dráb
230,836
Most Valuable Professional
nmaenpaa
101,156