/** * 会计凭证打印对象 */ package com.amarsoft.app.accounting.print; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.amarsoft.app.base.businessobject.BusinessObject; import com.amarsoft.app.base.businessobject.BusinessObjectManager; import com.amarsoft.app.base.config.impl.TransactionConfig; import com.amarsoft.app.base.trans.TransactionHelper; import com.amarsoft.app.base.util.BUSINESSOBJECT_CONSTANTS; import com.amarsoft.are.util.DataConvert; import com.amarsoft.awe.util.Transaction; /** * @author xjzhao * @date 2011-03-24 * * */ public class PrintObject { /* * 生成数据对象 */ public ArrayList createData(Transaction Sqlca,String sTransCode,String DocumentType,String DocumentSerialNo,String TransSerialNo) throws Exception { ArrayList data = new ArrayList(); BusinessObjectManager bom = BusinessObjectManager.createBusinessObjectManager(); BusinessObject transaction = bom.keyLoadBusinessObject("jbo.acct.ACCT_TRANSACTION", TransSerialNo); String sql = ""; if("1".equals(transaction.getString("TransStatus")) || "2".equals(transaction.getString("TransStatus"))){ //已执行的交易从数据库中取 sql = "select direction,exaccountcodeno,amount from acct_subledger_detail where transserialno='"+TransSerialNo+"' and status='1' and exbooktype='B' order by sortno"; PreparedStatement ps = Sqlca.getConnection().prepareStatement(sql); ResultSet rs = ps.executeQuery(); while(rs.next()) { PrintTemplete pt = new PrintTemplete(); pt.setSystemID("CORE"); pt.setDirection(DataConvert.toString(rs.getString(1))); pt.setSubjectno(DataConvert.toString(rs.getString(2))); pt.setAmount(DataConvert.toMoney(rs.getDouble(3))); pt.setDirectionAccNo(""); pt.setDirectionAccName(""); data.add(pt); } ps.close(); rs.close(); }else{ //未执行的预执行 TransactionHelper.loadTransaction(transaction, bom); transaction = TransactionHelper.executeTransaction(transaction, bom); List detailList = transaction.getBusinessObjectsBySql(BUSINESSOBJECT_CONSTANTS.subledger_detail, "status='1' and exbooktype='B' order by sortno"); for(BusinessObject detail : detailList){ PrintTemplete pt = new PrintTemplete(); pt.setSystemID("CORE"); pt.setDirection(detail.getString("Direction")); pt.setSubjectno(detail.getString("ExAccountCodeNo")); pt.setAmount(detail.getString("Amount")); pt.setDirectionAccNo(""); pt.setDirectionAccName(""); data.add(pt); } } return data; } }