本文是金蝶EAS项目报表开发的一个案例,可供有兴趣者参考。

1.设计UI

1.1筛选界面UI

BOS设计工具新建目录如下

新建Web用户界面,继承父类com.kingdee.eas.framework.report.client.CommRptBaseConditionUI
右键添加需要的控件如下所示

1.2报表UI

同样的新建Web用户界面,继承com.kingdee.eas.framework.report.client.CommRptBaseUI
添加表格,并编辑表信息

表列

表头

1.3 Facade设计

在report --> app文件夹下新建查询
将查询的父对象设置为com.kingdee.eas.framework.report.app.CommRptBase

全部设计完毕之后将选中整个文件夹右键发布,以后若对任意UI修改,都要进行发布

2.设计查询

此报表要用到SQL中的行转列,也就是会用到case when语句

2.1会用到的表格

  • T_CAS_PaymentBill 付款单
  • T_CAS_PaymentBillEntry 付款单分录
  • T_BD_GeneralAsstActType 自定义核算项目 fid
  • T_CAS_AssItemsForCashPay 付款单自定义核算项目中间表 ffromid
  • T_CAS_ReceivingBill 收款单
  • T_CAS_ReceivingBillEntry 收款单分录
  • T_CAS_FeeType 收付类别
  • CT_CAS_RecDetail 收付明细
  • T_BD_SettlementType 结算方式
  • T_ORG_Company 公司

2.2表格之间的关联关系

关于付款单的表格关系图如下

关于收款单表关系图如下

2.2 得出SQL语句

