OAF_资料主从关系Master-Detail联动的实现(案例)

2014-06-02
BaoXinjian

一、摘要

OAF和Form Builder一样,也需要主从块的管理,应为Form只需要建立一个relationship,相对简单

在OAF中实现主从Master-Detail联动的实现,更多的是通过代码去实现

比如在主块中添加一个event,在CO中去触发从块的查询语句,从而实现

二、案例

需求:当主块supplier选择后,系统自动关联子块Site,显示这个supplier下的所有sites

1. 建立Header Region -> Supplier Table

2. 建立Detail Region -> Supplier Sites Table

3. 在Header中建立Singel Section, 设定Action Type为FireAction,
Event为SupplierSelect

4. 新增CO,在ProcessFormRequest中抓取Event SupplierSelect,调用AM的方法

5. 在AM中获取Supplier_Id, 将Supplier_Id赋值与VO中的具体SQL

6. VO中执行SQL

7. 查看结果

(1). 查询Supplier Header,选中第一条Record

(2). 选中第一条后,在Detail中显示所有Site Records

三、案例实现

Step1. 建立Structure

Step2. 新增CO,在ProcessFormRequest中抓取Event
SupplierSelect,调用AM的方法


 1 public void processFormRequest(OAPageContext pageContext, OAWebBean webBean) {
2
3 super.processFormRequest(pageContext, webBean);
4
5 OAApplicationModule am = (OAApplicationModule)pageContext.getApplicationModule(webBean);
6
7 String event = pageContext.getParameter("event");
8
9 if ("supplierSelect".equals(event)){
10
11 am.invokeMethod("handleSupplierSelectionEvent");
12
13 }
14
15 }

Step3. 在AM中获取Supplier_Id, 将Supplier_Id赋值与VO中的具体SQL


 1 public void handleSupplierSelectionEvent(){
2
3 OADBTransaction txn = getOADBTransaction();
4
5 String detailTableText = null;
6
7 String supplierId = null;
8
9 OAViewObject vo = (OAViewObject)findViewObject("SupplierVO1");
10
11 Row masterRow = vo.getFirstFilteredRow ("SelectFlag", "Y");
12
13 if (masterRow != null){
14
15 vo.setCurrentRow(masterRow);
16
17 supplierId = String.valueOf(masterRow.getAttribute("SupplierId"));
18
19 MessageToken[] tokens = { new MessageToken("SUPPLIER_NAME", null)};
20
21 detailTableText = txn.getMessage("AK", "FWK_TBX_SITES_FOR_SUPPLIER", tokens);
22
23 }
24
25 else{
26
27 detailTableText = txn.getMessage("AK", "FWK_TBX_SUPPLIER_SITES", null);
28
29 }
30
31 SupplierSitesVOImpl voSites = this.getSupplierSitesVO1();
32
33 if (voSites == null){
34
35 MessageToken[] errTokens = { new MessageToken("OBJECT_NAME","SupplierSitesVO1")};
36
37 throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", errTokens);
38
39 }
40
41 voSites.initQuery(supplierId);
42
43 }

Step4. VO中执行SQL


 1 public void initQuery (String SupplierId) {
2
3 if (SupplierId != null){
4
5 setWhereClause("SUPPLIER_ID = :1");
6
7 setWhereClauseParams(null); // Always reset
8
9 setWhereClauseParam(0, SupplierId);
10
11 executeQuery();
12
13 }
14
15 }

四、案例测试

Test. 查看结果

Test1. 查询Supplier Header,选中第一条Record

    

Test2. 选中第一条后,在Detail中显示所有Site Records

时间: 2024-10-11 11:29:58

OAF_资料主从关系Master-Detail联动的实现(案例)的相关文章

SF :Salesforce中,look up 和 master detail关系

相同:在salesforce中,它们都被用来维护对象间的关联关系 区别: 1.master-detail 关系中,如果有master记录,则必须要有 detail记录. 2.master-detail 关系比较紧密,如果删除了master一方的记录,那么相应的 detail一方的记录也                     将被自动删除.而look up则不会. 3.master-detail 关系中,在master的对象上,可以创建一个Roll-Up Summary类型的字段.这      

