事件
Java触发器是执行后端Java代码逻辑的容器,在客户端视图页面加载时被触发,由开发者通过Java程序影响视图页面显示内容。
步骤
- 打开视图配置界面
- 鼠标移动视图名称上,点击"高级选项"弹出侧边栏,点击"事件"页签
- 对事件实现类进行注册/删除
配置项 | 说明 |
---|---|
触发器类型 | 各种事件名称,不同的事件要求开发人员实现的接口不同,每个事件只允许注册一个类 |
Java类名 | 一个遵循AWS事件接口实现的Java程序,格式:类路径+类名 |
注册 | 将指定的Java类注册到组件,多次为同一个组件执行【注册】等同修改 |
删除 | 将Java类从一个事件中移走 |
视图加载前的触发器
- 接口 com.actionsoft.bpms.dw.design.event.DataWindowBeforeLoadEventInterface
- 示例
import com.actionsoft.bpms.dw.design.event.DataWindowBeforeLoadEventInterface;
import com.actionsoft.bpms.dw.exec.component.DataView;
import com.actionsoft.bpms.server.UserContext;
/**
* 视图加载前的触发器
*
* @param me 用户上下文
* @param view dw视图对象
* @return 格式化好的sql语句
* 说明: 1.必须实现类 com.actionsoft.bpms.dw.design.event.DataWindowBeforeLoadEventInterface
* 2.此示例实现的是 : admin用户不能查看此视图
*/
public class DataWindowBeforeLoadEvent implements DataWindowBeforeLoadEventInterface {
public boolean excute(UserContext me, DataView view) {
if (me.getUID().equals("admin"))
return false;
return true;
}
}
格式化表格SQL语句的触发器
- 接口 com.actionsoft.bpms.dw.design.event.DataWindowFormatSQLEventInterface
- 示例
import com.actionsoft.bpms.dw.design.event.DataWindowFormatSQLEventInterface;
import com.actionsoft.bpms.dw.exec.component.DataView;
import com.actionsoft.bpms.server.UserContext;
/**
* 格式化sql语句的触发器
* @param me 用户上下文
* @param view dw视图对象
* @param sql sql语句
* @return 格式化好的sql语句
* 说明:
* 1.必须实现类 com.actionsoft.bpms.dw.design.event.DataWindowFormatSQLEventInterface
* 2.此示例实现的是 : 只有admin用户能够查询所有数据,其他用户只能查看自己创建的信息
*/
public class DataWindowFormatSQLEvent implements DataWindowFormatSQLEventInterface {
public String formatSQL(UserContext me, DataView view, String sql) {
if (!"admin".equals(me.getUID())) {
sql = sql.replace("1=1", "createuser = '" + me.getUID() + "'");
}
return sql;
}
}
格式化表格数据的触发器
- 接口 com.actionsoft.bpms.dw.design.event.DataWindowFormatDataEventInterface
- 示例
import java.sql.ResultSet;
import java.sql.SQLException;
import com.actionsoft.bpms.dw.design.event.DataWindowFormatDataEventInterface;
import com.actionsoft.bpms.dw.exec.component.Column;
import com.actionsoft.bpms.dw.exec.data.DataSourceEngine;
import com.actionsoft.bpms.server.UserContext;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class DataWindowFormatDataEvent implements DataWindowFormatDataEventInterface {
/**
* 格式化表格数据的触发器
*
* @param me 用户上下文
* @param JSONArray 数据对象
* 说明:1.必须实现类 com.actionsoft.bpms.dw.design.event.DataWindowFormatDataEventInterface
* 2.此示例实现的是 : 如果字段"ZT",为0显示错误图标,为1显示正确图标,为其他显示警示图标
* 3.如果需要在数据导出时应用格式化数据请实现formatGridExport方法(如果不需要则不实现)
*/
public void formatData(UserContext me, JSONArray datas) {
for (Object datao : datas) {
JSONObject data = (JSONObject) datao;
String columnValue = data.getString("ZT"); // 注意有些特殊组件的值为JSONObject,请根据情况使用getJSONObject获取相应值
switch (columnValue) {
case "0":
columnValue = "<img src=../apps/_bpm.platform/img/model/form_designer/error.png border=0/>";
break;
case "1":
columnValue = "<img src=../apps/_bpm.platform/img/model/form_designer/ok.png border=0/>";
break;
default:
columnValue = "<img src=../apps/_bpm.platform/img/model/form_designer/warn.png border=0/>";
break;
}
//虚拟字段VIRTUALBUTTON ,组件为按钮不显示
//data.put("VIRTUALBUTTON" ,"");
//data.put("COLUMNTYPE_VIRTUALBUTTON", "");
data.put("ZT" + DataSourceEngine.AWS_DW_FIXED_CLOMUN_SHOW_RULE_SUFFIX, columnValue);
}
}
/**
* 格式化导出数据
*
* @param me 用户session
* @param rs 数据库结果集
* @param colModel 字段的相关配置模型
* @param fieldId 字段名
* @return null 时不执行
*/
public String formatGridExport(UserContext me, ResultSet rs, Column colModel, String fieldId) {
String ss = null;
try {
if (fieldId.equals("NAME")) { // 如果名字是NAME
ss = rs.getString(fieldId) + "Helden sterben nicht!"; // 则执行
}
} catch (SQLException e) {
e.printStackTrace();
}
return ss;
}
/**
* 报表格式化导出数据
*
* @param me
* @param datas
*/
public void formatReportExport(UserContext me, JSONArray datas) {
for (Object datao : datas) {
JSONObject data = (JSONObject) datao;
String columnValue = data.getString("COLUMNNAME"); // 注意有些特殊组件的值为JSONObject,请根据情况使用getJSONObject获取相应值
switch (columnValue) {
case "值1":
columnValue = "导出值1";
break;
case "值2":
columnValue = "导出值2";
break;
default:
columnValue = "默认导出值";
break;
}
data.put("COLUMNNAME" + DataSourceEngine.AWS_DW_FIXED_CLOMUN_SHOW_RULE_SUFFIX, columnValue);
}
}
}
Seven
010-62962343-690
liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区