【问题标题】:How to fetch value of checkbox in oracle apex if I used a blank form?如果我使用空白表格,如何在 oracle apex 中获取复选框的值?
【发布时间】:2018-09-20 15:33:47
【问题描述】:

我想将 oracle apex 中复选框中选中名称的值放入表中,但无法执行此操作。 我尝试从谷歌获得帮助,但提到的步骤也不起作用。 如果我采取了一个空白表格,然后在其中添加了一个复选框,您能否建议如何执行此操作,并且我还从 LOV 中获取了该复选框的值。

【问题讨论】:

  • 你能告诉我们你已经尝试过什么吗?
  • 请提供更多信息:您有哪些项目,您做了什么,哪些流程,您的代码等。所有重现错误所需的内容。
  • 我添加了一个名称为“P12_NEW”的复选框。此复选框包含用户列表。顶部有一个文本框,用于手动输入金额。我希望该金额出现在我标记为选中“在我单击保存按钮后在名为:'usr_amt' 的表中”的每个用户面前。

标签: oracle oracle-apex


【解决方案1】:

据我了解,您使用值列表作为复选框的来源。假设您在那里有以下值:

return value   display value
----------------------------
         123   andAND
         456   Dibya
         789   Anshul
         321   aafirst
         555   Anuj

当您选择多个值时,APEX 会将它们的返回值放入一个字符串中,并用: 分隔它们。因此,对于屏幕截图中的情况,项目P12_NEW 中的值将是123:555。要拆分此值,您可以使用以下查询:

 select regexp_substr(:P12_NEW, '[^:]+', 1, level) values
   from dual
connect by regexp_substr(:P12_NEW, '[^:]+', 1, level) is not null

结果将是:

values
------
   123
   555

接下来,您需要将这些值放入表usr_amt(假设有user_idamount 列,并将金额输入到项目P12_AMOUNT):

merge into usr_amt t
using (select regexp_substr(:P12_NEW, '[^:]+', 1, level) user_id
         from dual
      connect by regexp_substr(:P12_NEW, '[^:]+', 1, level) is not null
       ) n on (n.user_id = t.user_id)
 when matched then update
  set t.amount = :P12_AMOUNT
 when not matched then insert (user_id, amount)
      values (n.user_id, :P12_AMOUNT)

此查询将搜索表中选择的每个 user_id,如果用户在那里显示,则将相应的值更新为项目 :P12_AMOUNT 的值,如果不存在 - 插入一行 user_id 和价值。

【讨论】:

  • 我是否也需要在表格中输入以下查询,如果是,请告知在哪里放置:select regexp_substr(:P12_NEW, '[^:]+', 1, level) values from dual connect by regexp_substr(:P12_NEW, '[^:]+', 1, level) is not null
  • 不,这个查询只是为了演示这个想法,MERGE 就足够了。
  • 我尝试了,但合并不起作用,请建议我是否可以进行屏幕共享,以便您更好地了解我是否遗漏了什么......
  • 可能有很多原因,请描述您如何执行此操作以及您看到哪个错误(如果有)。可能,最好创建一个新问题。
  • 非常感谢您的帮助和时间,如果需要,我会提出不同的问题。
猜你喜欢
  • 1970-01-01
  • 2018-03-04
  • 2019-04-25
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多