EAS多分录套打设置
多分录的单据在做套打时,一般都有好几个Query,可通过下面方法做相应设置:
public void actionPrint_actionPerformed(ActionEvent e) throws Exception {// super.actionPrint_actionPerformed(e);if (editData.getId() != null) {String id = editData.getId().toString();DataProvider data = new DataProvider(id);KDNoteHelper appHlp = new KDNoteHelper();appHlp.print("bim/custom/classmanage/reportclass/Reportdaxiaoban",data, javax.swing.SwingUtilities.getWindowAncestor(this));} else {MsgBox.showWarning("请先保存单据,再点打印!");}
public class DataProvider implements BOSQueryDelegate {private static final Logger logger = CoreUIObject.getLogger(AbstractFrozenDaxiaobanEditUI.class);private String billId;public DataProvider(String billId) {this.billId = billId;}public IRowSet execute(BOSQueryDataSource ds) {//IRowSet rs = null;//try {IQueryExecutor iqec = null;FilterInfo filterInfo = new FilterInfo();EntityViewInfo viewInfo = new EntityViewInfo();if (ds.getID().equals("BillQuery")) {iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.custom.test.app","BillQuery"));filterInfo.getFilterItems().add(new FilterItemInfo("id", this.billId,CompareType.EQUALS));viewInfo.setFilter(filterInfo);iqec.setObjectView(viewInfo);iqec.option().isAutoTranslateBoolean = true;iqec.option().isAutoTranslateEnum = true;//rs = iqec.executeQuery();}else if (ds.getID().equals("Entry2Query")) {iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.custom.test.app","Entry2Query"));filterInfo.getFilterItems().add(new FilterItemInfo("parentid", this.billId,CompareType.EQUALS));viewInfo.setFilter(filterInfo);iqec.setObjectView(viewInfo);iqec.option().isAutoTranslateBoolean = true;iqec.option().isAutoTranslateEnum = true;//rs = iqec.executeQuery();} else if (ds.getID().equals("EntryQuery")) {iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.custom.test.app","EntryQuery"));filterInfo.getFilterItems().add(new FilterItemInfo("parentid", this.billId,CompareType.EQUALS));viewInfo.setFilter(filterInfo);iqec.setObjectView(viewInfo);iqec.option().isAutoTranslateBoolean = true;iqec.option().isAutoTranslateEnum = true;//rs = iqec.executeQuery();} else {logger.info("==============其他执行,ds.getID()====" + ds.getID());}} catch (Exception ex) {ex.printStackTrace();}int rowcount = rs.size();logger.info("rs.size====" + rowcount);return rs;}}
注:parentid是新建Query中的字段名称,可做相应的修改。