扩展事件

事件

Java触发器是执行后端Java代码逻辑的容器,在客户端图表页面加载时被触发,由开发者通过Java程序影响视图页面显示内容。

说明
触发器类型 各种事件名称,不同的事件要求开发人员实现的接口不同,每个事件只允许注册一个类
Java类 一个遵循AWS事件接口实现的Java程序,格式:类路径+类名
注册 将指定的Java类注册到组件,多次为同一个组件执行【注册】等同修改
删除 将Java类从一个事件中移走

统计图加载前

  • 接口 com.actionsoft.bpms.dashboard.design.event.AbstractDashboardBeforeLoadEvent
  • 示例
import com.actionsoft.bpms.server.UserContext;
import com.alibaba.fastjson.JSONObject;


/**
 *统计图加载前的触发器
 *
 * @param me 用户上下文
 * @param optionJson 操作统计图配置
 * @return JSONObject
 * @param extAttributes 预留扩展属性
 * 说明:1.必须继承抽象类 com.actionsoft.bpms.dashboard.design.event.AbstractDashboardBeforeLoadEvent
 * 2.示例说明:修改统计图图例属性
 */
public class ViewLoadBefore extends AbstractDashboardBeforeLoadEvent {
@Override
public JSONObject execute(UserContext me, JSONObject optionJson, Map<String,Object> extAttributes) {
 JSONObject legend = optionJson.getJSONObject("legend");
if(legend != null){
 JSONObject textStyle = new JSONObject();
 textStyle.put("color","#000000"); //设置字体颜色
 textStyle.put("fontSize","30"); //设置字体字号
 legend.put("textStyle",textStyle);
}
 optionJson.put("legend",legend);
return optionJson;
}
}

格式化SQl语句

  • 接口 com.actionsoft.bpms.dashboard.design.event.AbstractDashboardBeforeLoadEvent
  • 示例
import java.util.Map;
import com.actionsoft.bpms.dashboard.exec.component.WidgetView;
import com.actionsoft.bpms.server.UserContext;

public class DashboardFormatSQLEvent extends AbstractDashboardFormatSQLEvent {

/**
* 格式化SQL语句的触发器
*
* @param me 用户上下文
* @param view 组件对象
* @param sql sql语句
* @param extAttributes 预留扩展属性
* @return 格式化好的sql语句
* 说明:1.必须继承抽象类 com.actionsoft.bpms.dashboard.design.event.AbstractDashboardFormatSQLEvent
* 2.示例说明:只有admin用户能够查询所有数据,其他用户只能查看自己创建的信息
*/

public String formatSQL(UserContext me, WidgetView view, String sql, Map<String,Object> extAttributes) {
if (!"admin".equals(me.getUID())) {
sql = sql.replace("1=1", "createuser = '" + me.getUID() + "'");
}
// 如果需要改变查询条件的值
Map<String, Object> sqlParam = view.getDatagrid().getSqlParams();
sqlParam.put("NAME", "森林好小子");// 注意多个同名参数是以NAME,NAME0,NAME1,NAME2...做为key来存放值
return sql;
}
}

URL外链

复制链接,方便用户在其他地方部署使用



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区