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

2 Voters

Avoiding duplicate selection for pop-up LOV

leandro.gueths Public
· Oct 23 2024

Idea Summary
I would like to propose an improvement for the pop-up LOV functionality in Oracle APEX, specifically regarding its use in an Interactive Grid (IG). Currently, the LOV relies on a single query to define both the display and return values, making it difficult to exclude the values already used in the IG column. My suggestion is to allow the use of two separate queries: one to display the values in the LOV, filtering out the values already used in the IG column, and another to manage the column values. This would prevent the selection of duplicate values and provide greater flexibility and control over data display, enhancing both usability and data integrity.

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

  • bozo030 OP 5 weeks ago

    I agree with the idea, in addition to seperate queries I'd prefer some elegant solution like option “duplicate entries allowed (yes/no) ” or “ remove from list selected values(yes/no) ”

  • john.snyders APEX Team OP 4 weeks ago

    This idea is not specific to popup LOV. All LOV based items in APEX are essentially the same in the sense that on page load or due to refresh a set of display and return values are returned based on a SQL Query (or REST or static values). 

    This idea is more about IG and shouldn't be restricted to or implemented as part of Popup LOV. The use case you present as I understand it is to restrict the user from choosing duplicate values among the report rows. The issue is that in general this can only be done on the server because the client may not have all the data needed to check for duplicates. Cross row duplicate prevention (via restricting options or immediate validation) can lead to UX issues where to switch a value from one row to another can require using a temporary unused value. 

    In limited cases where the client does have all the data and the UX is desired this can be done using IG APIs client side. You can either validate by looping over the model rows or potentially including a list of the used values from the other rows as a page item to submit and then using that in the LOV query to exclude the already used values.