database - 在 APEX 5.1 的交互式报告中选中相关复选框时如何启用选择列表

标签 database plsql interface oracle-apex tabular-form

我已经在 Oracle APEX 5.1 中创建了一个关于 SQL 查询的交互式报告,并且我已经添加了另外两列来查询。一个是报告中每一行的复选框,另一个是包含每一行数字的选择列表。 SQL查询写在下面。我想要做的是在选中相关复选框时启用选择列表,否则最终用户不应该能够从列表中选择数字。我知道这可以通过动态操作来完成,但我无法指出解决方案。

为什么我要禁用选择列表:我可以通过 pl/sql 中的 for 循环通过名为 APEX_APPLICATION.G_F01 的数组获取复选框的返回值。在数组内部,有选中的行,但我无法通过 APEX_APPLICATION.G_F02 达到选中行的数量,它是选择列表的值数组,因为该数组还包含数量不想要的、未选中的值列。我找到了在选中复选框时启用选择列表的解决方案。

查询:

SELECT  APEX_ITEM.CHECKBOX2(1,URUN.BARKOD) "Select", U.AD, MA.AD MAGAZA_ADI, FIYAT, APEX_ITEM.SELECT_LIST(
        p_idx           =>   2,
        p_list_values   =>   '1;1,2;2,3;3,4;4,5;5,6;6,7;7,8;8,9;9,10;10',
        p_show_null     =>   'YES',
        p_null_value    =>   NULL,
        p_null_text     =>   '-0-',
        p_item_id       =>   'f03_#ROWNUM#',
        p_item_label    =>   'Label for f03_#ROWNUM#') "Adet"
FROM URUNSATIS URUN, UYE UN, ADRES AD, ANLASMALAR AN, MAGAZA MA, URUN U
WHERE UN.USERNAME = :SESSION_USER_NAME AND UN.ID = AD.UYE_ID AND AD.APARTMAN_ID = AN.APARTMAN_ID AND AN.MAGAZA_ID = URUN.MAGAZA_ID AND MA.ID = URUN.MAGAZA_ID AND U.BARKOD=URUN.BARKOD
ORDER BY 1;

这个问题背后的想法:我希望最终用户从报告中选择一个产品,当他们选择所需产品的复选框时,他们应该能够选择他们想要从市场订购的产品数量。我卡在了应用程序的这个阶段。我愿意接受任何解决这个问题的新想法。

最佳答案

您可以使用复选框上的 p_checked_attributes 选项来跟踪通过隐藏项检查了哪些项,然后根据是否包含该值进行动态操作来禁用/启用在一个隐藏的项目中。

所以您的选择查询看起来像这样:

SELECT 
    APEX_ITEM.CHECKBOX2(p_idx => 1, 
                        p_value => URON.BARKOD,
                    --    p_attributes => 'class="barkod"', use this value if you want to keep track after refresh
                        p_checked_values => :P1_BARKOD_LIST,
                        p_checked_values_delimiter => ',') AS "SELECT",
    U.AD, MA.AD MAGAZA_ADI, FIYAT, 
    APEX_ITEM.SELECT_LIST(
        p_idx           =>   2,
        p_list_values   =>   '1;1,2;2,3;3,4;4,5;5,6;6,7;7,8;8,9;9,10;10',
        p_show_null     =>   'YES',
        p_null_value    =>   NULL,
        p_null_text     =>   '-0-',
        p_item_id       =>   'f03_#ROWNUM#',
        p_item_label    =>   'Label for f03_#ROWNUM#') "Adet"
FROM URUNSATIS URUN, UYE UN, ADRES AD, ANLASMALAR AN, MAGAZA MA, URUN U
WHERE UN.USERNAME = :SESSION_USER_NAME AND UN.ID = AD.UYE_ID AND AD.APARTMAN_ID = AN.APARTMAN_ID AND AN.MAGAZA_ID = URUN.MAGAZA_ID AND MA.ID = URUN.MAGAZA_ID AND U.BARKOD=URUN.BARKOD
ORDER BY 1;

关于database - 在 APEX 5.1 的交互式报告中选中相关复选框时如何启用选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45663269/

相关文章:

php - Mysql SELECT ASC 没有最后 50 行

sql - SQL连接中约束放置的性能差异

xml - 具有命名空间的标签的 Extract/extractValue

sql - 尝试使用循环将多个值存储到变量中,并使用该特定变量进行插入

android - 非抽象且不重写抽象方法

C++ 界面风格编程。需要一条出路

database - 重新加载 Datagrid View 不返回任何内容

php - MySQL:我可以实现行级和列级安全性吗?

java.sql.SQLSyntaxErrorException : ORA-00947: not enough values

c# - 我能否实现一个接口(interface),该接口(interface)包含接口(interface)所需的子类型的属性?