Skip to Main Content
Feature Request FR-4554
Product Area Page Components
Status CLOSED

1 Voters

Adding html buttons to classic reports is way too complicated.

paul.latorres Public
· Jul 10 2025

Idea Summary
Adding html buttons to classic reports is way  too complicated. It needs to be simpler. Too many steps for something that should be much easier and less time consuming.

Currently you have to:

1. Add the html button code to the query

2.Disable Escaping (Render HTML) in the Report Column -  make changes to the column to allow the display of html

3. Create a Hidden Item for the ID

4. Add a Dynamic Action on Button Click

  • Event: Click
  • Selection jQuery Selector Type
  • Add a jQuery Selector

5. Add True Action to Execute JavaScript Code

6. Add True Action to Execute PL/SQL Code

7. Make sure that the delete ID is submitted

8. Add a third True Action to Refresh the report

 This is way too complicated, providing a number of places where errors could occur, and is really difficult to figure out by the average user doing this for their first time, or remembered by experienced user.

And YES, sometimes developers want the flexibility to use a Classic Report with a delete button….I know that there are other ways of doing this.

Use Case
There are many times that we use classic reports inside of popup pages, to add or delete  data that is not necessarily part of the data table that is represented by the master page. Example: displaying a list of emails, that are in another db table, where the user can add more emails or delete from the classic report displaying the email addresses, 

Preferred Solution (Optional)
1. Add a column, 

2. Add a button / Style the button, etc…, 

3. Link the button to a PL/SQL, SQL, Or Javascript action, tell it what ID column from the report to use

4. And…done

We reviewed this idea carefully, and while it was interesting, we concluded that due to all the internal implications we need to take into account, it is unlikely to make its way into APEX.

Comments

Comments

  • fac586 OP 9 months ago

    Currently you have to:

    1. Add the html button code to the query

    2.Disable Escaping (Render HTML) in the Report Column -  make changes to the column to allow the display of html

    3. Create a Hidden Item for the ID

    4. Add a Dynamic Action on Button Click

    • Event: Click
    • Selection jQuery Selector Type
    • Add a jQuery Selector

    5. Add True Action to Execute JavaScript Code

    6. Add True Action to Execute PL/SQL Code

    7. Make sure that the delete ID is submitted

    8. Add a third True Action to Refresh the report

    That's more like 2010 than now. Currently I would:

    1. Generate the button link attributes in the Button Builder and paste it into the Link Attributes property of a link column in the report. 
    2. Set the link target URL to invoke an APEX action, passing the required key value by referencing the ID column in the arguments list: #action$[context-id]action-name?id=#ID#.
    3. Add an AJAX callback page process to perform the required database operation(s), using the APP_AJAX_X01 built-in substitution string to avoid creating a hidden item for the ID.
    4. Add the action in the page Function and Global Variable Declaration property, using the apex.server.process to run the AJAX callback process, passing the ID argument as the x01 property, and apex.region.refresh to refresh the report on completion.