凭证套打类,注意如何更新IRowSet结果集。

来源:互联网 发布:c语言 手册 编辑:程序博客网 时间:2024/04/29 18:13
/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.package com.kingdee.eas.fi.gl.client;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.IObjectValue;import com.kingdee.bos.dao.ormapping.ObjectUuidPK;import com.kingdee.bos.util.BOSUuid;import com.kingdee.eas.basedata.assistant.*;import com.kingdee.eas.basedata.master.account.*;import com.kingdee.eas.basedata.master.account.AccountProperty;import com.kingdee.eas.basedata.master.auxacct.*;import com.kingdee.eas.basedata.master.cssp.CustomerInfo;import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;import com.kingdee.eas.common.EASBizException;import com.kingdee.eas.common.SysConstant;import com.kingdee.eas.common.client.SysContext;import com.kingdee.eas.fi.gl.*;import com.kingdee.eas.fi.gl.common.GLResUtil;import com.kingdee.eas.util.SysUtil;import com.kingdee.eas.util.client.EASResource;import com.kingdee.jdbc.rowset.IRowSet;import com.kingdee.jdbc.rowset.IRowSetMetaData;import com.kingdee.jdbc.rowset.impl.ColInfo;import com.kingdee.jdbc.rowset.impl.DynamicRowSet;import java.math.BigDecimal;import java.sql.Date;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.*;import org.apache.velocity.util.StringUtils;// Referenced classes of package com.kingdee.eas.fi.gl.client://            VoucherEditParampublic class VoucherRowSetProvider    implements BOSQueryDelegate{    public VoucherRowSetProvider(VoucherCollection vc, VoucherEditParam editParam)    {        vchType = null;        this.editParam = null;        needCpmputeAsst = false;        vchCol = vc;        this.editParam = editParam;    }    public IRowSet execute(BOSQueryDataSource ds)    {        IRowSet rs = null;        int i = 4;        do        {            if(i > 30)                break;            if(("dsStandard" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet(false, i);                break;            }            if(("flowStandard" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSetFlow(false, i);                break;            }            if(("ds1_Standard" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet(true, i);                break;            }            if(("flow1_Standard" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSetFlow(true, i);                break;            }            if(("ds2_subtotal" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet2(i);                break;            }            if(("ds" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet3(i);                break;            }            if(("voucher_ds" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet4(i);                break;            }            if(("vchFlow" + i).equalsIgnoreCase(ds.getID()))            {                rs = getRowSet5(i);                break;            }            i++;        } while(true);        return rs;    }    public IRowSet getRowSet(boolean pltype, int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        boolean bInserRow = false;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                if(pltype && computerVoucherType(vch))                    vch = changeVoucher(vch);                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int entrySize = vch.getEntries().size();                int voucherCount = 0;                if(entrySize % rowLineCount == 0)                    voucherCount = entrySize / rowLineCount;                else                    voucherCount = entrySize / rowLineCount + 1;                int entryCount = 1;                while(itrEntry.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itrEntry.next();                    EntryDC dc = e.getEntryDC();                    drs.moveToInsertRow();                    clearRow(drs);                    fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                    fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                    entryCount++;                    int page = 0;                    if(entryCount % rowLineCount == 0)                        page = entryCount / rowLineCount;                    else                        page = entryCount / rowLineCount + 1;                    drs.updateString("pageCount", page + "/" + voucherCount);                    drs.updateString("pageCurrent", page + "");                    drs.updateString("pageTotal", "" + voucherCount);                    drs.updateString("bizStatus", vch.getBizStatus().toString());                    drs.updateString("attachments", Integer.toString(vch.getAttachments()));                    drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                    if(page == voucherCount)                    {                        drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                        drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                        drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                        drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                    }                    drs.insertRow();                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    public IRowSet getRowSetFlow(boolean pltype, int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        CashflowRecordCollection cashflowRecordsCollection = null;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                if(pltype && computerVoucherType(vch))                    vch = changeVoucher(vch);                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int entrySize = vch.getEntries().size();                int voucherCount = 0;                if(entrySize % rowLineCount == 0)                    voucherCount = entrySize / rowLineCount;                else                    voucherCount = entrySize / rowLineCount + 1;                int entryCount = 1;                while(itrEntry.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itrEntry.next();                    EntryDC dc = e.getEntryDC();                    drs.moveToInsertRow();                    clearRow(drs);                    fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                    fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                    entryCount++;                    int page = 0;                    if(entryCount % rowLineCount == 0)                        page = entryCount / rowLineCount;                    else                        page = entryCount / rowLineCount + 1;                    drs.updateString("pageCount", page + "/" + voucherCount);                    drs.updateString("pageCurrent", page + "");                    drs.updateString("pageTotal", "" + voucherCount);                    drs.updateString("bizStatus", vch.getBizStatus().toString());                    drs.updateString("attachments", Integer.toString(vch.getAttachments()));                    drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                    if(page == voucherCount)                    {                        drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                        drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                        drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                        drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                    }                    if(chkPrintCashFlow)                        printCashflow(drs, e, null, lcpre);                    drs.insertRow();                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    public IRowSet getRowSet2(int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        IAssistantHG assistantHG = null;        IVoucherAssistRecord asstre = null;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itr = vch.getEntries().iterator();                int entrySize = 0;                int seq = 0;                while(itr.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itr.next();                    seq = e.getSeq();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                        entrySize += assitCollection.size();                    else                        entrySize++;                }                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int voucherCount = 0;                if((entrySize + seq) % rowLineCount == 0)                    voucherCount = (entrySize + seq) / rowLineCount;                else                    voucherCount = (entrySize + seq) / rowLineCount + 1;                int entryCount = 1;                while(itrEntry.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itrEntry.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    EntryDC dc = e.getEntryDC();                    int asstCount = 0;                    int page;                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        for(Iterator itrASST = assitCollection.iterator(); itrASST.hasNext(); drs.insertRow())                        {                            VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                            drs.moveToInsertRow();                            clearRow(drs);                            fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                            fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                            if(chkAssistant)                                fillVoucherASSTData(r, drs, df, lcpre, dc, assistantHG, asstre, e);                            if(++asstCount > 1)                            {                                drs.updateString("e_seq", " ");                                drs.updateString("e_account", null);                                drs.updateString("e_account1", null);                            }                            entryCount++;                             page = 0;                            if(entryCount % rowLineCount == 0)                                page = entryCount / rowLineCount;                            else                                page = entryCount / rowLineCount + 1;                            drs.updateString("pageCount", page + "/" + voucherCount);                            drs.updateString("pageCurrent", page + "");                            drs.updateString("pageTotal", "" + voucherCount);                            drs.updateString("bizStatus", vch.getBizStatus().toString());                            drs.updateString("attachments", Integer.toString(vch.getAttachments()));                            drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                            if(page == voucherCount)                            {                                drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                                drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                                drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("sum", "");                            }                        }                    } else                    {                        drs.moveToInsertRow();                        clearRow(drs);                        fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                        fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                        if(EntryDC.DEBIT.equals(dc))                        {                            drs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        } else                        {                            drs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        }                        entryCount++;                        page = 0;                        if(entryCount % rowLineCount == 0)                            page = entryCount / rowLineCount;                        else                            page = entryCount / rowLineCount + 1;                        drs.updateString("pageCount", page + "/" + voucherCount);                        drs.updateString("pageCurrent", page + "");                        drs.updateString("pageTotal", "" + voucherCount);                        drs.updateString("bizStatus", vch.getBizStatus().toString());                        drs.updateString("attachments", Integer.toString(vch.getAttachments()));                        drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                        if(page == voucherCount)                        {                            drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                            drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                            drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("sum", "");                        }                        drs.insertRow();                    }                    drs.moveToInsertRow();                    drs.updateString("e_seq", "");                    drs.updateString("e_description", "");                    drs.updateString("e_account", "");                    drs.updateString("e_account1", "");                    drs.updateString("zc_account", "");                    drs.updateString("e_currency", "");                    drs.updateString("e_measureUnitName", "");                    drs.updateString("e_measureUnitNumber", "");                    drs.updateString("periodYear", "");                    drs.updateString("periodNumber", "");                    drs.updateString("bizDate", "");                    drs.updateString("bookedDate", "");                    drs.updateString("bookedDateYear", "");                    drs.updateString("bookedDateMonth", "");                    drs.updateString("r_description", "");                    drs.updateString("r_settlementType", "");                    drs.updateString("r_settlementCode", "");                    drs.updateString("r_bizNumber", "");                    drs.updateString("r_originalAmount", "");                    drs.updateString("r_originalAmount", "");                    drs.updateString("r_originalAmountDebit", "");                    drs.updateString("r_localAmount", "");                    drs.updateString("r_localAmountDebit", "");                    drs.updateString("r_localAmountCredit", "");                    drs.updateString("r_reportingAmount", "");                    drs.updateString("r_reportingAmountDebit", "");                    drs.updateString("r_reportingAmountCredit", "");                    drs.updateString("r_measureUnitName", "");                    drs.updateString("r_measureUnitNumber", "");                    drs.updateString("r_price", "");                    drs.updateString("r_quantity", "");                    drs.updateString("r_bizDate", "");                    drs.updateString("r_invoice", "");                    drs.updateString("r_endDate", "");                    drs.updateString("r_assGrp", "");                    drs.updateString("r_longName", "");                    drs.updateString("r_accountAsst", "");                    drs.updateString("r_AsstHeadNumber", "");                    drs.updateString("r_AsstNumber", "");                    drs.updateString("r_AsstHeadName", "");                    drs.updateString("r_AsstName", "");                    drs.updateString("r_AsstLevelName", "");                    drs.updateString("zc_assGrp", "");                    drs.updateString("c_item", "");                    drs.updateString("c_itemEbb", "");                    drs.updateString("c_primItem", "");                    drs.updateString("c_suppItem", "");                    drs.updateString("c_oppAccount", "");                    drs.updateString("c_originalAmount", "");                    drs.updateString("c_localAmount", "");                    drs.updateString("c_reportingAmount", "");                    drs.updateString("c_primItemName", "");                    drs.updateString("c_suppItemName", "");                    drs.updateString("customer.number", "");                    drs.updateString("customer.name", "");                    drs.updateString("cusNumberName", "");                    drs.updateString("vchId", vchId);                    drs.updateString("e_isoCode", GLResUtil.getRes("subtotal"));                    if(EntryDC.DEBIT.equals(dc))                    {                        drs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                        drs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                        drs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        drs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                        drs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                        drs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                    } else                    {                        drs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                        drs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                        drs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        drs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                        drs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                        drs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                    }                    entryCount++;                    page = 0;                    if(entryCount % rowLineCount == 0)                        page = entryCount / rowLineCount;                    else                        page = entryCount / rowLineCount + 1;                    drs.updateString("pageCount", page + "/" + voucherCount);                    drs.updateString("pageCurrent", page + "");                    drs.updateString("pageTotal", "" + voucherCount);                    drs.updateString("bizStatus", vch.getBizStatus().toString());                    drs.updateString("attachments", Integer.toString(vch.getAttachments()));                    drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                    if(page == voucherCount)                    {                        drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                        drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                        drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                        drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                        drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                        drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                    }                    drs.insertRow();                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    public IRowSet getRowSet3(int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        IAssistantHG assistantHG = null;        IVoucherAssistRecord asstre = null;        VoucherEntryInfo e = null;        CashflowRecordCollection cashflowRecordsCollection = null;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itr = vch.getEntries().iterator();                int entrySize = 0;                while(itr.hasNext())                 {                    e = (VoucherEntryInfo)itr.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                        entrySize += assitCollection.size();                    else                        entrySize++;                }                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int rowCount = 0;                int voucherCount = 0;                if(entrySize % rowLineCount == 0)                    voucherCount = entrySize / rowLineCount;                else                    voucherCount = entrySize / rowLineCount + 1;                int entryCount = 0;                while(itrEntry.hasNext())                 {                    e = (VoucherEntryInfo)itrEntry.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    EntryDC dc = e.getEntryDC();                    int asstCount = 0;                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        Iterator itrASST = assitCollection.iterator();                        while(itrASST.hasNext())                         {                            VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                            drs.moveToInsertRow();                            clearRow(drs);                            fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                            fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                            if(chkAssistant)                                fillVoucherASSTData(r, drs, df, lcpre, dc, assistantHG, asstre, e);                            if(++asstCount > 1)                                drs.updateString("e_seq", " ");                            entryCount++;                            int page = 0;                            if(entryCount % rowLineCount == 0)                                page = entryCount / rowLineCount;                            else                                page = entryCount / rowLineCount + 1;                            drs.updateString("pageCount", page + "/" + voucherCount);                            drs.updateString("pageCurrent", page + "");                            drs.updateString("pageTotal", "" + voucherCount);                            drs.updateString("bizStatus", vch.getBizStatus().toString());                            drs.updateString("attachments", Integer.toString(vch.getAttachments()));                            drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                            if(page == voucherCount)                            {                                drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                                drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                                drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            }                            drs.insertRow();                        }                    } else                    {                        drs.moveToInsertRow();                        clearRow(drs);                        fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                        fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                        if(EntryDC.DEBIT.equals(dc))                        {                            drs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        } else                        {                            drs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        }                        entryCount++;                        int page = 0;                        if(entryCount % rowLineCount == 0)                            page = entryCount / rowLineCount;                        else                            page = entryCount / rowLineCount + 1;                        drs.updateString("pageCount", page + "/" + voucherCount);                        drs.updateString("pageCurrent", page + "");                        drs.updateString("pageTotal", "" + voucherCount);                        drs.updateString("bizStatus", vch.getBizStatus().toString());                        drs.updateString("attachments", Integer.toString(vch.getAttachments()));                        drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                        if(page == voucherCount)                        {                            drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                            drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                            drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                        }                        drs.insertRow();                    }                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    public IRowSet getRowSet4(int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        IAssistantHG assistantHG = null;        IVoucherAssistRecord asstre = null;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itr = vch.getEntries().iterator();                int entrySize = 0;                while(itr.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itr.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                        entrySize += assitCollection.size();                    else                        entrySize++;                }                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int rowCount = 0;                int voucherCount = 0;                if(entrySize % rowLineCount == 0)                    voucherCount = entrySize / rowLineCount;                else                    voucherCount = entrySize / rowLineCount + 1;                int entryCount = 0;                BigDecimal creditTotal = GlUtils.zero;                BigDecimal debitTotal = GlUtils.zero;                HashMap creditmap = new HashMap();                HashMap debitmap = new HashMap();                itr = vch.getEntries().iterator();label0:                do                {                    if(!itr.hasNext())                        break;                    VoucherEntryInfo e = (VoucherEntryInfo)itr.next();                    EntryDC dc = e.getEntryDC();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        Iterator itrASST = assitCollection.iterator();                        do                        {                            int page;                            do                            {                                if(!itrASST.hasNext())                                    continue label0;                                VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                                entryCount++;                                page = 0;                                if(entryCount % rowLineCount == 0)                                    page = entryCount / rowLineCount;                                else                                    page = entryCount / rowLineCount + 1;                                if(entryCount % rowLineCount == 1)                                {                                    creditTotal = GlUtils.zero;                                    debitTotal = GlUtils.zero;                                }                                if(EntryDC.DEBIT.equals(dc))                                    debitTotal = debitTotal.add(r.getLocalAmount());                                else                                    creditTotal = creditTotal.add(r.getLocalAmount());                            } while(entryCount % rowLineCount != 0);                            creditmap.put(String.valueOf(page), creditTotal);                            debitmap.put(String.valueOf(page), debitTotal);                        } while(true);                    }                    entryCount++;                    int page = 0;                    if(entryCount % rowLineCount == 0)                        page = entryCount / rowLineCount;                    else                        page = entryCount / rowLineCount + 1;                    if(entryCount % rowLineCount == 1)                    {                        creditTotal = GlUtils.zero;                        debitTotal = GlUtils.zero;                    }                    if(EntryDC.DEBIT.equals(dc))                        debitTotal = debitTotal.add(e.getLocalAmount());                    else                        creditTotal = creditTotal.add(e.getLocalAmount());                    if(entryCount % rowLineCount == 0)                    {                        creditmap.put(String.valueOf(page), creditTotal);                        debitmap.put(String.valueOf(page), debitTotal);                    }                } while(true);                entryCount = 0;                while(itrEntry.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itrEntry.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    EntryDC dc = e.getEntryDC();                    int asstCount = 0;                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        Iterator itrASST = assitCollection.iterator();                        while(itrASST.hasNext())                         {                            VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                            drs.moveToInsertRow();                            clearRow(drs);                            fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                            fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                            if(chkAssistant)                                fillVoucherASSTData(r, drs, df, lcpre, dc, assistantHG, asstre, e);                            if(++asstCount > 1)                                drs.updateString("e_seq", " ");                            entryCount++;                            int page = 0;                            if(entryCount % rowLineCount == 0)                            {                                page = entryCount / rowLineCount;                            } else                            {                                page = entryCount / rowLineCount + 1;                                if(entryCount % rowLineCount == 1)                                {                                    creditTotal = GlUtils.zero;                                    debitTotal = GlUtils.zero;                                }                            }                            if(EntryDC.DEBIT.equals(dc))                                debitTotal = debitTotal.add(r.getLocalAmount());                            else                                creditTotal = creditTotal.add(r.getLocalAmount());                            drs.updateString("pageCount", page + "/" + voucherCount);                            drs.updateString("pageCurrent", page + "");                            drs.updateString("pageTotal", "" + voucherCount);                            drs.updateString("bizStatus", vch.getBizStatus().toString());                            drs.updateString("attachments", Integer.toString(vch.getAttachments()));                            drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                            if(page == voucherCount)                            {                                drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                                drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                                drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("sum", "");                            } else                            {                                drs.updateString("debitTotal", GlUtils.formatNumber((BigDecimal)debitmap.get(String.valueOf(page)), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber((BigDecimal)creditmap.get(String.valueOf(page)), lcpre));                                drs.updateString("sum", GLResUtil.getRes("subtotal"));                            }                            drs.insertRow();                        }                    } else                    {                        drs.moveToInsertRow();                        clearRow(drs);                        fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                        fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                        if(EntryDC.DEBIT.equals(dc))                        {                            drs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        } else                        {                            drs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        }                        entryCount++;                        int page = 0;                        if(entryCount % rowLineCount == 0)                        {                            page = entryCount / rowLineCount;                        } else                        {                            page = entryCount / rowLineCount + 1;                            if(entryCount % rowLineCount == 1)                            {                                creditTotal = GlUtils.zero;                                debitTotal = GlUtils.zero;                            }                        }                        if(EntryDC.DEBIT.equals(dc))                            debitTotal = debitTotal.add(e.getLocalAmount());                        else                            creditTotal = creditTotal.add(e.getLocalAmount());                        drs.updateString("pageCount", page + "/" + voucherCount);                        drs.updateString("pageCurrent", page + "");                        drs.updateString("pageTotal", "" + voucherCount);                        drs.updateString("bizStatus", vch.getBizStatus().toString());                        drs.updateString("attachments", Integer.toString(vch.getAttachments()));                        drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                        if(page == voucherCount)                        {                            drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                            drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                            drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("sum", "");                        } else                        {                            drs.updateString("debitTotal", GlUtils.formatNumber((BigDecimal)debitmap.get(String.valueOf(page)), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber((BigDecimal)creditmap.get(String.valueOf(page)), lcpre));                            drs.updateString("sum", GLResUtil.getRes("subtotal"));                        }                        drs.insertRow();                    }                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    public IRowSet getRowSet5(int rowLineCount)    {        java.util.Locale locale = SysContext.getSysContext().getLocale();        DateFormat df = new SimpleDateFormat(EASResource.getString("com.kingdee.eas.fi.gl.GLAutoGenerateResource", "20_RptAsstactXBalanceUI"));        DateFormat dft = DateFormat.getDateTimeInstance(2, 2, locale);        int colCount = col.length;        DynamicRowSet drs = null;        IAssistantHG assistantHG = null;        IVoucherAssistRecord asstre = null;        boolean bInserRow = false;        try        {            drs = new DynamicRowSet(colCount);            for(int i = 0; i < colCount; i++)            {                ColInfo ci = new ColInfo();                ci.colType = 12;                ci.columnName = col[i];                ci.nullable = 1;                drs.setColInfo(i + 1, ci);            }            drs.beforeFirst();            Iterator itrVch = vchCol.iterator();            int size = vchCol.size();            BigDecimal allDeit = SysConstant.BIGZERO;            BigDecimal allCret = SysConstant.BIGZERO;            int vchCount = 0;            while(itrVch.hasNext())             {                VoucherInfo vch = (VoucherInfo)itrVch.next();                String vchId = Integer.toString(++vchCount);                CompanyOrgUnitInfo com = vch.getCompany();                CurrencyInfo localCurrency = com.getBaseCurrency();                int lcpre = localCurrency.getPrecision();                CurrencyInfo reportingCurrency = com.getReportCurrency();                int rcpre = reportingCurrency.getPrecision();                allDeit = vch.getLocalDebitAmount();                allCret = vch.getLocalCreditAmount();                Iterator itr = vch.getEntries().iterator();                int entrySize = 0;                while(itr.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itr.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                        entrySize += assitCollection.size();                    else                        entrySize++;                }                Iterator itrEntry = vch.getEntries().iterator();                EntryDC entryDC = null;                int rowCount = 0;                int voucherCount = 0;                if(entrySize % rowLineCount == 0)                    voucherCount = entrySize / rowLineCount;                else                    voucherCount = entrySize / rowLineCount + 1;                int entryCount = 0;                BigDecimal creditTotal = GlUtils.zero;                BigDecimal debitTotal = GlUtils.zero;                HashMap creditmap = new HashMap();                HashMap debitmap = new HashMap();                itr = vch.getEntries().iterator();label0:                do                {                    if(!itr.hasNext())                        break;                    VoucherEntryInfo e = (VoucherEntryInfo)itr.next();                    EntryDC dc = e.getEntryDC();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        Iterator itrASST = assitCollection.iterator();                        do                        {                            int page;                            do                            {                                if(!itrASST.hasNext())                                    continue label0;                                VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                                entryCount++;                                page = 0;                                if(entryCount % rowLineCount == 0)                                    page = entryCount / rowLineCount;                                else                                    page = entryCount / rowLineCount + 1;                                if(entryCount % rowLineCount == 1)                                {                                    creditTotal = GlUtils.zero;                                    debitTotal = GlUtils.zero;                                }                                if(EntryDC.DEBIT.equals(dc))                                    debitTotal = debitTotal.add(r.getLocalAmount());                                else                                    creditTotal = creditTotal.add(r.getLocalAmount());                            } while(entryCount % rowLineCount != 0);                            creditmap.put(String.valueOf(page), creditTotal);                            debitmap.put(String.valueOf(page), debitTotal);                        } while(true);                    }                    entryCount++;                    int page = 0;                    if(entryCount % rowLineCount == 0)                        page = entryCount / rowLineCount;                    else                        page = entryCount / rowLineCount + 1;                    if(entryCount % rowLineCount == 1)                    {                        creditTotal = GlUtils.zero;                        debitTotal = GlUtils.zero;                    }                    if(EntryDC.DEBIT.equals(dc))                        debitTotal = debitTotal.add(e.getLocalAmount());                    else                        creditTotal = creditTotal.add(e.getLocalAmount());                    if(entryCount % rowLineCount == 0)                    {                        creditmap.put(String.valueOf(page), creditTotal);                        debitmap.put(String.valueOf(page), debitTotal);                    }                } while(true);                entryCount = 0;                while(itrEntry.hasNext())                 {                    VoucherEntryInfo e = (VoucherEntryInfo)itrEntry.next();                    VoucherAssistRecordCollection assitCollection = e.getAssistRecords();                    EntryDC dc = e.getEntryDC();                    int asstCount = 0;                    if(assitCollection != null && assitCollection.size() > 0 && chkAssistant)                    {                        Iterator itrASST = assitCollection.iterator();                        while(itrASST.hasNext())                         {                            VoucherAssistRecordInfo r = (VoucherAssistRecordInfo)itrASST.next();                            drs.moveToInsertRow();                            clearRow(drs);                            fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                            fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                            if(chkAssistant)                                fillVoucherASSTData(r, drs, df, lcpre, dc, assistantHG, asstre, e);                            if(++asstCount > 1)                                drs.updateString("e_seq", " ");                            entryCount++;                            int page = 0;                            if(entryCount % rowLineCount == 0)                            {                                page = entryCount / rowLineCount;                            } else                            {                                page = entryCount / rowLineCount + 1;                                if(entryCount % rowLineCount == 1)                                {                                    creditTotal = GlUtils.zero;                                    debitTotal = GlUtils.zero;                                }                            }                            if(EntryDC.DEBIT.equals(dc))                                debitTotal = debitTotal.add(r.getLocalAmount());                            else                                creditTotal = creditTotal.add(r.getLocalAmount());                            drs.updateString("pageCount", page + "/" + voucherCount);                            drs.updateString("pageCurrent", page + "");                            drs.updateString("pageTotal", "" + voucherCount);                            drs.updateString("bizStatus", vch.getBizStatus().toString());                            drs.updateString("attachments", Integer.toString(vch.getAttachments()));                            drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                            if(page == voucherCount)                            {                                drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                                drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                                drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                                drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                                drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                                drs.updateString("sum", "");                            } else                            {                                drs.updateString("debitTotal", GlUtils.formatNumber((BigDecimal)debitmap.get(String.valueOf(page)), lcpre));                                drs.updateString("creditTotal", GlUtils.formatNumber((BigDecimal)creditmap.get(String.valueOf(page)), lcpre));                                drs.updateString("sum", GLResUtil.getRes("subtotal"));                            }                            if(chkPrintCashFlow)                                printCashflow(drs, e, r, lcpre);                            drs.insertRow();                        }                    } else                    {                        drs.moveToInsertRow();                        clearRow(drs);                        fillVoucherHeaderData(vch, drs, df, dft, size, allDeit, allCret);                        fillVoucherEntryData(vchId, e, drs, lcpre, rcpre);                        if(EntryDC.DEBIT.equals(dc))                        {                            drs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        } else                        {                            drs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));                            drs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                            drs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));                            drs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));                        }                        entryCount++;                        int page = 0;                        if(entryCount % rowLineCount == 0)                        {                            page = entryCount / rowLineCount;                        } else                        {                            page = entryCount / rowLineCount + 1;                            if(entryCount % rowLineCount == 1)                            {                                creditTotal = GlUtils.zero;                                debitTotal = GlUtils.zero;                            }                        }                        if(EntryDC.DEBIT.equals(dc))                            debitTotal = debitTotal.add(e.getLocalAmount());                        else                            creditTotal = creditTotal.add(e.getLocalAmount());                        drs.updateString("pageCount", page + "/" + voucherCount);                        drs.updateString("pageCurrent", page + "");                        drs.updateString("pageTotal", "" + voucherCount);                        drs.updateString("bizStatus", vch.getBizStatus().toString());                        drs.updateString("attachments", Integer.toString(vch.getAttachments()));                        drs.updateString("attachmentsChinese", GlUtils.getChineseBig(vch.getAttachments()));                        if(page == voucherCount)                        {                            drs.updateString("debitTotal", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("localAmountDebit", GlUtils.formatNumber(vch.getLocalDebitAmount(), lcpre));                            drs.updateString("localAmountCredit", GlUtils.formatNumber(vch.getLocalCreditAmount(), lcpre));                            drs.updateString("reportingAmountDebit", GlUtils.formatNumber(vch.getReportingDebitAmount(), lcpre));                            drs.updateString("reportingAmountCredit", GlUtils.formatNumber(vch.getReportingCreditAmount(), lcpre));                            drs.updateString("amountTotalChinese", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("amountTotal", GlUtils.getChineseFormat(vch.getLocalCreditAmount(), false));                            drs.updateString("sum", "");                        } else                        {                            drs.updateString("debitTotal", GlUtils.formatNumber((BigDecimal)debitmap.get(String.valueOf(page)), lcpre));                            drs.updateString("creditTotal", GlUtils.formatNumber((BigDecimal)creditmap.get(String.valueOf(page)), lcpre));                            drs.updateString("sum", GLResUtil.getRes("subtotal"));                        }                        if(chkPrintCashFlow)                            printCashflow(drs, e, null, lcpre);                        drs.insertRow();                    }                }            }            drs.beforeFirst();        }        catch(Exception ex)        {            ex.printStackTrace();            return null;        }        return drs;    }    protected static void fillVoucherHeaderData(VoucherInfo vch, IRowSet rs, DateFormat df, DateFormat dft, int size, BigDecimal allDeit, BigDecimal allCret)        throws Exception    {        CompanyOrgUnitInfo com = vch.getCompany();        CurrencyInfo localCurrency = com.getBaseCurrency();        int lcpre = localCurrency.getPrecision();        CurrencyInfo reportingCurrency = com.getReportCurrency();        int rcpre = reportingCurrency.getPrecision();        rs.updateString("company", com.getName());        rs.updateString("companyBaseCurreny", com.getBaseCurrency().getName().toString());        rs.updateString("companyReportCurreny", com.getReportCurrency().getName().toString());        rs.updateString("description", vch.getDescription());        rs.updateString("bookedDate", GlUtils.formatDate(df, vch.getBookedDate()));        rs.updateString("voucherDate", GlUtils.formatDate(df, vch.getBookedDate()));        Date voucherBookDate = (Date)vch.getBookedDate();        Calendar now = Calendar.getInstance();        now.setTime(voucherBookDate);        rs.updateString("bookedDateYear", String.valueOf(now.get(1)));        int month = now.get(2) + 1;        rs.updateString("bookedDateMonth", month >= 10 ? "" + month : "0" + month);        int date = now.get(5);        rs.updateString("bookedDateDay", date >= 10 ? "" + date : "0" + date);        rs.updateString("bizDate", GlUtils.formatDate(df, vch.getBizDate()));        PeriodInfo prd = vch.getPeriod();        if(prd != null)        {            rs.updateString("periodYear", Integer.toString(prd.getPeriodYear()));            rs.updateString("periodNumber", Integer.toString(prd.getPeriodNumber()));        }        rs.updateString("sysDateNow", GlUtils.formatDate(dft, SysUtil.getAppServerTime(null)));        String type = GlUtils.getName(vch, "voucherType");        rs.updateString("voucherType", type);        String strNumber = vch.getNumber();        String strNumberShort = "";        if(strNumber != null)        {            int n = strNumber.length();            int il = 0;            char ch[] = new char[n];            int i = 0;            do            {                if(i >= n)                    break;                ch[i] = strNumber.charAt(i);                if(ch[i] != '0')                    break;                il++;                i++;            } while(true);            strNumberShort = strNumber.substring(il, n);        }        rs.updateString("number", vch.getNumber());        rs.updateString("numberShort", strNumberShort);        rs.updateString("vouchtTypeNumber", type + vch.getNumber());        rs.updateString("currency", GlUtils.getName(vch, "currency"));        rs.updateString("handler", GlUtils.getName(vch, "handler"));        rs.updateString("creator", GlUtils.getName(vch, "creator"));        rs.updateString("auditor", GlUtils.getName(vch, "auditor"));        rs.updateString("cashier", GlUtils.getName(vch, "cashier"));        rs.updateString("poster", GlUtils.getName(vch, "poster"));        rs.updateString("canceller", GlUtils.getName(vch, "canceller"));    }    protected static void fillVoucherEntryData(String vchId, VoucherEntryInfo e, IRowSet rs, int lcpre, int rcpre)        throws Exception    {        rs.updateString("vchId", vchId);        rs.updateString("e_seq", Integer.toString(e.getSeq()));        rs.updateString("e_description", e.getDescription());        if(rs.getString("r_description") == null)            rs.updateString("r_description", e.getDescription());        acctname = GlUtils.getNumberAndLongName(e, "account");        if(showAccountNumber && showAccountDetail)            acctname = GlUtils.getNumberAndLongName(e, "account");        else        if(!showAccountNumber && showAccountDetail)            acctname = GlUtils.getLongName(e, "account");        else        if(showAccountNumber && !showAccountDetail)            acctname = GlUtils.getNumberAndName(e, "account");        else            acctname = GlUtils.getName(e, "account");        String acctnameZC = GlUtils.getNumberAndLongName(e, "account");        String topAccountNumer = null;        AccountViewInfo account = (AccountViewInfo)e.get("account");        if(account != null && account.getLongNumber() != null && account.getLevel() != 1)        {            String longNumber = account.getLongNumber();            int idx = longNumber.indexOf("!");            topAccountNumer = longNumber.substring(0, idx);        }        if(acctnameZC != null)        {            if(acctnameZC.indexOf("_", 0) != -1 && acctnameZC.indexOf("_", 0) != -1)            {                if(showAccountNumber && topAccountNumer != null)                    zc_acctname = topAccountNumer + " - " + acctnameZC.substring(acctnameZC.indexOf("-", 0) + 2, acctnameZC.indexOf("_", 0));                else                    zc_acctname = acctnameZC.substring(acctnameZC.indexOf("-", 0) + 2, acctnameZC.indexOf("_", 0));            } else            if(showAccountNumber)                zc_acctname = acctnameZC;            else                zc_acctname = acctnameZC.substring(acctnameZC.indexOf("-", 0) + 2, acctnameZC.length());        } else        {            acctname = "";            zc_acctname = "";        }rs.updateString("e_account", acctname);        if(acctname != null && (acctname.contains("N区域") || acctname.contains("K区域")))        rs.updateString("e_account", acctname.replaceAll("_N区域","").replaceAll("_K区域", ""));        else        rs.updateString("e_account", acctname);                rs.updateString("r_accountAsst", acctname);        rs.updateString("zc_account", zc_acctname);        if(e.getAccount() != null && e.getAccount().isIsQty())        {            if(e.getMeasureUnit() != null)            {                rs.updateString("e_measureUnitName", e.getMeasureUnit().getName());                rs.updateString("e_measureUnitNumber", e.getMeasureUnit().getNumber());            }            Object initData[] = getDefaultGLParam("defaultGLParam");            int pricePrecision = ((Integer)initData[7]).intValue();            rs.updateString("e_price", GlUtils.formatNumber(e.getPrice(), pricePrecision));            int quantityPrecision = ((Integer)initData[8]).intValue();            rs.updateString("e_quantity", GlUtils.formatNumber(e.getQuantity(), quantityPrecision));        }        if(e.getCustomer() != null)        {            rs.updateString("customer.number", e.getCustomer().getNumber());            rs.updateString("customer.name", e.getCustomer().getName());            rs.updateString("cusNumberName", e.getCustomer().getNumber() + "\uFF1A" + e.getCustomer().getName());        }        rs.updateString("e_currency", GlUtils.getName(e, "currency"));        if(e.getCurrency() != null)        {            rs.updateString("e_isoCode", e.getCurrency().getIsoCode());            rs.updateString("e_localExchangeRate", GlUtils.formatNumber(e.getLocalExchangeRate()));            rs.updateString("e_reportingExchangeRate", GlUtils.formatNumber(e.getReportingExchangeRate()));        }        rs.updateString("e_originalAmount", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));        rs.updateString("r_originalAmount", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));        EntryDC dc = e.getEntryDC();        if(EntryDC.DEBIT.equals(dc))        {            rs.updateString("e_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));            rs.updateString("e_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));            rs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));            rs.updateString("r_originalAmountDebit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));            rs.updateString("r_localAmountDebit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));            rs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));        } else        {            rs.updateString("e_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));            rs.updateString("e_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));            rs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));            rs.updateString("r_originalAmountCredit", GlUtils.formatNumber(e.getOriginalAmount(), lcpre));            rs.updateString("r_localAmountCredit", GlUtils.formatNumber(e.getLocalAmount(), lcpre));            rs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(e.getReportingAmount(), lcpre));        }    }    protected static void fillVoucherASSTData(VoucherAssistRecordInfo r, IRowSet rs, DateFormat adf, int lcpre, EntryDC dc, IAssistantHG assistantHG, IVoucherAssistRecord asstre, VoucherEntryInfo e)        throws Exception    {        rs.updateString("r_description", r.getDescription());        if(rs.getString("r_description") == null)            rs.updateString("r_description", e.getDescription());        if(r.getMeasureUnit() != null)        {            rs.updateString("r_measureUnitName", r.getMeasureUnit().getName());            rs.updateString("r_measureUnitNumber", r.getMeasureUnit().getNumber());            rs.updateString("e_measureUnitName", r.getMeasureUnit().getName());            rs.updateString("e_measureUnitNumber", r.getMeasureUnit().getNumber());        }        if(r.getSettlementType() != null)            rs.updateString("r_settlementType", r.getSettlementType().getDisplayName());        if(e.getAccount() != null && e.getAccount().isAC())            rs.updateString("r_endDate", GlUtils.formatDate(adf, r.getEndDate()));        else            rs.updateString("r_endDate", "");        rs.updateString("r_settlementCode", r.getSettlementCode());        rs.updateString("r_bizNumber", r.getBizNumber());        rs.updateString("r_bizDate", GlUtils.formatDate(adf, r.getBizDate()));        rs.updateString("r_invoice", r.getInvoiceNumber());        if(EntryDC.DEBIT.equals(dc))        {            rs.updateString("e_originalAmountDebit", GlUtils.formatNumber(r.getOriginalAmount(), lcpre));            rs.updateString("e_localAmountDebit", GlUtils.formatNumber(r.getLocalAmount(), lcpre));            rs.updateString("e_reportingAmountDebit", GlUtils.formatNumber(r.getReportingAmount(), lcpre));            rs.updateString("r_originalAmountDebit", GlUtils.formatNumber(r.getOriginalAmount(), lcpre));            rs.updateString("r_localAmountDebit", GlUtils.formatNumber(r.getLocalAmount(), lcpre));            rs.updateString("r_reportingAmountDebit", GlUtils.formatNumber(r.getReportingAmount(), lcpre));        } else        {            rs.updateString("e_localAmountCredit", GlUtils.formatNumber(r.getLocalAmount(), lcpre));            rs.updateString("e_originalAmountCredit", GlUtils.formatNumber(r.getOriginalAmount(), lcpre));            rs.updateString("e_reportingAmountCredit", GlUtils.formatNumber(r.getReportingAmount(), lcpre));            rs.updateString("r_originalAmountCredit", GlUtils.formatNumber(r.getOriginalAmount(), lcpre));            rs.updateString("r_localAmountCredit", GlUtils.formatNumber(r.getLocalAmount(), lcpre));            rs.updateString("r_reportingAmountCredit", GlUtils.formatNumber(r.getReportingAmount(), lcpre));        }        rs.updateString("r_originalAmount", GlUtils.formatNumber(r.getOriginalAmount(), lcpre));        rs.updateString("r_reportingAmount", GlUtils.formatNumber(r.getReportingAmount(), lcpre));        rs.updateString("r_localAmount", GlUtils.formatNumber(r.getLocalAmount(), lcpre));        String assGrpId = null;        String name = null;        String fullName = null;        String levelName = null;        String assGrp = null;        String assGrpNumber = null;        String asstFull = null;        String asstFullNumber = null;        String asstheadnumber = null;        String asstnumber = null;        String asstheadname = null;        String asstname = null;        String asstlevelname = null;        String asstLevelNameNumber = null;        AssistantHGInfo assistantHGInfo = r.getAssGrp();        if(assistantHGInfo != null)        {            Object initData[] = getDefaultGLParam("defaultGLParam");            boolean isQty = ((Boolean)((Object[])initData[18])[17]).booleanValue();            if(e.getAccount().getCAA() != null && e.getAccount().isIsQty() && (e.getAccount().getCAA().isIsQty() || !isQty))            {                int pricePrecision = ((Integer)initData[7]).intValue();                int quantityPrecision = ((Integer)initData[8]).intValue();                rs.updateString("r_price", GlUtils.formatNumber(r.getPrice(), pricePrecision));                rs.updateString("r_quantity", GlUtils.formatNumber(r.getQuantity(), quantityPrecision));                rs.updateString("e_price", GlUtils.formatNumber(r.getPrice(), pricePrecision));                rs.updateString("e_quantity", GlUtils.formatNumber(r.getQuantity(), quantityPrecision));            }            IObjectValue value = null;            assGrpId = assistantHGInfo.getId().toString();            name = null;            fullName = null;            levelName = null;            if(showAsstDetail)                levelName = getAsstribute("r_AsstLevelNameNumber", assGrpId);            else                levelName = getAsstribute("r_AsstLevelName", assGrpId);            if(showAsstDetail && showAsstNumber)            {                fullName = getAsstribute("r_asstFullNumber", assGrpId);                name = fullName;            } else            if(showAsstDetail && !showAsstNumber)            {                fullName = getAsstribute("r_asstFull", assGrpId);                name = fullName;            } else            if(!showAsstDetail && !showAsstNumber)            {                fullName = getAsstribute("r_assGrp", assGrpId);                name = fullName;            } else            if(!showAsstDetail && showAsstNumber)            {                fullName = getAsstribute("r_assGrpNumber", assGrpId);                name = fullName;            }            assGrp = getAsstribute("assGrp", assGrpId);            assGrpNumber = getAsstribute("assGrpNumber", assGrpId);            asstFull = getAsstribute("asstFull", assGrpId);            asstFullNumber = getAsstribute("asstFullNumber", assGrpId);            asstheadnumber = getAsstribute("r_AsstHeadNumber", assGrpId);            asstnumber = getAsstribute("r_AsstNumber", assGrpId);            asstheadname = getAsstribute("r_AsstHeadName", assGrpId);            asstname = getAsstribute("r_AsstName", assGrpId);            asstlevelname = getAsstribute("r_AsstLevelName", assGrpId);            asstLevelNameNumber = getAsstribute("r_AsstLevelNameNumber", assGrpId);            if(name == null)            {                value = getAsstValue(r, assistantHG, asstre);                assGrp = value.getString("assGrp");                setAsstribute("r_assGrp", assGrpId, assGrp);                assGrpNumber = value.getString("assGrpNumber");                setAsstribute("r_assGrpNumber", assGrpId, assGrpNumber);                asstFull = value.getString("asstFull");                setAsstribute("r_asstFull", assGrpId, asstFull);                asstFullNumber = value.getString("asstFullNumber");                setAsstribute("r_asstFullNumber", assGrpId, asstFullNumber);                asstheadnumber = value.getString("asstheadnumber");                setAsstribute("r_AsstHeadNumber", assGrpId, asstheadnumber);                asstnumber = value.getString("asstnumber");                setAsstribute("r_AsstNumber", assGrpId, asstnumber);                asstheadname = value.getString("asstheadname");                setAsstribute("r_AsstHeadName", assGrpId, asstheadname);                asstname = value.getString("asstname");                setAsstribute("r_AsstName", assGrpId, asstname);                asstlevelname = value.getString("asstlevelname");                setAsstribute("r_AsstLevelName", assGrpId, asstlevelname);                asstLevelNameNumber = value.getString("asstLevelNameNumber");                setAsstribute("r_AsstLevelNameNumber", assGrpId, asstLevelNameNumber);                if(showAsstDetail)                    levelName = asstLevelNameNumber;                else                    levelName = asstlevelname;                if(showAsstDetail && showAsstNumber)                {                    fullName = asstFullNumber;                    name = fullName;                } else                if(showAsstDetail && !showAsstNumber)                {                    fullName = asstFull;                    name = fullName;                } else                if(!showAsstDetail && !showAsstNumber)                {                    fullName = assGrp;                    name = fullName;                } else                if(!showAsstDetail && showAsstNumber)                {                    fullName = assGrpNumber;                    name = fullName;                }            }            if(showAccountNumber && showAccountDetail)                acctname = GlUtils.getNumberAndLongName(e, "account");            else            if(!showAccountNumber && showAccountDetail)                acctname = GlUtils.getLongName(e, "account");            else            if(showAccountNumber && !showAccountDetail)                acctname = GlUtils.getNumberAndName(e, "account");            else                acctname = GlUtils.getName(e, "account");            String acctnameZC = GlUtils.getNumberAndLongName(e, "account");            if(acctnameZC.indexOf("_", 0) != -1)                zc_listacctname = acctnameZC.substring(acctnameZC.indexOf("_", 0) + 1, acctnameZC.length());            else                zc_listacctname = acctnameZC.substring(acctnameZC.indexOf("-", 0) + 1, acctnameZC.length());        }        String accountNumber = GlUtils.getNumber(e, "account");        if(fullName == null || "null".equals(fullName))        {            fullName = "";            name = fullName;        } else        {            fullName = "(" + fullName + ")";        }        if(!bselectedList)        {            rs.updateString("r_assGrp", getStr(name));            rs.updateString("r_longName", getStr(fullName));            rs.updateString("r_AsstHeadNumber", asstheadnumber);            rs.updateString("r_AsstNumber", asstnumber);            rs.updateString("r_AsstHeadName", asstheadname);            rs.updateString("r_AsstName", asstname);            rs.updateString("r_AsstLevelName", levelName);            rs.updateString("r_accountAsst", acctname + "" + getStr(fullName) + "");            rs.updateString("zc_assGrp", zc_listacctname + "" + getStr(fullName) + "");        } else        if(bselectedList && !balanceAccountIsInExistence(accountNumber))        {            rs.updateString("r_assGrp", getStr(name));            rs.updateString("r_longName", getStr(fullName));            rs.updateString("r_AsstHeadNumber", asstheadnumber);            rs.updateString("r_AsstNumber", asstnumber);            rs.updateString("r_AsstHeadName", asstheadname);            rs.updateString("r_AsstName", asstname);            rs.updateString("r_AsstLevelName", levelName);            rs.updateString("r_accountAsst", acctname + "" + getStr(fullName) + "");            rs.updateString("zc_assGrp", zc_listacctname + "" + getStr(fullName) + "");        } else        {            rs.updateString("r_assGrp", "");            rs.updateString("r_longName", "");            rs.updateString("r_AsstHeadNumber", "");            rs.updateString("r_AsstNumber", "");            rs.updateString("r_AsstHeadName", "");            rs.updateString("r_AsstName", "");            rs.updateString("r_AsstLevelName", "");            rs.updateString("r_accountAsst", "");            rs.updateString("zc_assGrp", "");            rs.updateString("r_description", e.getDescription());        }    }    protected static void printCashflow(DynamicRowSet drs, VoucherEntryInfo e, VoucherAssistRecordInfo r, int lcpre)        throws Exception    {        StringBuffer sbOriginalAmount = new StringBuffer();        StringBuffer sblocalAmount = new StringBuffer();        StringBuffer sbreportingAmount = new StringBuffer();        StringBuffer sbprimItem = new StringBuffer();        StringBuffer sbitem = new StringBuffer();        StringBuffer sbitemEbb = new StringBuffer();        StringBuffer sbsuppItem = new StringBuffer();        StringBuffer sbsupp = new StringBuffer();        StringBuffer sbsuppEbb = new StringBuffer();        StringBuffer sbfullInfoItem = new StringBuffer();        StringBuffer sbfullInfo = new StringBuffer();        StringBuffer sbfullInfoEbb = new StringBuffer();        BigDecimal bdPrimary = null;        BigDecimal bdSupp = null;        CashflowRecordCollection cashflowRecordsCollection = null;        int seq = e.getSeq();        if(printCashflowMeOrOther)            cashflowRecordsCollection = e.getCashflowEntry();        else            cashflowRecordsCollection = e.getCashflowRecords();        if(cashflowRecordsCollection != null && cashflowRecordsCollection.size() > 0)        {            Iterator itrCfr = cashflowRecordsCollection.iterator();            do            {                if(!itrCfr.hasNext())                    break;                CashflowRecordInfo cfrInfo = (CashflowRecordInfo)itrCfr.next();                if(cfrInfo.getItemFlag() != null && cfrInfo.getItemFlag().getValue() != 5 && (printCashflowMeOrOther ? seq == cfrInfo.getEntry().getSeq() : seq == cfrInfo.getOpposingAccountEntry().getSeq() && (r == null || cfrInfo.getItemFlag().getValue() != 1 && cfrInfo.getItemFlag().getValue() != 2 && cfrInfo.getItemFlag().getValue() != 3 || cfrInfo.getOppVoucherAssistRecord() == null || r.getSeq() == cfrInfo.getOppVoucherAssistRecord().getSeq())))                {                    bdPrimary = new BigDecimal(String.valueOf(cfrInfo.getPrimaryCoefficient()));                    bdSupp = new BigDecimal(String.valueOf(cfrInfo.getSupplementaryCoefficient()));                    sbOriginalAmount.append(GlUtils.formatNumber(cfrInfo.getOriginalAmount(), lcpre) + ";");                    sblocalAmount.append(GlUtils.formatNumber(cfrInfo.getLocalAmount(), lcpre) + ";");                    sbreportingAmount.append(GlUtils.formatNumber(cfrInfo.getReportingAmount(), lcpre) + ";");                    drs.updateString("c_originalAmount", sbOriginalAmount.toString());                    drs.updateString("c_localAmount", sblocalAmount.toString());                    drs.updateString("c_reportingAmount", sbreportingAmount.toString());                    CashFlowItemInfo cfinfo_primItem = cfrInfo.getPrimaryItem();                    if(cfinfo_primItem != null)                    {                        String str_primItem_number = cfinfo_primItem.getNumber();                        String str_primItem_name = cfinfo_primItem.getName();                        sbprimItem.append(str_primItem_number + str_primItem_name + ";");                        sbitem.append(cfinfo_primItem + GlUtils.formatNumber(cfrInfo.getLocalAmount().multiply(bdPrimary), lcpre) + ";");                        sbitemEbb.append("(" + str_primItem_name + ")" + GlUtils.formatNumber(cfrInfo.getLocalAmount().multiply(bdPrimary), lcpre) + ";");                        drs.updateString("c_primItem", sbprimItem.toString());                        drs.updateString("c_item", sbitem.toString());                        drs.updateString("c_itemEbb", sbitemEbb.toString());                        drs.updateString("c_primItemName", str_primItem_name + ";");                    }                    CashFlowItemInfo cfinfo_suppItem = cfrInfo.getSupplementaryItem();                    if(cfinfo_suppItem != null)                    {                        String str_suppItem_number = cfinfo_suppItem.getNumber();                        String str_suppItem_name = cfinfo_suppItem.getName();                        sbsuppItem.append(str_suppItem_number + str_suppItem_name + ";");                        sbsupp.append(cfinfo_suppItem + GlUtils.formatNumber(cfrInfo.getLocalAmount().multiply(bdSupp), lcpre) + ";");                        sbsuppEbb.append("(" + str_suppItem_name + ")" + GlUtils.formatNumber(cfrInfo.getLocalAmount().multiply(bdSupp), lcpre) + ";");                        drs.updateString("c_suppItem", sbsuppItem.toString());                        drs.updateString("c_supp", sbsupp.toString());                        drs.updateString("c_suppEbb", sbsuppEbb.toString());                        drs.updateString("c_suppItemName", str_suppItem_name + ";");                    }                    CashFlowItemInfo cfInfo_fullInfoItem = cfrInfo.getFullInfoItem();                    if(cfInfo_fullInfoItem != null)                    {                        String str_fullInfoItem_number = cfInfo_fullInfoItem.getNumber();                        String str_fullInfoItem_name = cfInfo_fullInfoItem.getName();                        sbfullInfoItem.append(str_fullInfoItem_number + str_fullInfoItem_name + ";");                        sbfullInfo.append(str_fullInfoItem_number + str_fullInfoItem_name + GlUtils.formatNumber(cfrInfo.getLocalAmount(), lcpre) + ";");                        sbfullInfoEbb.append("(" + str_fullInfoItem_name + ")" + GlUtils.formatNumber(cfrInfo.getLocalAmount(), lcpre) + ";");                        drs.updateString("c_fullInfoItem", sbfullInfoItem.toString());                        drs.updateString("c_fullInfo", sbfullInfo.toString());                        drs.updateString("c_fullInfoEbb", sbfullInfoEbb.toString());                    }                }            } while(true);        }    }    protected boolean computerVoucherType(VoucherInfo vch)    {        boolean pnlAccExist = false;        int count = vch.getEntryCount();        for(int i = 0; i < count; i++)        {            AccountViewInfo acc = vch.getEntries().get(i).getAccount();            if(AccountProperty.SUNYI.equals(acc.getAccountTypeID().getProperty()))                pnlAccExist = true;        }        return pnlAccExist;    }    protected VoucherInfo changeVoucher(VoucherInfo vch)    {        VoucherInfo info = new VoucherInfo();        info.setId(vch.getId());        info.setNumber(vch.getNumber());        info.setAttachments(vch.getAttachments());        info.setBizOU(vch.getBizOU());        info.setPeriod(vch.getPeriod());        info.setBizDate(vch.getBizDate());        info.setBookedDate(vch.getBookedDate());        info.setCompany(vch.getCompany());        info.setCreateTime(vch.getCreateTime());        info.setCreator(vch.getCreator());        info.setCU(vch.getCU());        info.setCurrency(vch.getCurrency());        info.setDescription(vch.getDescription());        info.setDisplayFormat(vch.getDisplayFormat());        info.setLocalCreditAmount(vch.getLocalCreditAmount());        info.setLocalDebitAmount(vch.getLocalDebitAmount());        info.setReportingCreditAmount(vch.getReportingCreditAmount());        info.setReportingDebitAmount(vch.getReportingDebitAmount());        info.setHandler(vch.getHandler());        info.setAuditor(vch.getAuditor());        info.setCashier(vch.getCashier());        info.setCanceller(vch.getCanceller());        info.setPoster(vch.getPoster());        info.setHasCashAccount(vch.isHasCashAccount());        info.setHasEffected(vch.isHasEffected());        info.setLastUpdateTime(vch.getLastUpdateTime());        info.setLastUpdateUser(vch.getLastUpdateUser());        info.setVoucherType(vch.getVoucherType());        info.setVoucherTypeDetail(vch.getVoucherTypeDetail());        int infoCount = 0;        Map acctMap = new HashMap();        int count = vch.getEntryCount();        VoucherEntryCollection vchEntryCol = vch.getEntries();        VoucherEntryCollection infoEntryCol = info.getEntries();        for(int i = 0; i < count; i++)        {            VoucherEntryInfo vchEntryInfo = vchEntryCol.get(i);            VoucherEntryInfo entry = new VoucherEntryInfo();            entry.setAccount(vchEntryInfo.getAccount());            entry.setBill(info);            entry.setId(vchEntryInfo.getId());            entry.setCurrency(vchEntryInfo.getCurrency());            entry.setDescription(vchEntryInfo.getDescription());            entry.setDisplayFormat(vchEntryInfo.getDisplayFormat());            entry.setEntryDC(vchEntryInfo.getEntryDC());            entry.setMeasureUnit(vchEntryInfo.getMeasureUnit());            entry.setOriginalAmount(vchEntryInfo.getOriginalAmount());            entry.setLocalAmount(vchEntryInfo.getLocalAmount());            entry.setReportingAmount(vchEntryInfo.getReportingAmount());            entry.setLocalExchangeRate(vchEntryInfo.getLocalExchangeRate());            entry.setReportingExchangeRate(vchEntryInfo.getReportingExchangeRate());            entry.setPrice(vchEntryInfo.getPrice());            entry.setQuantity(vchEntryInfo.getQuantity());            entry.setStandardQuantity(vchEntryInfo.getStandardQuantity());            AccountViewInfo acc = entry.getAccount();            if(AccountProperty.SUNYI.equals(acc.getAccountTypeID().getProperty()))            {                AccountViewInfo accInfo = null;                try                {                    IAccountView accountView = AccountViewFactory.getRemoteInstance();                    BOSUuid accID = acc.getId();                    ObjectUuidPK objectUUidPK = new ObjectUuidPK(accID);                    accInfo = accountView.getAccountViewInfo(objectUUidPK);                }                catch(BOSException e)                {                    e.printStackTrace();                }                catch(EASBizException e)                {                    e.printStackTrace();                }                String flongnumber = accInfo.getLongNumber();                String flongname = accInfo.getLongName();                String fnumber = flongnumber;                String fname = flongname;                int index = flongnumber.indexOf("!");                if(index != -1)                {                    fnumber = flongnumber.substring(0, flongnumber.indexOf("!"));                    fname = flongname.substring(0, flongname.indexOf("_"));                }                acc.setName(fname);                acc.setNumber(fnumber);                acc.setLongName(fname);                acc.setLongNumber(fnumber);                if(acctMap.containsKey(fnumber))                {                    VoucherEntryInfo entryInfo = (VoucherEntryInfo)acctMap.get(fnumber);                    entryInfo.setOriginalAmount(entryInfo.getOriginalAmount().add(entry.getOriginalAmount()));                    entryInfo.setLocalAmount(entryInfo.getLocalAmount().add(entry.getLocalAmount()));                    entryInfo.setReportingAmount(entryInfo.getReportingAmount().add(entry.getReportingAmount()));                    entryInfo.setQuantity(entryInfo.getQuantity().add(entry.getQuantity()));                    entryInfo.setStandardQuantity(entryInfo.getStandardQuantity().add(entry.getStandardQuantity()));                } else                {                    infoCount++;                    entry.setSeq(infoCount);                    acctMap.put(fnumber, entry);                }            } else            {                infoCount++;                entry.setSeq(infoCount);                infoEntryCol.add(entry);            }        }        info.setEntryCount(infoCount);        Set set = acctMap.keySet();        VoucherEntryInfo entryInfo;        for(Iterator iter = set.iterator(); iter.hasNext(); infoEntryCol.add(entryInfo))        {            String fnumber = (String)iter.next();            entryInfo = (VoucherEntryInfo)acctMap.get(fnumber);        }        return info;    }    protected static IObjectValue getAsstValue(VoucherAssistRecordInfo tmpAssistRecordInfo, IAssistantHG assistantHG, IVoucherAssistRecord asstre)        throws EASBizException, BOSException    {        BOSUuid assGrpId = tmpAssistRecordInfo.getAssGrp().getId();        if(assistantHG == null)            assistantHG = AssistantHGFactory.getRemoteInstance();        ObjectUuidPK objectUUidPK = new ObjectUuidPK(assGrpId);        AssistantHGInfo info = assistantHG.getAssistantHGInfo(objectUUidPK);        if(asstre == null)            asstre = VoucherAssistRecordFactory.getRemoteInstance();        IObjectValue value = asstre.getDefaultAssitInfo(info.getAsstAccount().getId().toString(), assGrpId.toString());        return value;    }    protected static String getBlankString(int size, String str)    {        StringBuffer name = new StringBuffer("");        for(int i = 0; i < size; i++)            name.append(" ");        name.append(str);        return name.toString();    }    protected static Object[] getDefaultGLParam(String defaultGLParam)        throws BOSException, EASBizException    {        Object objPrecision[] = null;        if(mapPrecision.containsKey(SysContext.getSysContext().getCurrentFIUnit().getId().toString() + "_" + defaultGLParam))        {            objPrecision = (Object[])mapPrecision.get(SysContext.getSysContext().getCurrentFIUnit().getId().toString() + "_" + defaultGLParam);        } else        {            objPrecision = GlUtils.getDefaultGLParam();            mapPrecision.put(SysContext.getSysContext().getCurrentFIUnit().getId().toString() + "_" + defaultGLParam, ((Object) (objPrecision)));        }        return objPrecision;    }    public static String getAsstribute(String asstribute, String id)    {        Map map = null;        String name = null;        if(asstributeMap == null)            asstributeMap = new HashMap();        if(asstributeMap.containsKey(asstribute))        {            map = (Map)asstributeMap.get(asstribute);        } else        {            map = new HashMap();            asstributeMap.put(asstribute, map);        }        if(map.containsKey(id))        {            name = (String)map.get(id);            map.put(id, name);        }        return name;    }    public static void setAsstribute(String asstribute, String id, String value)    {        Map map = null;        if(asstributeMap == null)            asstributeMap = new HashMap();        if(asstributeMap.containsKey(asstribute))        {            map = (Map)asstributeMap.get(asstribute);        } else        {            map = new HashMap();            asstributeMap.put(asstribute, map);        }        if(!map.containsKey(id))            map.put(id, value);    }    public String getString(String key)    {        return EASResource.getString("com.kingdee.eas.fi.gl.client.VoucherEditResource", key);    }    protected static void clearRow(IRowSet rs)        throws Exception    {        int colCount = rs.getRowSetMetaData().getColumnCount();        for(int i = 1; i <= colCount; i++)            rs.updateString(i, null);    }    protected static boolean balanceAccountIsInExistence(String strAccountNumber)        throws Exception    {        boolean isInExistence = false;        if(selectedList.length() != 0)        {            Object objToSelect[] = selectedList.split("\\,");            Object objSelectNumber[] = new Object[objToSelect.length];            int i = 0;            for(int n = objToSelect.length; i < n; i++)            {                Object objTemp[] = objToSelect[i].toString().split("\\ ");                objSelectNumber[i] = objTemp[0];            }            int j = 0;            for(int m = objSelectNumber.length; j < m; j++)                if(strAccountNumber.equalsIgnoreCase(objSelectNumber[j].toString()))                    isInExistence = true;            return isInExistence;        } else        {            return isInExistence;        }    }    protected static String[] getAsstActList()    {        if(basstActSeleectedList)        {            String asstActList[] = StringUtils.split(asstActSeleectedList, ",");            return asstActList;        } else        {            return null;        }    }    protected static String getStr(String name)    {        String string = "";        String names[] = null;        if(name != null)        {            names = StringUtils.split(name, ";");            String asstActList[] = getAsstActList();            if(asstActList != null)            {                for(int i = 0; i < names.length; i++)                {                    String s = names[i];                    String temp[] = s.split(":");                    for(int j = 0; j < asstActList.length; j++)                    {                        String asst = asstActList[j];                        if(temp[0].toString().indexOf(asst.split("-")[1].toString()) != -1)                            names[i] = "";                    }                }            }        }        if(names != null)        {            for(int i = 0; i < names.length; i++)            {                string = string + names[i];                if(!")".equals(names[i]) && !"".equals(names[i]))                    string = string + ";";            }        }        if(string.indexOf("(") != -1 && string.indexOf(")") != -1)            return string;        if(string.indexOf(")") != -1 && string.indexOf(")") != 0 && string.indexOf("(") == -1)            string = "(" + string;        else        if(string.indexOf(")") == 0)            string = "";        return string;    }    public void setVchType(String vchType)    {        this.vchType = vchType;    }    public String getAcctname()    {        return acctname;    }    public static void setShowAsstDetail(boolean v)    {        showAsstDetail = v;    }    public static void setShowAsstNumber(boolean v)    {        showAsstNumber = v;    }    public static void setChkPrintCashFlow(boolean v)    {        chkPrintCashFlow = v;    }    public static void setChkAssistant(boolean v)    {        chkAssistant = v;    }    public static void setPrintCashflowMeOrOther(boolean v)    {        printCashflowMeOrOther = v;    }    public static void setIsListOrEdit(boolean v)    {        isListOrEdit = v;    }    public static void setShowAccountNumber(boolean v)    {        showAccountNumber = v;    }    public static void setShowAccountDetail(boolean v)    {        showAccountDetail = v;    }    public static void setBselectedList(boolean v)    {        bselectedList = v;    }    public static void setSelectedList(String v)    {        selectedList = v;    }    public static void setBasstActSeleectedList(boolean v)    {        basstActSeleectedList = v;    }    public static void setAasstActSeleectedList(String v)    {        asstActSeleectedList = v;    }    public static void clearCache()    {        asstributeMap = null;    }    public static final String col[] = {        "pageCount", "pageCurrent", "pageTotal", "company", "companyBaseCurreny", "companyReportCurreny", "description", "attachments", "attachmentsChinese", "sum",         "periodYear", "periodNumber", "bizDate", "voucherDate", "bookedDate", "bookedDateYear", "bookedDateMonth", "bookedDateDay", "sysDateNow", "vchId",         "bizStatus", "voucherType", "number", "numberShort", "vouchtTypeNumber", "currency", "amountTotalChinese", "amountTotal", "creditTotal", "debitTotal",         "localAmountDebit", "localAmountCredit", "reportingAmountDebit", "reportingAmountCredit", "handler", "creator", "auditor", "cashier", "poster", "canceller",         "e_seq", "e_description", "e_account", "e_account1", "zc_account", "e_currency", "e_isoCode", "e_measureUnitName", "e_measureUnitNumber", "e_price", "e_quantity",         "e_originalAmount", "e_originalAmountDebit", "e_originalAmountCredit", "e_localExchangeRate", "e_localAmountDebit", "e_localAmountCredit", "e_reportingExchangeRate", "e_reportingAmountDebit", "e_reportingAmountCredit", "r_description",         "r_settlementType", "r_settlementCode", "r_bizNumber", "r_originalAmount", "r_originalAmountDebit", "r_originalAmountCredit", "r_localAmount", "r_localAmountDebit", "r_localAmountCredit", "r_reportingAmount",         "r_reportingAmountDebit", "r_reportingAmountCredit", "r_measureUnitName", "r_measureUnitNumber", "r_price", "r_quantity", "r_bizDate", "r_invoice", "r_endDate", "r_customer",         "r_supplier", "r_orgUnit", "r_matirial", "r_assGrp", "r_longName", "r_AsstHeadNumber", "r_AsstNumber", "r_AsstHeadName", "r_AsstName", "r_AsstLevelName",         "r_accountAsst", "zc_assGrp", "c_item", "c_itemEbb", "c_primItem", "c_supp", "c_suppEbb", "c_suppItem", "c_fullInfo", "c_fullInfoEbb",         "c_fullInfoItem", "c_oppAccount", "c_originalAmount", "c_localAmount", "c_reportingAmount", "c_primItemName", "c_suppItemName", "customer.number", "customer.name", "cusNumberName"    };    protected String vchType;    protected VoucherEditParam editParam;    protected VoucherCollection vchCol;    protected static boolean chkPrintCashFlow = false;    protected static boolean chkAssistant = true;    protected static boolean showAsstDetail = true;    protected static boolean showAsstNumber = true;    protected static boolean printCashflowMeOrOther = true;    protected static boolean isListOrEdit = true;    protected static boolean showAccountNumber = true;    protected static boolean showAccountDetail = true;    protected static String selectedList = null;    protected static boolean bselectedList = false;    protected static String asstActSeleectedList = null;    protected static boolean basstActSeleectedList = false;    protected boolean needCpmputeAsst;    protected static String acctname = null;    protected static String zc_acctname = null;    protected static String zc_listacctname = null;    protected static Map asstributeMap = null;    protected static final Map mapPrecision = new HashMap();}/*DECOMPILATION REPORTDecompiled from: W:\EAS705\lib\client\eas\fi_gl-client.jarTotal time: 249 msJad reported messages/errors:Exit status: 0Caught exceptions:*/