@Override
public void actionPrintPreview_actionPerformed(ActionEvent e)
throws Exception {
if(editData!=null && editData.getId()!=null){
List idList=new ArrayList();
idList.add(editData.getId().toString());
BOSQueryDelegate data = new ExampleProvider(idList);
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));
}else{
MsgBox.showInfo("请先保存单据!");
abort();
}
}
@Override
public void actionPrint_actionPerformed(ActionEvent e) throws Exception {
if(editData!=null && editData.getId()!=null){
List idList=new ArrayList();
idList.add(editData.getId().toString());
BOSQueryDelegate data = new ExampleProvider(idList);
com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper appHlp = new com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper();
appHlp.print(getTDFileName(), data, javax.swing.SwingUtilities.getWindowAncestor(this));
}else{
MsgBox.showInfo("请先保存单据!");
abort();
}
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.jxj.eas.util.app.DbUtil;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.ctrl.kdf.data.datasource.BOSQueryDataSource;
import com.kingdee.bos.ctrl.kdf.data.impl.BOSQueryDelegate;
import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
import com.kingdee.bos.dao.query.IQueryExecutor;
import com.kingdee.bos.dao.query.QueryExecutorFactory;
import com.kingdee.bos.metadata.MetaDataPK;
import com.kingdee.bos.metadata.data.SortType;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.entity.SorterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.eas.base.multiapprove.SqlFacadeFactory;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.znw.lt.baseData.storage.IWarehouseLT;
import com.kingdee.eas.znw.lt.baseData.storage.WarehouseLTFactory;
import com.kingdee.eas.znw.lt.bup.BuyerPurSalContractConsigneeCollection;
import com.kingdee.eas.znw.lt.bup.BuyerPurSalContractConsigneeFactory;
import com.kingdee.eas.znw.lt.bup.BuyerPurSalContractConsigneeInfo;
import com.kingdee.eas.znw.lt.bup.IBuyerPurSalContractConsignee;
import com.kingdee.eas.znw.utils.utilPack.znwUtilClient;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.util.StringUtils;
public class ExampleProvider implements BOSQueryDelegate {
private Set ids = null;
public ExampleProvider(List listId) {
this.ids = new HashSet(listId);
}
public IRowSet execute(BOSQueryDataSource bds) {
IRowSet iRowSet = null;
try {
IQueryExecutor exec = null;
EntityViewInfo ev = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
if(bds.getID().equalsIgnoreCase("PurchaseContractPrintQuery")){
// 动态查询执行器
exec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.sep.app.PurchaseContractPrintQuery"));
// 自动转换查询中的枚举字段
exec.option().isAutoTranslateEnum = true;
// 构造过滤条件
filter.getFilterItems().add(new FilterItemInfo("id", ids, CompareType.INCLUDE));
ev.setFilter(filter);
// 增加排序字段(可选)
SorterItemInfo sorter = new SorterItemInfo("number");
sorter.setSortType(SortType.ASCEND);
ev.getSorter().clear();
ev.getSorter().add(sorter); //排序
exec.setObjectView(ev);
exec.option().isAutoTranslateBoolean = true;
// 执行query,返回结果集
// 可对结果集进行数据处理在返回
iRowSet = exec.executeQuery();
iRowSet = updatePurchaseContract(iRowSet,"CT_ZNW_PurchaseContractEntry");
}else if(bds.getID().equalsIgnoreCase("DeliveryNoticeBillPrintQuery")){
exec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.im.inv.app.DeliveryNoticeBillPrintQuery"));
// 自动转换查询中的枚举字段
exec.option().isAutoTranslateEnum = true;
// 构造过滤条件
filter.getFilterItems().add(new FilterItemInfo("id", ids, CompareType.INCLUDE));
ev.setFilter(filter);
exec.setObjectView(ev);
exec.option().isAutoTranslateBoolean = true;
// 执行query,返回结果集
// 可对结果集进行数据处理在返回
iRowSet = exec.executeQuery();
while(iRowSet.next()){
String id= iRowSet.getString("warehouse.id");
String sql="select CFContactsName,CFContactsTel,CFMoveTel,CFFax from CT_STO_WarehouseLTEntry where fparentid='"+id+"'";
IRowSet rs= znwUtilClient.getRs(sql);
if(rs.next()){
iRowSet.updateString("warehouseContact", rs.getString("CFContactsName"));
iRowSet.updateString("warehouseConTel", rs.getString("CFContactsTel"));
iRowSet.updateString("mobilePhone", rs.getString("CFMoveTel"));
iRowSet.updateString("fax", rs.getString("CFFax"));
}else{
iRowSet.updateString("warehouseContact", "");
iRowSet.updateString("warehouseConTel","");
iRowSet.updateString("mobilePhone", "");
iRowSet.updateString("fax","");
}
}
}else if(bds.getID().equalsIgnoreCase("NewSaleContractPrintQuery")){
exec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.sep.app.NewSaleContractPrintQuery"));
// 自动转换查询中的枚举字段
exec.option().isAutoTranslateEnum = true;
// 构造过滤条件
filter.getFilterItems().add(new FilterItemInfo("id", ids, CompareType.INCLUDE));
ev.setFilter(filter);
exec.setObjectView(ev);
exec.option().isAutoTranslateBoolean = true;
// 执行query,返回结果集
// 可对结果集进行数据处理在返回
iRowSet = exec.executeQuery();
}else if(bds.getID().equalsIgnoreCase("SaleContractPrintQuery")){
exec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.bup.app.SaleContractPrintQuery"));
// 自动转换查询中的枚举字段
exec.option().isAutoTranslateEnum = true;
// 构造过滤条件
filter.getFilterItems().add(new FilterItemInfo("id", ids, CompareType.INCLUDE));
ev.setFilter(filter);
exec.setObjectView(ev);
exec.option().isAutoTranslateBoolean = true;
// 执行query,返回结果集
// 可对结果集进行数据处理在返回
iRowSet = exec.executeQuery();
}else if(bds.getID().equalsIgnoreCase("QuickCreateBillQuery")){
exec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK("com.kingdee.eas.settle.bizbill.app.QuickCreateBillQuery"));
// 自动转换查询中的枚举字段
exec.option().isAutoTranslateEnum = true;
// 构造过滤条件
filter.getFilterItems().add(new FilterItemInfo("id", ids, CompareType.INCLUDE));
ev.setFilter(filter);
exec.setObjectView(ev);
exec.option().isAutoTranslateBoolean = true;
// 执行query,返回结果集
// 可对结果集进行数据处理在返回
iRowSet = exec.executeQuery();
}
} catch (BOSException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (EASBizException e) {
e.printStackTrace();
}
return iRowSet;
}
private IRowSet updatePurchaseContract(IRowSet rowSet,String tableName) throws SQLException, EASBizException, BOSException {
while(rowSet.next()){
String id= rowSet.getString("id");
StringBuffer buff=new StringBuffer();
String sql="select CFQty,CFTransactionPrice from "+tableName+" where fparentid='"+id+"'";
IRowSet rs= znwUtilClient.getRs(sql);
while(rs.next()){
BigDecimal qty= rs.getBigDecimal("CFQty");
BigDecimal transactionPrice=rs.getBigDecimal("CFTransactionPrice");
buff.append(qty).append(" × ").append(transactionPrice);
buff.append(" ");
}
rowSet.updateString("description", buff.toString());
}
return rowSet;
}
}