在列表页面注册单据列表插件(两种方法,推荐方法二)
一 通过插件控制,但只对列表第一页有效
插件要继承AbstractListPlugin
public class SetFieldColorPlugin extends AbstractListPlugin {
//加载数据后触发
@Override
public void afterBindData(EventObject e) {
//固定写法,获取列表控件都使用这个billlistap
BillList billList = this.getControl("billlistap");
//获取当前页列表的所有行,下一页获取不到
ListSelectedRowCollection allList = billList.getCurrentListAllRowCollection();
List<CellStyle> cellStyles = new ArrayList<>();
for(int i=0;i<allList.size();i++){
ListSelectedRow row = allList.get(i);
//获取行数据的PK
Object primaryKeyValue = row.getPrimaryKeyValue();
DynamicObject object = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "单据标识");
//获取要判断的字段
String exeResult = object.getString("字段标识");
//这里将值为success的字段的颜色设置为绿色,failure的字段设置为红色
if(StringUtils.equals(exeResult,"success")){
CellStyle style = new CellStyle();
//设置字段名
style.setFieldKey("字段标识");
//设置行号
style.setRow(i);
//设置前景色
style.setForeColor("LimeGreen");
style.setFontSize(13);
cellStyles.add(style);
}else{
CellStyle style = new CellStyle();
style.setFieldKey("字段标识");
//设置行号
style.setRow(i);
//设置前景色
style.setForeColor("Red");
style.setFontSize(13);
cellStyles.add(style);
}
}
billList.setCellStyle(cellStyles);
}
}
二 通过单据列表的界面规则进行配置,比较简单,推荐使用这种方式
在列表界面
找到表格视图
,配置界面规则