单据列表如何取消合并单据头的行合并原创
金蝶云社区-云社区用户25F50226
云社区用户25F50226
5人赞赏了该文章 31次浏览 未经作者许可,禁止转载编辑于2024年12月19日 14:45:44

单据列表的行合并是根据主键来得这个时候我们就要去设置id的不同 

@Override
public void packageData(PackageDataEvent e) {
    super.packageData(e);
    if (e.getSource() instanceof PKColumnDesc &&"hx_aviationmaterials.id".equals(((PKColumnDesc) e.getSource()).getKey())){
        DynamicObject rowData = e.getRowData();
        DynamicProperty property = rowData.getDynamicObjectType().getProperty("entryentity.id");
        if (property == null){
            return;
        }
       e.setFormatValue(String.valueOf( rowData.getLong("id")-rowData.getLong("entryentity.id")) );
    }
}
可以根据主键id-分录 id 得到一个唯一主键值

这时候会有一个问题 就是选择行得时候回出现问题

@Override
public void selectRowsChange(SelectRowsEvent evt) {
    String showentry = getPageCache().get("showentry");
    if("false".equals(showentry)){
        return;
    }
    BillList billList = getControl("billlistap");

    List<List<Object>> listRows = (List)billList.getEntryState().get("selDatas");
    for (List<Object> listRow : listRows) {
        Object id = listRow.get(0);
        Object eId = listRow.get(1);
        Long pk = Long.valueOf((String) id);
        Long epk = Long.valueOf((String) eId);
        listRow.set(0,String.valueOf(pk+epk));
    }
}
再选择行得时候我们把主键恢复 这样就可以了


图标赞 5
5人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!