【问题标题】:Oracle Apex Application manual tabular formOracle Apex 应用程序手册表格
【发布时间】:2017-05-25 14:35:34
【问题描述】:

我有一个交互式报表,其中组合了查询,所以我不能使用可编辑的交互式网格。这就是为什么我必须在查询中使用手动表单。 我找到了一些关于 APEX_ITEM 的不错的提示,但我的流程有问题。

在我的查询中有如下列:

APEX_ITEM.HIDDEN(1,coursestudent.id)
...
APEX_ITEM.SELECT_LIST(2,coursestudent.signed,'Signed;1,Failed;0')

我有一个提交按钮,这是我的流程:

FOR i in 1..apex_application.g_f01.count LOOP
    UPDATE coursestudent
    SET signed=apex_application.g_f02(i)
    WHERE id=apex_application.g_f01(i);
END LOOP;

我认为这并不太难,但在我按下提交后,除了成功消息被写出页面外,没有任何反应。

我该怎么办?

我使用的是 Oracle Apex 版本:5.1.1.00.08

【问题讨论】:

  • 在代码中添加一些调试,例如apex_debug.message('g_f01='||apex_application.g_f01(i)||' g_f02='||apex_application.g_f02(i)); 在循环中,并检查调试日志以查看提交过程获得的值。请注意,如果 where 子句没有找到匹配的行(或者如果 g_f01(i) 恰好为空),您的 UPDATE 语句将不会执行任何操作(并且不会引发任何异常)。
  • 是的,问题是 apex_application.g_f01(i) 变量为 NULL,但是我应该如何引用表的元素?
  • 这就是您引用已发布项目的方式。如果它们为空,则意味着这些项目可能正在使用空值进行初始化。查看为页面生成的 HTML 并检查正在生成的值,例如对于隐藏的项目。
  • 感谢您的建议!所以,我发现了错误:这是一个错误。我不得不再次复制粘贴 sql 查询,现在它可以工作了。在此之前我遇到过这个错误,有时新列只是没有显示在页面中。由于我在第一次创建查询后放置了隐藏列,因此它没有显示在页面中,因此该过程中的循环从未起作用。

标签: oracle oracle-apex tabular-form oracle-apex-5.1


【解决方案1】:

感谢 Jeffrey,我发现了错误:这是一个错误。

我不得不再次复制粘贴 sql 查询,现在它可以工作了。好的,真的,在这种情况下,我总是将 select 1 from dual 放在它的位置,保存,然后粘贴回查询。

在此之前我遇到过这个错误,有时新列只是没有显示在页面中。由于我在第一次创建查询后放置了隐藏列,因此它没有显示在页面中,因此该过程中的循环从未起作用。

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2022-01-03
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多