Plsql 使用Oracle ApEx 4.1的可更新Oracle SQL报告
基本上,我有一个基于以下示例SQL查询的SQL可更新报告:Plsql 使用Oracle ApEx 4.1的可更新Oracle SQL报告,plsql,oracle-apex,Plsql,Oracle Apex,基本上,我有一个基于以下示例SQL查询的SQL可更新报告: select A, B, C from my_table; 基于此报告,我已将B列作为基于命名LOV的选择列表-我还为该列分配了一个id“LOV_SELECT” 这里的C列也是一个文本区域 我的问题是,由于此报告的行数可能不同,因此不确定如何执行此操作,假设此报告返回3行,基于从列B-选择列表中选择的值,我想使用列B选择列表中的此值从表中检索另一个值,然后将此值返回到列C文本字段中,与此选择列表一起使用的值 我想通过一个动态的动作来做
select A, B, C from my_table;
基于此报告,我已将B列作为基于命名LOV的选择列表-我还为该列分配了一个id“LOV_SELECT”
这里的C列也是一个文本区域
我的问题是,由于此报告的行数可能不同,因此不确定如何执行此操作,假设此报告返回3行,基于从列B-选择列表中选择的值,我想使用列B选择列表中的此值从表中检索另一个值,然后将此值返回到列C文本字段中,与此选择列表一起使用的值
我想通过一个动态的动作来做到这一点
例如:
Column A Column B (select list LOV) Column C
----------------------- ---------------------------- ------------------------------------
Row 1 NAME1 returns 5
Row 2 NAME2 returns 6
Row 3 NAME3 returns 7
因此,如果我更改第2行B列并选择“NAME2”,那么我想使用值“NAME2”执行一个查询,该值将返回一个值6,然后我希望将该值与SDE NAME2一起填充到C列中。手动表格格式,带有源:
select
apex_item.text(1, empno) empno,
apex_item.text(2, ename) ename,
apex_item.text(p_idx => 3, p_value => deptno, p_size => 4, p_maxlength => 2, p_attributes => 'class="deptno"') deptno,
apex_item.text(4, null) dname
from emp
2种可能的解决办法:
- 事件:变化
- 选择类型:jQuery选择器
- jQuery选择器:。deptno
- 条件:无条件
- 页面加载时触发:未选中
var lFetchFor = $(this.triggeringElement).val(), lTarget = $(this.triggeringElement).closest('tr').find('input[name="f04"]'); $.post('wwv_flow.show', {"p_request" : "APPLICATION_PROCESS=fetch_value", "p_flow_id" : $v('pFlowId'), "p_flow_step_id" : $v('pFlowStepId'), "p_instance" : $v('pInstance'), "x01" : lFetchFor}, function(data){ lTarget.val(data); });
- 不受影响的元素类型
- 事件:变化
- 选择类型:jQuery选择器
- jQuery选择器:
.deptno
- 条件:无条件
- 真动作:设定值
- 集合类型:Javascript表达式
- Javascript表达式:
$(this.triggeringElement).val()
- 页面加载时触发:未选中
- 受影响的元素:
- 选择类型:项目
- 项目:
P37\u FIND\u DEPTNO
- 真实操作:设置值
- 集合类型:SQL语句
- SQL语句:
从deptno=:P37\u FIND\u deptno所在的部门中选择dname代码>
- 要提交的页面项目:
P37\u FIND\u DEPTNO
- 页面加载时触发:未选中
- 受影响的元素:
- 选择类型:项目
- 项目:
P37\u查找\u部门否\u结果
- True操作:执行javascript代码
- 代码:
$(this.triggeringElement).closest('tr').find('input[name="f04"]').val($v ('P37_FIND_DEPTNO_RESULT'));
- 页面加载时触发:未选中
var lFetchFor = $(this.triggeringElement).val(), lTarget = $(this.triggeringElement).closest('tr').find('input[name="f04"]'); $.post('wwv_flow.show', {"p_request" : "APPLICATION_PROCESS=fetch_value", "p_flow_id" : $v('pFlowId'), "p_flow_step_id" : $v('pFlowStepId'), "p_instance" : $v('pInstance'), "x01" : lFetchFor}, function(data){ lTarget.val(data); });
- 代码:
- 不受影响的元素类型
- P37\u FIND\u DEPTNO
- 第37页\u查找\u部门\u结果
两者都负责获取值,这取决于您希望如何解决它。如果这是单记录模式,skillbuilders superlov会工作得很好,但没有真正的表格格式替代方案(有一种,但支持率很低,我觉得它并不优雅)。在页面加载时生成报告时,列C是否已经有值?如果说“那么想使用值“NAME2”执行查询,您的意思是实际使用“NAME2”(即显示值)而不是返回值来执行C的查询吗?对不起,Tom,我实际上指的是返回值,这里与显示值相同。因此,当我更改选择列表中的值时,请转到并执行一个pl/sql查询,该查询根据选择列表返回值从表中检索默认值,并在C列中显示该默认值。很抱歉延迟回复您-感谢您的解决方案。