调试和更新APEX Interactive报告中的值

时间:2019-05-13 21:59:31

标签: oracle oracle-apex

我的Interactive Report APEX 4.2.5应用程序中有两个问题。我已经看到了一些有关此功能的示例,但到目前为止它们对我没有帮助。

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

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

这是SELECT:

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;

1 个答案:

答案 0 :(得分:-1)

请注意,由于HTML行为,复选框数组将很密集,而文本框数组却很稀疏。关于该主题的文章很多,还有其他一些常规的复选框处理文章https://www.talkapex.com/2009/01/apex-report-with-checkboxes-advanced/

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

这会将相关的URL参数设置为YES。查找与页面提交而不是呈现有关的日志。在进入循环之前,可能还需要记录相关的数组计数。