【问题标题】:Debugging and updating values in APEX Interactive report在 APEX 交互式报告中调试和更新值
【发布时间】:2019-09-30 21:20:43
【问题描述】:

我的 Interactive Report APEX 4.2.5 应用程序有两个问题。我已经看到了这个功能的几个例子,但到目前为止它们对我没有帮助..

1 - 在报告 SELECT 语句中,我使用 apex_item.text 选择一些字段,因为我希望用户能够更新这些字段。这部分工作正常。我的问题是将更新的值写回表(SELECT 在视图上)。我有一个应该执行此操作的 SQL 自治块进程(循环遍历行并使用 APEX_APPLICATION.G_Fxx 访问值)但它不起作用。提交后没有返回错误,而是将值恢复为原始值。如何让这些更新保存在表格中?

2 - 在 SQL 进程中,我启用并添加了一些 APEX_DEBUG.MESSAGE 语句,但我在调试日志或表中的任何地方都看不到这些语句的结果。如何查看这些调试命令的结果?

这里是选择:

select REQUISITION_LINE_ID
,apex_item.hidden(50,REQUISITION_LINE_ID,10,10) rid
,REQ_NUMBER
,REQ_LINE_NUMBER
,REQUISITION_QUANTITY
,SO_NUMBER
,SO_LINE
,ORDERED_QUANTITY
,SKU
,DESCRIPTION
,apex_item.text(10, SUPPLY_PO_NUMBER, 10, 10) SUPPLY_PO_NUMBER
,apex_item.text(20, SUPPLY_PO_LINE, 10, 10) SUPPLY_PO_LINE
,apex_item.text(30, SUPPLY_PO_SHIPMENT , 10, 10) SUPPLY_PO_SHIPMENT 
from camlb.xxcb_requisition_reference;

这里是 SQL 过程:

declare
id number;
poorder number;
poline number;
poshipment number;

begin
APEX_DEBUG.ENABLE(p_level => 9);

for i in 1..APEX_APPLICATION.G_F50.count 
loop

id := APEX_APPLICATION.G_F50(i);
poorder:=APEX_APPLICATION.G_F10(i);
poline:=APEX_APPLICATION.G_F20(i);
poshipment:=APEX_APPLICATION.G_F30(i);

APEX_DEBUG_MESSAGE.LOG_MESSAGE('ID is ' || id || ', PO is ' || poorder || ', SUPPLY_PO_LINE is '|| poline || ', SUPPLY_PO_SHIPMENT is ' || poshipment);
APEX_DEBUG.MESSAGE('ID is ' || id || ', PO is ' || poorder || ', SUPPLY_PO_LINE is '|| poline || ', SUPPLY_PO_SHIPMENT is ' || poshipment);

update APPS.po_requisition_lines_all 
set ATTRIBUTE1=poorder,
ATTRIBUTE2=poline,
ATTRIBUTE3=poshipment
where requisition_line_id=id;

end loop;
end;

【问题讨论】:

    标签: oracle oracle-apex


    【解决方案1】:

    请注意,由于 HTML 行为,复选框数组会很密集,而您的文本框数组会很稀疏。有一些关于这个主题的帖子,还有一些其他的一般复选框处理帖子https://www.talkapex.com/2009/01/apex-report-with-checkboxes-advanced/

    您需要将应用程序置于调试模式,使用通常位于运行时页面底部的开发人员工具栏(如果您还登录了构建器)。

    这会将相关的 URL 参数设置为 YES。寻找与页面提交相关的日志,而不是渲染。在进入循环之前记录相关的数组计数也可能是值得的。

    【讨论】:

    • 我正在尝试使用 APEX_DEBUG.MESSAGE 写入调试日志,但消息未显示。我单击调试,执行操作,然后查看调试。 APEX_DEBUG.MESSAGE 不会显示在日志中。
    • 您确定打开了正确的调试日志列表吗?对于处理,我认为它会说“接受”,按钮名称作为后缀,而“显示”只是呈现页面
    • 是的。 SHOW 为呈现页面的 SELECT 提供日志记录。 ACCEPT 记录单击提交/保存按钮后发生的情况。但是很遗憾,没有显示 APEX_DEBUG.MESSAGE。我想知道除了通过 APEX_DEBUG.ENABLE 在单个对象中启用之外,是否还需要在 APEX 管理员的某个位置启用它。但是我没有找到任何与此相关的文档。
    • 不知道我之前是怎么错过的,但我发现可以在“编辑应用程序属性”link 中启用调试。但是我已将其设置为是,但仍然没有调试消息。
    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 2011-09-26
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多