轉載:https://club.kingdee.com/forum.php?mod=viewthread&tid=1092293
直接SQL報表開發起來,非常的簡單快捷,不需要編寫代碼,只要有一點點SQL語言基礎即可,深受歡迎。
本帖按步驟演示如何新開發一個直接SQL報表。
步驟一: 在BOS設計器,點擊新建菜單,創建直接SQL報表
<ignore_js_op>
步驟二:點擊數據源屬性,打開數據源配置向導界面
<ignore_js_op>
步驟三:輸入SQL語句(關鍵步驟)
<ignore_js_op>
步驟四:設置報表列屬性:標題、可見、寬度
<ignore_js_op>
步驟五:設置需要合計的字段
<ignore_js_op>
步驟六:完成數據源設計
<ignore_js_op>
步驟七:把新開發的報表,發布到主控台,供用戶使用
<ignore_js_op>
步驟八:重新登陸K/3 Cloud,在主控台看到新開發的直接SQL報表
<ignore_js_op>
步驟九:SQL語句中嵌入的關鍵字,需要由用戶輸入實際值替代:
相當於由用戶輸入過濾條件
<ignore_js_op>
步驟十:報表運行效果
<ignore_js_op>
小技巧:
1. 關鍵字:可以把SQL語句中,需要由最終用戶輸入的條件,定位為關鍵字;
2. 排序:不能使用ORDER BY子句指定排序字段,請改用,row_number() over (order by t0.FBillNo desc) as FIDENTITYID1實現;
3.使用order by語句,必須在select 后輸入 top 100 percent 語句
示例SQL語句:
select t0.FID, t1.FENTRYID
,t0.FBILLNO
,t0.FDate
,t0.FDOCUMENTSTATUS
,t2.FLOCALCURRID
,ISNULL(t20.FPRICEDIGITS,4) AS FPRICEDIGITS
,ISNULL(t20.FAMOUNTDIGITS,2) AS FAMOUNTDIGITS
,t1.FMATERIALID
,t1M_L.FNAME as FMaterialName
,t1.FQTY
,t1u.FPRECISION as FUnitPrecision
,t1U_L.FNAME as FUnitName
,t1f.FTAXPRICE
,t1f.FALLAMOUNT
,row_number() over (order by t0.FBillNo desc) as FIDENTITYID1
from T_PUR_POORDER t0
inner join T_PUR_POORDERFIN t2 on (t0.FID = t2.FID)
left join T_BD_CURRENCY t20 on (t2.FLOCALCURRID = t20.FCURRENCYID)
inner join T_PUR_POORDERENTRY t1 on (t0.FID = t1.FID)
left join T_BD_MATERIAL_L t1M_L on (t1.FMATERIALID = t1m_l.FMATERIALID and t1M_L.FLOCALEID = 2052)
inner join T_PUR_POORDERENTRY_F t1F on (t1.FENTRYID = t1f.FENTRYID)
left join T_BD_UNIT t1U on (t1f.FPRICEUNITID = t1u.FUNITID)
left join T_BD_UNIT_L t1U_L on (t1U.FUNITID = t1U_L.FUNITID and t1U_L.FLOCALEID = 2052)
where t0.FBILLNO like '%#FBillNO#%'
and t0.FCREATORID = _CurrentUserId_