输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示

需求:输出redis cluster 主从的对应关系,如果同一个主从关系的master和slave在同一个node节点上,在输出的对应关系末尾输出提示. 为什么会有这样的需求呢?在重新搭建redis cluster的时候,创建集群期间,发现: redis-trib.rb create --replicas 1 \5.5.5.101:29001 5.5.5.102:29002 5.5.5.103:29003 \5.5.5.102:29001 5.5.5.103:29002 5.5.5.101:29

高强度学习训练第六天总结:Redis主从关系总结

Redis主从复制机制 1.读写分离的好处 性能优化:主服务器专注于写操作,可以更适合写入数据的模式工作:同样,从服务器专注于读操作,可以用更适合读取数据的模式工作. 强化数据安全,避免单点故障:由于同步机制的存在,各个服务器之间的数据保持一致,所以其中某个服务器宕机不会导致数据丢失或无法访问,从这个角度说,参与主从复制的Redis服务器构成了一个集群. 2.搭建步骤 思路 Redis集群在运行时使用的的是同一个可执行文件,只是对应的配置文件不同. 因此我们不需要安装过多的Redis. 每个配置

UWP 快速的Master/Detail实现

最近在写快报(还没有写完)的过程中,一开始就遇到了这个Master/Detail如何实现的问题. 微软给出Demo并不符合要求,搜索后找到了今日头条开发者写的一篇 :实现Master/Detail布局 拜读之后感觉实现有些麻烦,所以呢这里给出一个更快速的实现. 好滴,下面直接进入正题. 为了实现Master/Detail我决定和今日头条开发者一样采用左右各一个Frame来托管页面 <Grid.ColumnDefinitions> <ColumnDefinition x:Name=&quo

mysql主从关系监控,故障报警和恢复

#!/bin/sh #check_mysql_slave status ip=eth1  #网卡名称 mysql_binfile=/usr/local/mysql/bin/mysql mysql_user=root  #MySQL数据库账号 mysql_pass=123456  #密码 mysql_sockfile=/tmp/mysql.sock datetime=`date +"%Y-%m-%d/%H:%M:%S"`   #获取当前时间 mysql_slave_logfile=/op

Win10 UWP开发系列:实现Master/Detail布局

在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/dn997765.aspx 样式如下: 在微软官方的Sample里,有这种样式的代码示例,下载地址:https://github.com/Microsoft/Windows-univ

支持创建主从关系报表的报表控件MindFusion.Reporting for WPF

MindFusion.Reporting for WPF是一款功能强大的报表控件,可进行可视化编辑相关的数据,可以很容易地整合该工具到你的商业应用程序中,支持创建主从关系报表.插入图像.格式化文本.可视地绑定到任何数据源.导出报表为(PNG.JPG.TIF.HTML.PDF.XPS),支持预览和打印等. 具体功能: 支持所有.NET数据源 兼容ADO.NET 多个数据源可以用于单个报表 支持绑定和非绑定两种模式 支持使用饼图对数据进行可视呈现 支持图片 支持任何WPF控件 支持多页报表 支持以W

Redis集群节点主从关系调整

一.概述 Redis集群创建后,可能会出现互为主从关系的节点从属于同一台服务器的情况.在此种情况下,若 服务器故障宕机或需要停机维护,互为主从关系的节点同时停止运行,导致redis集群暂时失去一部 分slot插槽.此时,redis集群为fail状态,对其进行的数据读写操作均无法正常进行.为避免此种情 况的发生,应对redis集群节点的主从关系进行调整,使互为主从关系的节点分属于不同的服务器. 二.调整方法描述 1.使用redis-trib.rb脚本将待调整的从节点从redis集群中删除.(执行此

中国省市区地址三级联动jQuery插件 案例下载

中国省市区地址三级联动jQuery插件 案例下载 distpicker 是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. 安装 可以通过npm或bower来安装该三级联动插件. npm install distpicker bower install distpicker 使用方法 HTML结构 基本的HTML结构是使用一个<div>容器来包裹一组<select>元素. <div><!-- containe