Oracle 12.1.3. 呆子如何连接以编程方式填充的2个视图对象?
我有两个以编程方式填充的视图对象,也就是说,这些对象在查询语句区域中没有SQL查询。有HeaderVO和LinesVO。我的任务是在高级表中显示高级表。这是基于HeaderVO和LinesVO的高级表格。如果使用视图链接,则HeaderVO表将显示数据,而LinesVO表仅显示“未进行搜索”。这是合乎逻辑的,我明白为什么Oracle 12.1.3. 呆子如何连接以编程方式填充的2个视图对象?,oracle,oracle-ebs,oaf,Oracle,Oracle Ebs,Oaf,我有两个以编程方式填充的视图对象,也就是说,这些对象在查询语句区域中没有SQL查询。有HeaderVO和LinesVO。我的任务是在高级表中显示高级表。这是基于HeaderVO和LinesVO的高级表格。如果使用视图链接,则HeaderVO表将显示数据,而LinesVO表仅显示“未进行搜索”。这是合乎逻辑的,我明白为什么 但是我如何连接这两个表(视图对象)?当VO以编程方式填充时,您可以尝试以编程方式在这些VO之间创建视图链接。您可以使用以下方法进行相同操作: 假设主VO为deptVO,细节V
但是我如何连接这两个表(视图对象)?当VO以编程方式填充时,您可以尝试以编程方式在这些VO之间创建视图链接。您可以使用以下方法进行相同操作: 假设主VO为deptVO,细节VO为empVO
// Build an attribute array, consisting of deptVO.DeptNum for Master VO
AttributeDef[] deptAttrs = new AttributeDef[1];
deptAttrs[0] = deptVO.findAttributeDef("DeptNum");
// Build an attribute array, consisting of empVO.DeptNum for Detail VO
AttributeDef[] empAttrs = new Attributedef[1];
empAttrs[0] = empVO.findAttributeDef("DeptNum");
ViewLink vl = myAM.createViewLinkBetweenViewObjects("yourVLName",
"VLAccessor", //accessor name
deptVO, //master VO
deptAttrs, //master VO attribute
empVO, //detail VO
empAttrs, //detail VO attribute
null); //association clause
为了在OAF advancedTable组件中具有主-细节关系,必须正确映射细节VO子属性。由于您是以编程方式定义的主VO和子VO,请确保此步骤已完成。您是以声明方式还是以编程方式创建advancedTable
ViewObject voDept = am.createViewObject("MyDeptVO", "package1.DeptView");
ViewObject voEmp = am.createViewObject("MyEmpVO", "package1.EmpView");
AttributeDef[] deptLinkAttrs = new AttributeDef[] { voDept.findAttributeDef("Deptno") };
AttributeDef[] empLinkAttrs = new AttributeDef[] { voEmp.findAttributeDef("Deptno") };
ViewLink vl = am.createViewLinkFromEntityAssocName("MyDeptEmpLink",
"Employees",
voDept, deptLinkAttrs,
voEmp, empLinkAttrs,
null);