I don't think there's something that does not require some code. This here is from the Business Entity Designer based on a temp-table adapter:
/*------------------------------------------------------------------------------
Purpose: Event handler for the BeforeDeleteRecord event of the
Notes: Implements multi-selection deletion
@param sender The reference to the object that raised the event
@param e The BeforeDeleteRecordEventArgs with the data for this event
------------------------------------------------------------------------------*/
METHOD PRIVATE VOID smartTempTableAdapter1_BeforeDeleteRecord (sender AS System.Object,
e AS BeforeDeleteRecordEventArgs):
DEFINE VARIABLE cFieldName AS CHARACTER NO-UNDO.
smartUpdatableBrowser1:ActiveRow:Selected = TRUE .
e:Cancel = TRUE .
{Consultingwerk/foreach.i UltraGridRow oRow in smartUpdatableBrowser1:Selected:Rows}
cFieldName = UNBOX (oRow:Cells["FieldName":U]:Value) .
{&_proparse_ prolint-nowarn(findnoerror)}
FIND eField WHERE eField.FieldName = cFieldName .
DELETE eField .
END.
CATCH err AS Progress.Lang.Error :
ErrorHelper:ShowErrorMessage (err) .
END CATCH.
FINALLY:
smartUpdatableBrowser1:Selected:Rows:Clear() .
smartTempTableAdapter1:RetrieveData() .
END FINALLY.
END METHOD.
If you're using a business entity adapter, similar code should work, like in a method in the DatasetController class the code should look very similar - you just have to submit the changes when done. And don't forget to turn on TRACKING-CHANGES.
The Consultingwerk.Windows.Util.UltraGridSelectedRowsHelper:CopySelectedRowsToProDataset method may also be useful. It copies the selected rows into a copy of the ProDataset. Those could then also be deleted.