1)单据体没有记录,默认创建一行
@Override
Public void afterBindData(EventObject e) {
int rowCount1 = this.getModel().getEntryRowCount("accountentryentity");
if (rowCount1 == 0) {
this.getModel().batchCreateNewEntryRow("accountentryentity", 1);
}
}
2)获取单据体当前选中的记录行号
// 获取单项中的或多选中的第一个行号 allSelectRows[0]
// 参数设置:字段,值,行号
this.getModel().setValue("enable", (Object) 1, allSelectRows[0]);
3)对单据体中列的内容文字进行颜色渲染
a)进入详情时颜色渲染
@Override public void afterBindData(EventObject e) {
super.afterBindData(e);
EntryGrid grid = this.getView().getControl("versionentryentity");
List<CellStyle> cellStyles = new ArrayList<CellStyle>();
// 获取单据体所有行记录
DynamicObjectCollection rows = this.getModel().getEntryEntity("versionentryentity");
int size = rows.size();
for(int i = 0;i < size; i++)
{ String value = (String)this.getModel().getValue("combofield", i);
if("0".equals(value)) {
// 禁用
CellStyle item = new CellStyle();
// 字段标识
item.setFieldKey("combofield");
// 颜色
item.setForeColor("red");
// 行号
item.setRow(i);
cellStyles.add(item);
} else if ("1".equals(value)) {
CellStyle item = new CellStyle();
item.setFieldKey("combofield");
item.setForeColor("green");
item.setRow(i);
cellStyles.add(item);
}
}
grid.setCellStyle(cellStyles); }
}
b)按钮点击时颜色渲染
@Override public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
if (StringUtils.equals(evt.getItemKey(), KEY_BUTTON_DISENABLE)) {
// 点击‘禁用’按钮
EntryGrid grid = this.getView().getControl("versionentryentity");
int[] allSelectRows = grid.getSelectRows();
if (allSelectRows.length == 0) {
this.getView().showTipNotification("请选中一行再进行操作。");
}
for (int item : allSelectRows) {
this.getModel().setValue("combofield", (Object) 0, item);
// 页面渲染文字颜色
setCellStyle("versionentryentity", "combofield", item, "red");
}
}
// 对单据体某行某字段的文字进行颜色渲染
void setCellStyle(String entryName, String fieldKey, int rownum, String color) {
EntryGrid grid = this.getView().getControl(entryName);
CellStyle item = new CellStyle();
item.setFieldKey(fieldKey);
item.setRow(rownum);
item.setForeColor(color);
List<CellStyle> cellStyles = new ArrayList<CellStyle>();
cellStyles.add(item);
grid.setCellStyle(cellStyles);
}
推荐阅读