关于EAS 套打配置审批结果信息的相关思路

来源:互联网 发布:两个移动硬盘对拷数据 编辑:程序博客网 时间:2024/05/16 18:09
在我们配置套打开发的时候,有时候我们需要单据流程的审批结果信息,对于有的流程我们可能异常终止过,我们如果需要获取当前的审批结果信息的话的情况,我们可以参考一下几点思路

1、首先需要在套打管理中新增一个动态元数据 其中名称、别名可以自定义

2、在字段列表中添加我们需要套打出来的字段 比如 审批人、审批结果、审批意见  类型(String)

3、在我们的套打模版(套打设计器中添加审批意见元素据)————数据——添加元数据——套打元素据,选择我们的审批元数据
4、在我们的editUI中编写代码(重写方法,一级对应的sql)    public void actionPrint_actionPerformed(ActionEvent e) throws Exception {          ArrayList idList = new ArrayList();            if (editData != null && !StringUtils.isEmpty(editData.getString("id"))) {                idList.add(editData.getString("id"));            }            if (idList == null || idList.size() == 0 || getTDQueryPK() == null || getTDFileName() == null)                return;            MyDataProvider data = new MyDataProvider();            com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper appHlp = new com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper();            appHlp.printPreview(getTDFileName(), data, javax.swing.SwingUtilities.getWindowAncestor(this));        super.actionPrint_actionPerformed(e);    }    public void actionPrintPreview_actionPerformed(ActionEvent e)            throws Exception {          ArrayList idList = new ArrayList();            if (editData != null && !StringUtils.isEmpty(editData.getString("id"))) {                idList.add(editData.getString("id"));            }            if (idList == null || idList.size() == 0 || getTDQueryPK() == null || getTDFileName() == null)                return;            MyDataProvider data = new MyDataProvider();            com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper appHlp = new com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper();            appHlp.printPreview(getTDFileName(), data, javax.swing.SwingUtilities.getWindowAncestor(this));        super.actionPrintPreview_actionPerformed(e);    }        public class MyDataProvider extends AbstractPrintDataProvider{                @Override        public IRowSet getData(R1PrintDataSource dataSource) throws Exception {            IRowSet irow = null;            String curBillID = editData.getId().toString();            IQueryExecutor iqec = null;              FilterInfo filterInfo = new FilterInfo();              EntityViewInfo viewInfo = new EntityViewInfo();             if("PurchaseRequestBillQuery.bos-query".equals(dataSource.getId())){                iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK(                          "com.kingdee.eas.custom.office.purchase.app",                          "PurchaseRequestBillQuery"));                  filterInfo.getFilterItems().add(                          new FilterItemInfo("id", curBillID,                                  CompareType.EQUALS));                  viewInfo.setFilter(filterInfo);                  iqec.setObjectView(viewInfo);                  iqec.option().isAutoTranslateBoolean = true;                  iqec.option().isAutoTranslateEnum = true;                                              try {                    irow = iqec.executeQuery();                } catch (BOSException e) {                    MsgBox.showInfo("获取套打数据有误:"+e.getMessage());                }                                            }             if("PurchaseRequestAppove".equals(dataSource.getId())){                FilterInfo filter= WfUtils.getApproveFilter(curBillID);                String filterSql=filter.toSql();                filterSql=filterSql.substring(filterSql.indexOf("IN"));                StringBuffer sql = new StringBuffer();                sql.append("SELECT ");                 sql.append("A.FID AS billID2,")                    .append("A.FCreateTime as auditDate,")                    .append("A.FIsPass  as auditResult,")                    .append("B.FName_l2 as auditPerson,")                    .append("A.FOpinion_l2 as auditAdvise");                sql.append(" FROM T_BAS_MultiApprove A")                    .append(" INNER JOIN T_PM_User   B ON A.FCreatorID = B.FID")                    .append(" INNER JOIN T_BD_Person   C ON B.FPersonId = C.FID");                                sql.append(" where A.FBillID='").append(curBillID).append("' AND fstatus = 1  and A.fassignmentid ").append(filterSql).append(" order by A.FCreateTime");                                                ISQLExecutor isexe = SQLExecutorFactory.getRemoteInstance(sql.toString());                try {                    irow = isexe.executeSQL();                    return irow;                } catch (BOSException e) {                    MsgBox.showInfo("获取套打数据有误:"+e.getMessage());                }            }             if("PurchaseRequestBillR1Query".equals(dataSource.getId())){                iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK(                          "com.kingdee.eas.custom.office.purchase.app",                          "PurchaseRequestBillR1Query"));                  filterInfo.getFilterItems().add(                          new FilterItemInfo("id", curBillID,                                  CompareType.EQUALS));                  viewInfo.setFilter(filterInfo);                  iqec.setObjectView(viewInfo);                  iqec.option().isAutoTranslateBoolean = true;                  iqec.option().isAutoTranslateEnum = true;                                              try {                    irow = iqec.executeQuery();                } catch (BOSException e) {                    MsgBox.showInfo("获取套打数据有误:"+e.getMessage());                }            }             return irow;                }            }

原创粉丝点击