单据体的一些常用方法原创
金蝶云社区-超华
超华
0人赞赏了该文章 695次浏览 未经作者许可,禁止转载编辑于2023年01月13日 15:12:31

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);

 }



赞 0