Use update form to delete row instead of dialog

Tags: #<Tag:0x00007f2253e69200>

when on a standard browse list, when I click the delete button, I want to see the form, (then the delete happens on click Ok), not the dialog. Forgot how to set that - any clues please?

Procedure Properties -> Actions -> Messages and Titles -> When called for delete:

in your case you want “Display Form”

2 Likes

If you want to make this the default behaviour for future forms, search the template folder for
,DEFAULT('Standard Warning')
and replace it with
,DEFAULT(‘Display Form’)

The templates that show up with the Std warning are:
ABupdate.tpw
ADO.tpw
Control.tpw

If you always want a browse to use an incremental locator, search for
,DEFAULT('Step')
and change it to
,DEFAULT('Incremental')

this is in
CTLBrow.tpw
ABBrowse.tpw

If there are other types of default values the templates have you want to change, search for
,Default('
and review accordingly.

FWIW.

Edit.
I actually edit the shipping templates quite a bit to customise the templates more to how I like them to be, like some control buttons ar 12 pixels high and others are 14 pixels high, so I resize a number of controls in the templates to standardise them. It also means less work when laying out windows in the screen designer.

2 Likes

Great post, thank you Richard! (I presume this is the legendary Mr Rogers?) I remember you from ETC3 in 2004…

Thank you for the detailed answer, Geoff

I make several changes when I implement Delete Display Form. I work mainly with Legacy templates but I think the ABC is similar.

Delete with Form shows the Form window with ALL the data ENTRY fields enabled working so it looks like normal Change Record data entry. The only indication they are deleting is the Title bar may say “Deleting xxx Record” … if you left that configured (I usually do not).

The OK button says “OK” but deletes the record so that’s confusing. If they accidentally pressed Delete it would be very easy to assume you where doing a Change Record.

  1. Change “OK” Prop:Text = “&Delete” and set Prop:Default=False
  2. Select the ?Cancel button at Window open as the First Field.
  3. So it does not look like normal data entry Disable all the fields (except Sheet & Tab, also skip Prompt, String, Group looks better).
    3a. Easier (in Legacy) is to add the View Form extension and DO that code then Enable ?OK.
  4. Check the ?OK button embed code and make sure it is not doing some kind of save validation before it tries to Delete. That needs to be wrapped in IF Request <> DeleteRecord or refactored (I think that is more of a Legacy issue).

As an alternative to showing the Form I would like an easy way to customize the simple Message('Are you sure you want to delete the highlighted record?') to display some record information e.g. Message('Are you sure you want to delete the selected Customer? || ABC Trucking (12345)')

nice perspective, thanks Carl!