在我们配置套打开发的时候,有时候我们需要单据流程的审批结果信息,对于有的流程我们可能异常终止过,我们如果需要获取当前的审批结果信息的话的情况,我们可以参考一下几点思路
1、首先需要在套打管理中新增一个动态元数据 其中名称、别名可以自定义
2、在字段列表中添加我们需要套打出来的字段 比如 审批人、审批结果、审批意见 类型(String)
3、在我们的套打模版(套打设计器中添加审批意见元素据)————数据——添加元数据——套打元素据,选择我们的审批元数据
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;
}
}