本文是金蝶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.FID
left 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=1
group 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方法,參考代碼如下:
@Override
protected 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 stub
DecimalFormat 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方法即可
代碼參考如下
@Override
public RptParams getCustomCondition() {
// TODO Auto-generated method stub
RptParams 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;
}
@Override
public void setCustomCondition(RptParams params) {
// TODO Auto-generated method stub
if (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);
}
}
@Override
public boolean verify() {
// TODO Auto-generated method stub
if(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效果
指定路徑下找到選單并雙擊打開



轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1504.html
標籤:其他
