我正在使用 ADF 主细节概念。
Header form (master page)
Detail form (Detail page of Header (master page))
SubDetail form (Detail page of Detail (master page))
所以:
Header page has h_id as primary key.
Detail page has d_id(Detail) and h_id(Header) as primary key.
SubDetail page has s_id (subDetail),d_id(Detail) and h_id(Header) as a primary key.
一旦我从标题页面导航到详细信息页面并在执行任何插入或更新后,表格将被刷新并获取表格第一行的详细信息。
我尝试了两种方法:
第一个,获取header VO的绑定,并设置setCurrentRowWithKeyValue
带有headerh_id
值的rowkey:
BindingContainer parent_binding =getBindingsContOfOtherPage("view_headerPageDef");
OperationBinding opt =parent_binding.getOperationBinding("setCurrentRowWithKeyValue");
opt.getParamsMap().put("rowKey",h_Id);
opt.execute();
由于它h_id
仅查找详细信息(d_id),因此这将起作用。
但是从细节来看,当我导航到子细节页面时,上述概念不起作用。它没有获取当前详细信息行的子详细信息。它仅获取第一行。
我假设,这里的子细节需要细节(d_id)和标题(h_id)。但我不知道如何将两个值放在 rowKey 属性中。
我尝试的另一种方法是获取 VO 中 currentRow 的键并以编程方式设置它:
BindingContainer bindings = getBindings();
BindingContainer parent_binding =getBindingsContOfOtherPage("view_DetailPageDef");
DCIteratorBinding child_dciter = (DCIteratorBinding)bindings.get("SubDetail_VO2Iterator");
DCIteratorBinding parent_dciter = (DCIteratorBinding)parent_binding.get("detail_VO2Iterator");
Key DetailKey=dciter1.getCurrentRow().getKey();
Key parentKey=parent_dciter.getCurrentRow().getKey();
parent_dciter.setCurrentRowWithKey(parentKey.toStringFormat(true));
dciter1.setCurrentRowWithKey(DetailKey.toStringFormat(true));
但是这个概念也适用于标题和细节级别。它不适用于详细信息和子详细信息级别。
我在getCurrentRow().getKey()
.
我怎样才能做到这一点?