-- 付款单SQL语句
SELECT
company.fname_l2 as company,
general.fnumber as contractNumber,
general.fname_l2 as contractName,
SUM(case  when  recdetail.FNUMBER in('SF-032','SF-031') then entry.FActualLocAmt  else 0 end) as projIncome, --工程收入
SUM(case  when  recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER in ('01','02','03','06','07','08','31')  then entry.FActualLocAmt  else 0 end)  as pCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER not in('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-033') then entry.FActualLocAmt  else 0 end) as saleIncome,
SUM(case  when  recdetail.FNUMBER in('SF-033') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-033') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sNCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-034') then entry.FActualLocAmt  else 0 end) as disIncome,
SUM(case  when  recdetail.FNUMBER in('SF-034') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-034') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashBack,
SUM(case  when  recdetail.FNUMBER in('SF-035', 'SF-036') then entry.FActualLocAmt  else 0 end) as billCashIncome,
SUM(case  when  recdetail.FNUMBER in('SF-037', 'SF-038') then entry.FActualLocAmt  else 0 end) as deposit,
SUM(case  when  recdetail.FNUMBER in('SF-039') then entry.FActualLocAmt  else 0 end) as fiSubIncome,
SUM(case  when  recdetail.FNUMBER in('SF-040','SF-048') then entry.FActualLocAmt  else 0 end) as otherIncome, --其他收款 待收款
SUM(case  when  recdetail.FNUMBER in('SF-041') then entry.FActualLocAmt  else 0 end) as absorbInvest,
SUM(case  when  recdetail.FNUMBER in('SF-042') then entry.FActualLocAmt  else 0 end) as lNewLoan,
SUM(case  when  recdetail.FNUMBER in('SF-043') then entry.FActualLocAmt  else 0 end) as interIncome, --利息收入
SUM(case  when  recdetail.FNUMBER in('SF-044', 'SF-045') then entry.FActualLocAmt  else 0 end) as groupConta, --集团往来收入 groupConta
SUM(case  when  recdetail.FNUMBER in('SF-046') then entry.FActualLocAmt  else 0 end) as investDivid,--investDivid
SUM(case  when  recdetail.FNUMBER in('SF-047') then entry.FActualLocAmt  else 0 end) as assetsCZ, --assetsCZ
SUM(case  when  recdetail.FNUMBER in('SF-001','SF-002') then entry.FActualLocAmt  else 0 end) as projExpend,--projExpend
SUM(case  when  recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pCashPay,--pCashPay
SUM(case  when  recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashExpend,   -- pNCashExpend
SUM(case  when  recdetail.FNUMBER in('SF-004','SF-005','SF-006') then entry.FActualLocAmt  else 0 end) as disPay,-- disPay
SUM(case  when  recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashPay,-- dCashPay
SUM(case  when  recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashExpend,-- dNCashExpend
SUM(case  when  recdetail.FNUMBER in('SF-007','SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fiBillExpend,-- fiBillExpend
SUM(case  when  recdetail.FNUMBER in('SF-007') then entry.FActualLocAmt  else 0 end) as fAcceptAmout,-- fAcceptAmout
SUM(case  when  recdetail.FNUMBER in('SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fInvoicingExpend,  -- fInvoicingExpend
SUM(case  when  recdetail.FNUMBER in('SF-003','SF-010') then entry.FActualLocAmt  else 0 end) as dPeriodCost,     -- dPeriodCost 取收付明细中“费用报销”+“支付银行手续费”
SUM(case  when  recdetail.FNUMBER in('SF-049','SF-050','SF-011') then entry.FActualLocAmt  else 0 end) as dReverseExpend,   -- dReverseExpend  取收付明细中“备用金/个人借款”-“收备用金”
SUM(case  when  recdetail.FNUMBER in('SF-012') then entry.FActualLocAmt  else 0 end) as sWage,      -- sWage
SUM(case  when  recdetail.FNUMBER in('SF-013') then entry.FActualLocAmt  else 0 end) as sFive,    -- sFive
SUM(case  when  recdetail.FNUMBER in('SF-014') then entry.FActualLocAmt  else 0 end) as sOther,     -- sOther
SUM(case  when  recdetail.FNUMBER in('SF-015') then entry.FActualLocAmt  else 0 end) as taxExpend,    -- taxExpend
SUM(case  when  recdetail.FNUMBER in('SF-016') then entry.FActualLocAmt  else 0 end) as fineExpend,    -- fineExpend
SUM(case  when  recdetail.FNUMBER in('SF-017') then entry.FActualLocAmt  else 0 end) as depositExpend,    -- depositExpend
SUM(case  when  recdetail.FNUMBER in('SF-018') then entry.FActualLocAmt  else 0 end) as donateExpend,     -- donateExpend
SUM(case  when  recdetail.FNUMBER in('SF-028','SF-029','SF-030') then entry.FActualLocAmt  else 0 end) as otherExpend,     -- otherExpend
SUM(case  when  recdetail.FNUMBER in('SF-019') then entry.FActualLocAmt  else 0 end) as repayLoan,    -- repayLoan 偿还贷款支出
SUM(case  when  recdetail.FNUMBER in('SF-020') then entry.FActualLocAmt  else 0 end) as pfLoanInter,     -- pfLoanInter
SUM(case  when  recdetail.FNUMBER in('SF-021') then entry.FActualLocAmt  else 0 end) as pfFinanceFee,     -- pfFinanceFee
SUM(case  when  recdetail.FNUMBER in('SF-022') then entry.FActualLocAmt  else 0 end) as dividedPayout,     -- dividedPayout
SUM(case  when  recdetail.FNUMBER in('SF-023', 'SF-024','SF-025') then entry.FActualLocAmt  else 0 end) as groupContacts,     -- groupContacts
SUM(case  when  recdetail.FNUMBER in('SF-026') then entry.FActualLocAmt  else 0 end) as outInvest,     -- outInvest
SUM(case  when  recdetail.FNUMBER in('SF-027') then entry.FActualLocAmt  else 0 end) as buyAssets     -- buyAssets
FROM T_CAS_PaymentBill as payment
left join T_CAS_PaymentBillEntry as entry
on payment.fid = entry.FPaymentBillID
INNER JOIN T_ORG_Company AS company
ON payment.FCompanyID = COMPANY.FIDleft join T_BD_SettlementType as settle
on payment.fsettlementtypeID = settle.FID
left join T_CAS_AssItemsForCashPay payAssItem
on payAssItem.fentryparentid = entry.fid
left join T_BD_GeneralAsstActType as general  -- 自定义核算项目
on payAssItem.ffromid = general.fid left join T_CAS_FeeType feetype
on payment.ffeetypeid = feetype.fid
left join CT_CAS_RecDetail recdetail
on feetype.FID = recdetail.CFFEETYPEID WHERE 1=1group by company.fname_l2, general.fnumber, general.fname_l2-- 收款单SQL语句
SELECT company.fname_l2 as company, general.fnumber as contractNumber, general.fname_l2 as contractName,
SUM(case when recdetail.FNUMBER in('SF-032','SF-031') then entry.FActualLocAmt  else 0 end) as projIncome,
SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER in ('01','02','03','06','07','08','31')  then entry.FActualLocAmt  else 0 end)  as pCashBack,
SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER not in('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashBack,
SUM(case when recdetail.FNUMBER in('SF-033') then entry.FActualLocAmt  else 0 end) as saleIncome,
SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sCashBack,
SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sNCashBack,
SUM(case when recdetail.FNUMBER in('SF-034') then entry.FActualLocAmt  else 0 end) as disIncome,
SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashBack,
SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashBack,
SUM(case when recdetail.FNUMBER in('SF-035', 'SF-036') then entry.FActualLocAmt  else 0 end) as billCashIncome,
SUM(case when recdetail.FNUMBER in('SF-037', 'SF-038') then entry.FActualLocAmt  else 0 end) as deposit,
SUM(case when recdetail.FNUMBER in('SF-039') then entry.FActualLocAmt  else 0 end) as fiSubIncome,
SUM(case when recdetail.FNUMBER in('SF-040','SF-048') then entry.FActualLocAmt  else 0 end) as otherIncome,
SUM(case when recdetail.FNUMBER in('SF-041') then entry.FActualLocAmt  else 0 end) as absorbInvest,
SUM(case when recdetail.FNUMBER in('SF-042') then entry.FActualLocAmt  else 0 end) as lNewLoan,
SUM(case when recdetail.FNUMBER in('SF-043') then entry.FActualLocAmt  else 0 end) as interIncome,
SUM(case when recdetail.FNUMBER in('SF-044', 'SF-045') then entry.FActualLocAmt  else 0 end) as groupConta,
SUM(case when recdetail.FNUMBER in('SF-046') then entry.FActualLocAmt  else 0 end) as investDivid,
SUM(case when recdetail.FNUMBER in('SF-047') then entry.FActualLocAmt  else 0 end) as assetsCZ,
SUM(case when recdetail.FNUMBER in('SF-001','SF-002') then entry.FActualLocAmt  else 0 end) as projExpend,
SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pCashPay,
SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashExpend,
SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') then entry.FActualLocAmt  else 0 end) as disPay,
SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashPay,
SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashExpend,
SUM(case when recdetail.FNUMBER in('SF-007','SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fiBillExpend,
SUM(case when recdetail.FNUMBER in('SF-007') then entry.FActualLocAmt  else 0 end) as fAcceptAmout,
SUM(case when recdetail.FNUMBER in('SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fInvoicingExpend,
SUM(case when recdetail.FNUMBER in('SF-003','SF-010') then entry.FActualLocAmt  else 0 end) as dPeriodCost,
SUM(case when recdetail.FNUMBER in('SF-049','SF-050','SF-011') then entry.FActualLocAmt  else 0 end) as dReverseExpend,
SUM(case when recdetail.FNUMBER in('SF-012') then entry.FActualLocAmt  else 0 end) as sWage,
SUM(case when recdetail.FNUMBER in('SF-013') then entry.FActualLocAmt  else 0 end) as sFive,
SUM(case when recdetail.FNUMBER in('SF-014') then entry.FActualLocAmt  else 0 end) as sOther,
SUM(case when recdetail.FNUMBER in('SF-015') then entry.FActualLocAmt  else 0 end) as taxExpend,
SUM(case when recdetail.FNUMBER in('SF-016') then entry.FActualLocAmt  else 0 end) as fineExpend,
SUM(case when recdetail.FNUMBER in('SF-017') then entry.FActualLocAmt  else 0 end) as depositExpend,
SUM(case when recdetail.FNUMBER in('SF-018') then entry.FActualLocAmt  else 0 end) as donateExpend,
SUM(case when recdetail.FNUMBER in('SF-028','SF-029','SF-030') then entry.FActualLocAmt  else 0 end) as otherExpend,
SUM(case when recdetail.FNUMBER in('SF-019') then entry.FActualLocAmt  else 0 end) as repayLoan,
SUM(case when recdetail.FNUMBER in('SF-020') then entry.FActualLocAmt  else 0 end) as pfLoanInter,
SUM(case when recdetail.FNUMBER in('SF-021') then entry.FActualLocAmt  else 0 end) as pfFinanceFee,
SUM(case when recdetail.FNUMBER in('SF-022') then entry.FActualLocAmt  else 0 end) as dividedPayout,
SUM(case when recdetail.FNUMBER in('SF-023', 'SF-024','SF-025') then entry.FActualLocAmt  else 0 end) as groupContacts,
SUM(case when recdetail.FNUMBER in('SF-026') then entry.FActualLocAmt  else 0 end) as outInvest,
SUM(case when recdetail.FNUMBER in('SF-027') then entry.FActualLocAmt  else 0 end) as buyAssets
FROM T_CAS_ReceivingBill as payment
left join T_CAS_ReceivingBillEntry as entry
on payment.fid = entry.FReceivingBillID
INNER JOIN T_ORG_Company AS company
ON payment.FCompanyID = COMPANY.FID
left join T_BD_SettlementType as settle
on payment.fsettlementtypeID = settle.FID
left join T_CAS_AssItemsForCashRec payAssItem
on payAssItem.fentryparentid = entry.fid
left join T_BD_GeneralAsstActType as general
on payAssItem.ffromid = general.fid
left join T_CAS_FeeType feetype
on payment.ffeetypeid = feetype.fid
left join CT_CAS_RecDetail recdetail
on feetype.FID = recdetail.CFFEETYPEID
WHERE 1 = 1
group by company.fname_l2, general.fnumber, general.fname_l2 

Java视图窗口在如下目录的ControllerBean.java文件中重写query方法添加一下代码进行查询

     if (null == params) {throw new EASBizException(new NumericExceptionSubItem("0003","请先设置过滤条件.."));}String prmtcompany=null;if (null!=params.getObject("prmtcompany")) {CompanyOrgUnitInfo object = (CompanyOrgUnitInfo)params.getObject("prmtcompany");prmtcompany=object.toString();} String prmtperiod=null;if (null!=params.getObject("prmtperiod")) {prmtperiod = params.getObject("prmtperiod").toString();        }String customproject=null;if (null!=params.getObject("customproject")) {customproject = params.getObject("customproject").toString();}  StringBuffer sql = new StringBuffer();SqlParams sp = new SqlParams();sql.append("SELECT company.fname_l2 as company, general.fnumber as contractNumber, general.fname_l2 as contractName,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') then entry.FActualLocAmt  else 0 end) as projIncome, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER in ('01','02','03','06','07','08','31')  then entry.FActualLocAmt  else 0 end)  as pCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER not in('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-033') then entry.FActualLocAmt  else 0 end) as saleIncome,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sNCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-034') then entry.FActualLocAmt  else 0 end) as disIncome,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashBack,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-035', 'SF-036') then entry.FActualLocAmt  else 0 end) as billCashIncome,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-037', 'SF-038') then entry.FActualLocAmt  else 0 end) as deposit,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-039') then entry.FActualLocAmt  else 0 end) as fiSubIncome,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-040','SF-048') then entry.FActualLocAmt  else 0 end) as otherIncome, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-041') then entry.FActualLocAmt  else 0 end) as absorbInvest, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-042') then entry.FActualLocAmt  else 0 end) as lNewLoan, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-043') then entry.FActualLocAmt  else 0 end) as interIncome,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-044', 'SF-045') then entry.FActualLocAmt  else 0 end) as groupConta, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-046') then entry.FActualLocAmt  else 0 end) as investDivid,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-047') then entry.FActualLocAmt  else 0 end) as assetsCZ, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') then entry.FActualLocAmt  else 0 end) as projExpend,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pCashPay,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashExpend,  \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') then entry.FActualLocAmt  else 0 end) as disPay,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashPay,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashExpend,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-007','SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fiBillExpend, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-007') then entry.FActualLocAmt  else 0 end) as fAcceptAmout,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fInvoicingExpend,  \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-003','SF-010') then entry.FActualLocAmt  else 0 end) as dPeriodCost,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-049','SF-050','SF-011') then entry.FActualLocAmt  else 0 end) as dReverseExpend,   \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-012') then entry.FActualLocAmt  else 0 end) as sWage,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-013') then entry.FActualLocAmt  else 0 end) as sFive,   \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-014') then entry.FActualLocAmt  else 0 end) as sOther,    \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-015') then entry.FActualLocAmt  else 0 end) as taxExpend,    \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-016') then entry.FActualLocAmt  else 0 end) as fineExpend,   \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-017') then entry.FActualLocAmt  else 0 end) as depositExpend,\n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-018') then entry.FActualLocAmt  else 0 end) as donateExpend, \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-028','SF-029','SF-030') then entry.FActualLocAmt  else 0 end) as otherExpend,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-019') then entry.FActualLocAmt  else 0 end) as repayLoan,   \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-020') then entry.FActualLocAmt  else 0 end) as pfLoanInter,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-021') then entry.FActualLocAmt  else 0 end) as pfFinanceFee,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-022') then entry.FActualLocAmt  else 0 end) as dividedPayout,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-023', 'SF-024','SF-025') then entry.FActualLocAmt  else 0 end) as groupContacts,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-026') then entry.FActualLocAmt  else 0 end) as outInvest,     \n\r");sql.append("SUM(case when recdetail.FNUMBER in('SF-027') then entry.FActualLocAmt  else 0 end) as buyAssets     \n\r");sql.append("FROM T_CAS_PaymentBill as payment \n\r");sql.append("left join T_CAS_PaymentBillEntry as entry \n\r");sql.append("on payment.fid = entry.FPaymentBillID \n\r");sql.append("INNER JOIN T_ORG_Company AS company\n\r");sql.append("ON payment.FCompanyID = COMPANY.FID\n\r");sql.append("left join T_BD_SettlementType as settle \n\r");sql.append("on payment.fsettlementtypeID = settle.FID \n\r");sql.append("left join T_CAS_AssItemsForCashPay payAssItem\n\r");sql.append("on payAssItem.fentryparentid = entry.fid\n\r");sql.append("left join T_BD_GeneralAsstActType as general  \n\r");sql.append("on payAssItem.ffromid = general.fid \n\r");sql.append("left join T_CAS_FeeType feetype \n\r");sql.append("on payment.ffeetypeid = feetype.fid \n\r");sql.append("left join CT_CAS_RecDetail recdetail \n\r");sql.append("on feetype.FID = recdetail.CFFEETYPEID \n\r");sql.append("WHERE 1 = 1 \n\r");if (null != prmtcompany) {sql.append("and company.fname_l2=? \r\n");sp.addString(prmtcompany);}if (null != prmtperiod) {String syear = prmtperiod.substring(0,4);int year = Integer.valueOf(syear).intValue();String smonth = prmtperiod.substring(5, prmtperiod.indexOf("期"));int month = Integer.valueOf(smonth).intValue();// 最后一天Calendar calLast = Calendar.getInstance();calLast.set(Calendar.YEAR, year);calLast.set(Calendar.MONTH, month);int lastDay = calLast.getMinimum(Calendar.DATE);calLast.set(Calendar.DAY_OF_MONTH, lastDay - 1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String lastDate = sdf.format(calLast.getTime());// 第一天Calendar calFirst = Calendar.getInstance();calFirst.set(Calendar.DAY_OF_MONTH, calFirst.getActualMinimum(Calendar.DAY_OF_MONTH));     String firstDate = sdf.format(calFirst.getTime());sql.append("and payment.fpaydate between to_date(?)  and to_date(?) \r\n");sp.addString(firstDate);sp.addString(lastDate);}if (null != customproject) {sql.append("and general.fname_l2=? \r\n");sp.addString(customproject);}sql.append("group by company.fname_l2, general.fnumber, general.fname_l2 \r\n");System.out.println(sql);IRowSet rs = DbUtil.executeQuery(ctx, sql.toString(), sp.getParams());if(rs.size()>0) {params.setObject("rows", rs);}// 收款单StringBuffer sqlRec = new StringBuffer();SqlParams spRec = new SqlParams();sqlRec.append("SELECT company.fname_l2 as company, general.fnumber as contractNumber, general.fname_l2 as contractName,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') then entry.FActualLocAmt  else 0 end) as projIncome, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER in ('01','02','03','06','07','08','31')  then entry.FActualLocAmt  else 0 end)  as pCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-032','SF-031') and settle.FNUMBER not in('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-033') then entry.FActualLocAmt  else 0 end) as saleIncome,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-033') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as sNCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-034') then entry.FActualLocAmt  else 0 end) as disIncome,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-034') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashBack,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-035', 'SF-036') then entry.FActualLocAmt  else 0 end) as billCashIncome,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-037', 'SF-038') then entry.FActualLocAmt  else 0 end) as deposit,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-039') then entry.FActualLocAmt  else 0 end) as fiSubIncome,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-040','SF-048') then entry.FActualLocAmt  else 0 end) as otherIncome, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-041') then entry.FActualLocAmt  else 0 end) as absorbInvest, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-042') then entry.FActualLocAmt  else 0 end) as lNewLoan, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-043') then entry.FActualLocAmt  else 0 end) as interIncome,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-044', 'SF-045') then entry.FActualLocAmt  else 0 end) as groupConta, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-046') then entry.FActualLocAmt  else 0 end) as investDivid,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-047') then entry.FActualLocAmt  else 0 end) as assetsCZ, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') then entry.FActualLocAmt  else 0 end) as projExpend,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pCashPay,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-001','SF-002') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as pNCashExpend,  \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') then entry.FActualLocAmt  else 0 end) as disPay,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dCashPay,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-004','SF-005','SF-006') and settle.FNUMBER not in ('01','02','03','06','07','08','31') then entry.FActualLocAmt  else 0 end) as dNCashExpend,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-007','SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fiBillExpend, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-007') then entry.FActualLocAmt  else 0 end) as fAcceptAmout,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-008','SF-009') then entry.FActualLocAmt  else 0 end) as fInvoicingExpend,  \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-003','SF-010') then entry.FActualLocAmt  else 0 end) as dPeriodCost,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-049','SF-050','SF-011') then entry.FActualLocAmt  else 0 end) as dReverseExpend,   \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-012') then entry.FActualLocAmt  else 0 end) as sWage,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-013') then entry.FActualLocAmt  else 0 end) as sFive,   \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-014') then entry.FActualLocAmt  else 0 end) as sOther,    \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-015') then entry.FActualLocAmt  else 0 end) as taxExpend,    \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-016') then entry.FActualLocAmt  else 0 end) as fineExpend,   \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-017') then entry.FActualLocAmt  else 0 end) as depositExpend,\r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-018') then entry.FActualLocAmt  else 0 end) as donateExpend, \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-028','SF-029','SF-030') then entry.FActualLocAmt  else 0 end) as otherExpend,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-019') then entry.FActualLocAmt  else 0 end) as repayLoan,   \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-020') then entry.FActualLocAmt  else 0 end) as pfLoanInter,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-021') then entry.FActualLocAmt  else 0 end) as pfFinanceFee,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-022') then entry.FActualLocAmt  else 0 end) as dividedPayout,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-023', 'SF-024','SF-025') then entry.FActualLocAmt  else 0 end) as groupContacts,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-026') then entry.FActualLocAmt  else 0 end) as outInvest,     \r\n");sqlRec.append("SUM(case when recdetail.FNUMBER in('SF-027') then entry.FActualLocAmt  else 0 end) as buyAssets     \r\n");sqlRec.append("FROM T_CAS_ReceivingBill as payment \n\r");sqlRec.append("left join T_CAS_ReceivingBillEntry as entry  \n\r");sqlRec.append("on payment.fid = entry.FReceivingBillID  \n\r");sqlRec.append("INNER JOIN T_ORG_Company AS company\n\r");sqlRec.append("ON payment.FCompanyID = COMPANY.FID\n\r");sqlRec.append("left join T_BD_SettlementType as settle \n\r");sqlRec.append("on payment.fsettlementtypeID = settle.FID \n\r");sqlRec.append("left join T_CAS_AssItemsForCashRec payAssItem\n\r");sqlRec.append("on payAssItem.fentryparentid = entry.fid\n\r");sqlRec.append("left join T_BD_GeneralAsstActType as general  \n\r");sqlRec.append("on payAssItem.ffromid = general.fid \n\r");sqlRec.append("left join T_CAS_FeeType feetype \n\r");sqlRec.append("on payment.ffeetypeid = feetype.fid \n\r");sqlRec.append("left join CT_CAS_RecDetail recdetail \n\r");sqlRec.append("on feetype.FID = recdetail.CFFEETYPEID \n\r");sqlRec.append("WHERE 1 = 1 \n\r");if (null != prmtcompany) {sqlRec.append("and company.fname_l2=? \r\n");spRec.addString(prmtcompany);}if (null != prmtperiod) {String syear = prmtperiod.substring(0,4);int year = Integer.valueOf(syear).intValue();String smonth = prmtperiod.substring(5, prmtperiod.indexOf("期"));int month = Integer.valueOf(smonth).intValue();// 最后一天Calendar calLast = Calendar.getInstance();calLast.set(Calendar.YEAR, year);calLast.set(Calendar.MONTH, month);int lastDay = calLast.getMinimum(Calendar.DATE);calLast.set(Calendar.DAY_OF_MONTH, lastDay - 1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String lastDate = sdf.format(calLast.getTime());// 第一天Calendar calFirst = Calendar.getInstance();calFirst.set(Calendar.DAY_OF_MONTH, calFirst.getActualMinimum(Calendar.DAY_OF_MONTH));     String firstDate = sdf.format(calFirst.getTime());sqlRec.append("and payment.frecdate between to_date(?)  and to_date(?) \r\n");spRec.addString(firstDate);spRec.addString(lastDate);}if (null != customproject) {sqlRec.append("and general.fname_l2=? \r\n");spRec.addString(customproject);}sqlRec.append("group by company.fname_l2, general.fnumber, general.fname_l2 \r\n");System.out.println(sqlRec);IRowSet rsRec = DbUtil.executeQuery(ctx, sqlRec.toString(), spRec.getParams());if(rsRec.size()>0) {params.setObject("rowsRec", rsRec);}     return params;

这样就拿到了结果集

2.3 处理结果集并填充表格

Java视图窗口在ReportUI.java中重写query方法,参考代码如下:

 @Overrideprotected void query() {// 查询条件设置到界面initParamToUI(params);kDTable1.checkParsed();kDTable1.setEditable(false);try {//设置光标处于等待状态setCursorOfWair();//查询数据,在Facade查询方法里返回值是RptParams,需要把查询集保存到RptParams里,再通过界面取出即可RptParams rps = getRemoteInstance().query(params);if(rps!=null){IRowSet conReport =  ((IRowSet)rps.getObject("rows")) ;IRowSet conReportRec =  ((IRowSet)rps.getObject("rowsRec")) ;if(conReport!=null){fillTable(conReport);kDTable1.getSelectManager().setSelectMode(KDTSelectManager.ROW_SELECT);}if(conReportRec!=null){fillTable(conReportRec);kDTable1.getSelectManager().setSelectMode(KDTSelectManager.ROW_SELECT);} } } catch (Exception e) {e.printStackTrace();this.handUIException(e);} finally {this.setCursorOfDefault();}}

填充表格方法可参考:

 private int fillTable(IRowSet rs) throws SQLException {// TODO Auto-generated method stubDecimalFormat df = new DecimalFormat("0.00");
//      kDTable1.removeRows();while (rs.next()) {           IRow row = kDTable1.addRow();row.getCell("company").setValue(rs.getString("company"));row.getCell("contractNumber").setValue(rs.getString("contractNumber"));row.getCell("contractName").setValue(rs.getString("contractName"));row.getCell("manageInflow").setValue(rs.getDouble("projIncome") + rs.getDouble("saleIncome") + rs.getDouble("disIncome") + rs.getDouble("billCashIncome") + rs.getDouble("deposit")+ rs.getDouble("fiSubIncome") + rs.getDouble("otherIncome"));row.getCell("projIncome").setValue(rs.getDouble("projIncome"));row.getCell("pCashBack").setValue(rs.getDouble("pCashBack"));row.getCell("pNCashBack").setValue(rs.getDouble("pNCashBack"));row.getCell("saleIncome").setValue(rs.getDouble("saleIncome"));row.getCell("sCashBack").setValue(rs.getDouble("sCashBack"));row.getCell("disIncome").setValue(rs.getDouble("disIncome"));row.getCell("dCashBack").setValue(rs.getDouble("dCashBack"));row.getCell("dNCashBack").setValue(rs.getDouble("dCashBack"));row.getCell("billCashIncome").setValue(rs.getDouble("billCashIncome"));row.getCell("deposit").setValue(rs.getDouble("deposit"));row.getCell("fiSubIncome").setValue(rs.getDouble("fiSubIncome"));row.getCell("otherIncome").setValue(rs.getDouble("otherIncome"));row.getCell("raiseInflow").setValue(rs.getDouble("absorbInvest") + rs.getDouble("interIncome") + rs.getDouble("groupConta"));row.getCell("absorbInvest").setValue(rs.getDouble("absorbInvest"));row.getCell("loanIncome").setValue(rs.getDouble("lNewLoan")); //row.getCell("lNewLoan").setValue(rs.getDouble("lNewLoan")); row.getCell("lContiLoan").setValue(null); //续贷款无编码row.getCell("interIncome").setValue(rs.getDouble("interIncome"));         row.getCell("groupConta").setValue(rs.getDouble("groupConta"));row.getCell("investInflow").setValue(rs.getDouble("investDivid") + rs.getDouble("assetsCZ")); row.getCell("investDivid").setValue(rs.getDouble("investDivid"));row.getCell("assetsCZ").setValue(rs.getDouble("assetsCZ"));row.getCell("inflowSub").setValue(rs.getDouble("projIncome") + rs.getDouble("saleIncome") + rs.getDouble("disIncome") + rs.getDouble("billCashIncome") + rs.getDouble("deposit")+ rs.getDouble("fiSubIncome") + rs.getDouble("otherIncome") + rs.getDouble("absorbInvest") + rs.getDouble("interIncome") + rs.getDouble("groupConta") + rs.getDouble("investDivid") + rs.getDouble("assetsCZ"));row.getCell("manageOutflow").setValue(rs.getDouble("pCashPay") + rs.getDouble("dCashPay") + rs.getDouble("fiBillExpend")+ rs.getDouble("dPeriodCost") + rs.getDouble("dReverseExpend") + rs.getDouble("sWage")+ rs.getDouble("sFive") + rs.getDouble("sOther") + rs.getDouble("taxExpend") + rs.getDouble("fineExpend")+ rs.getDouble("depositExpend") + rs.getDouble("donateExpend") + rs.getDouble("otherExpend"));row.getCell("projExpend").setValue(rs.getDouble("projExpend"));row.getCell("pCashPay").setValue(rs.getDouble("pCashPay"));row.getCell("pNCashExpend").setValue(rs.getDouble("pNCashExpend"));row.getCell("disPay").setValue(rs.getDouble("disPay"));row.getCell("dCashPay").setValue(rs.getDouble("dCashPay"));row.getCell("dNCashExpend").setValue(rs.getDouble("dNCashExpend"));row.getCell("fiBillExpend").setValue(rs.getDouble("fiBillExpend"));row.getCell("fAcceptAmout").setValue(rs.getDouble("fAcceptAmout"));row.getCell("fInvoicingExpend").setValue(rs.getDouble("fInvoicingExpend"));row.getCell("dailyExpend").setValue(rs.getDouble("dPeriodCost") + rs.getDouble("dReverseExpend"));row.getCell("dPeriodCost").setValue(rs.getDouble("dPeriodCost"));row.getCell("dReverseExpend").setValue(rs.getDouble("dReverseExpend"));row.getCell("staffSalary").setValue(rs.getDouble("sWage") + rs.getDouble("sFive") + rs.getDouble("sOther"));row.getCell("sWage").setValue(rs.getDouble("sWage"));row.getCell("sFive").setValue(rs.getDouble("sFive"));row.getCell("sOther").setValue(rs.getDouble("sOther"));row.getCell("taxExpend").setValue(rs.getDouble("taxExpend"));row.getCell("fineExpend").setValue(rs.getDouble("fineExpend"));row.getCell("depositExpend").setValue(rs.getDouble("depositExpend"));row.getCell("donateExpend").setValue(rs.getDouble("donateExpend"));row.getCell("otherExpend").setValue(rs.getDouble("otherExpend"));row.getCell("fundOutflow").setValue(rs.getDouble("repayLoan") + rs.getDouble("pfLoanInter") + rs.getDouble("pfFinanceFee")+ rs.getDouble("dividedPayout") + rs.getDouble("groupContacts"));row.getCell("repayLoan").setValue(rs.getDouble("repayLoan"));row.getCell("payFinance").setValue(rs.getDouble("pfLoanInter") + rs.getDouble("pfFinanceFee"));row.getCell("pfLoanInter").setValue(rs.getDouble("pfLoanInter"));row.getCell("pfFinanceFee").setValue(rs.getDouble("pfFinanceFee"));row.getCell("dividedPayout").setValue(rs.getDouble("dividedPayout"));row.getCell("groupContacts").setValue(rs.getDouble("groupContacts"));row.getCell("investOutflow").setValue(rs.getDouble("outInvest") + rs.getDouble("buyAssets"));row.getCell("outInvest").setValue(rs.getDouble("outInvest"));row.getCell("buyAssets").setValue(rs.getDouble("buyAssets"));row.getCell("outflowSub").setValue(rs.getDouble("pCashPay") + rs.getDouble("dCashPay") + rs.getDouble("fiBillExpend")+ rs.getDouble("dPeriodCost") + rs.getDouble("dReverseExpend") + rs.getDouble("sWage")+ rs.getDouble("sFive") + rs.getDouble("sOther") + rs.getDouble("taxExpend") + rs.getDouble("fineExpend")+ rs.getDouble("depositExpend") + rs.getDouble("donateExpend") + rs.getDouble("otherExpend") + rs.getDouble("repayLoan") + rs.getDouble("pfLoanInter") + rs.getDouble("pfFinanceFee") + rs.getDouble("dividedPayout") + rs.getDouble("groupContacts")+ rs.getDouble("outInvest") + rs.getDouble("buyAssets"));}return kDTable1.getRowCount();}

2.4 FilterUI

筛选界面的Java文件只需要重写getCustomCondition,setCustomCondition,和verify方法即可
代码参考如下

 @Overridepublic RptParams getCustomCondition() {// TODO Auto-generated method stubRptParams param = new RptParams();// 放置本界面的参数RptConditionManager rcm = new RptConditionManager();// 财务组织if (null != this.prmtcompany.getValue()) {rcm.setProperty("prmtcompany", this.prmtcompany.getValue());} else {rcm.setProperty("prmtcompany", null);}// 期间if (null != this.prmtperiod.getValue()) {rcm.setProperty("prmtperiod", this.prmtperiod.getValue());} else {rcm.setProperty("prmtperiod", null);}// 自定义核算项目if (null != this.customproject.getValue()) {rcm.setProperty("customproject", this.customproject.getValue());} else {rcm.setProperty("customproject", null);}Map map = rcm.toMap();param.putAll(map);return param;}@Overridepublic void setCustomCondition(RptParams params) {// TODO Auto-generated method stubif (null != params.getObject("prmtcompany")) { prmtcompany.setValue(params.getObject("prmtcompany")); } else {prmtcompany.setValue(null);}if (null != params.getObject("prmtperiod")) {prmtperiod.setValue(params.getObject("prmtperiod"));} else {prmtperiod.setValue(null);}if (null != params.getObject("customproject")) {customproject.setValue(params.getObject("customproject"));} else {customproject.setValue(null);}}@Overridepublic boolean verify() {// TODO Auto-generated method stubif(this.prmtcompany.getValue() == null) {MsgBox.showError("请选择公司");SysUtil.abort();}if(this.prmtperiod.getValue() == null) {MsgBox.showError("请选择期间");SysUtil.abort();}return super.verify();}

2.5 客户化菜单

用administrator账号登录,选择系统–>客户化菜单编辑

这里的UI对象选择上述的ReportUI的完整文件路径,保存重启即可

3效果

指定路径下找到菜单并双击打开


EAS报表开发----收付明细相关推荐

  1. EAS BOS 报表开发

    EAS BOS 报表开发 只是做为新手BOS报表开发一个参考: 开发所需要新建的文件 ContractReportFilterUI:报表弹出的条件选择框,在新建时需要继承系统UI类 com.kingd ...

  2. 微信电商收付通所遇到的坑 基于TP5+wechatpay-guzzle-middleware开发

    微信电商收付通开发完成已经2个月了,一直没有时间整理,现在抽个时间整理出来,我这边用的是TP5框架+官方的wechatpay-guzzle-middleware开发的电商通,现在把我遇到的坑给大家介绍 ...

  3. 微信支付-电商收付通开发-04.支付

    文章目录 合单支付 预支付 调起支付 支付回调通知 查询合单订单 参考链接 合单支付 合单支付是指可以在一个订单中包含多个商家的多个商品,一次性支付. 关于JSAPI.APP.小程序等支付类型的区别: ...

  4. 微信支付-电商收付通开发-01.材料准备

    目录 功能介绍 需要准备的材料 1. 服务号/小程序 2. 商户号 3. 开通电商收付通 4 准备好你的证书 4.1. 商户API证书: 4.2. 商户API v3秘钥 4.3. 微信支付平台证书 参 ...

  5. 微信支付-电商收付通开发-06.商户提现

    文章目录 查询二级商户余额 二级商户余额提现 查询二级商户提现单 参考链接 查询二级商户余额 这里的特殊情况下商家可以在微信支付平台直接申请提现,我自己测试的小微商户并没有发现可以提现的地方,不过可以 ...

  6. SAP报表开发工具 Report Painter

    这里所指的Report Painter是SAP ECC产品中的一个报表开发工具,中文名为报表绘制器.经常与Report Painter一同提出的Report Writer是其前身,原应用于SAP R/ ...

  7. 数字人民币解决中小企收付难点

    随着数字经济的发展,中小企业的经营环境面临着巨大的变化.用科技金融手段,如数字人民币等,在供给侧为中小企业提供普惠金融服务,具有重要意义. 中小企业是我国经济大循环的毛细血管,数量庞大.少数中小企业具 ...

  8. 电商收付通整合小程序文档整理

    一.开发环境 开发前准备材料 服务商平台中开通[收付通]工具箱. 商户私钥:商户申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件apiclient_key.pem中. 商户API证书 ...

  9. 【报表技术】IReport 图形化报表开发工具安装教程

    [报表技术]IReport 图形化报表开发工具安装教程 JasperReport简单介绍 JasperReport是一个强大.灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML, ...

最新文章

  1. 002_SpringBoot整合Servlet
  2. Python跨平台文件夹分割方法os.sep
  3. 安卓禁止ScrollView内的控件改变之后自动滚动
  4. 裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大
  5. 使用Spark/Java读取已开启Kerberos认证的HBase
  6. es6的map()方法解释
  7. Socket常用语法与socketserver实例
  8. linux ansible_使用Ansible在Raspberry Pi上构建基于Linux的HPC系统
  9. 【本周六,上海】2021年的首场openGauss Meetup,有干货有礼品,只等你来!
  10. php 定义一个json对象,PHP中使用json数据格式定义字面量对象的方法
  11. 【元胞自动机】基于matlab激进策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1297期】
  12. foobar 更换皮肤
  13. 7 spss主成分分析
  14. VMware Workstation创建Windows 8.1虚拟机
  15. 【软件工程】软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表
  16. 甘肃一名高考生偷偷带手机进考场,拍题并上传到网上出钱求答案……
  17. Aurora核使用中tx_dst_rdy信号拉低问题
  18. Excel 多列条件查找
  19. 告别平淡(平庸)从做难事儿开始
  20. 外贸英语900句之 保险 Insurance

热门文章

  1. 计算机专业学生致谢词,计算机专业毕业论文致谢词
  2. ros手柄控制机器人小车(一)
  3. 确认过眼神—是我重返博客的第一文
  4. 不必把太多人请到你的人生中
  5. 优秀的 Node.js 包汇总
  6. Python学习日志16 - 数据库SQL查询
  7. “周末不喝酒,人生路白走”,智慧山「精酿的夏天」3.0又将引爆全城!
  8. IDEA如何简单的设置中文
  9. iphone的Safari浏览器中HTML5上传图片方向问题解决方法
  10. 画了一个田径场,可以踢世界杯吗?