[基本原理]
1) 寫相應視圖
2) 水晶報表開發報表/與相應視圖關聯
3) 報表rpt關聯至IFS應用程式中
[前期準備]
1) 寫相應視圖
個人建議作法,一張報表關聯一個視圖
原因有三:友善報表設計(不用很麻煩的在水晶報表裡把好多視圖關聯)
友善權限設定
日常維護友善(直接修改背景SQL腳本就可以)
舉過以前寫的例子如下(根據報表需求寫相應的視圖):
DEFINE MODULE = QLHMOD
DEFINE LU = HVIEW
DEFINE VIEW = HV_SO_WIP
CREATE OR REPLACE VIEW &VIEW AS
select HPUB_FUN_API.gCompName CompName,
substr(SITE_API.Get_Description(CONTRACT),1,100) site_desc,
rpt_month,contract,so_no,mat_part,mat_part_desc,
inventory_part_api.Get_Unit_Meas(contract,mat_part) unit_meas,
qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size wip_qty,
HPUB_FIN_API.GetPartCost(contract,rpt_month,mat_part,'ALL')*(qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) cost_all,
HPUB_FIN_API.GetPartCost(contract,rpt_month,mat_part,'110')*(qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) cost_110,
HPUB_FIN_API.GetPartCost(contract,rpt_month,mat_part,'200')*(qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) cost_200,
HPUB_FIN_API.GetPartCost(contract,rpt_month,mat_part,'300')*(qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) cost_300,
HPUB_FIN_API.GetPartCost(contract,rpt_month,mat_part,'321')*(qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) cost_321
from DPCC_RPT_WIP_HIST
where contract = HPUB_FUN_API.gSite
and (qty_issued - (qty_complete+qty_scrapped)*qty_required/lot_size) <> 0
WITH read only;
COMMENT ON TABLE &VIEW
IS 'LU=&LU^PROMPT=&VIEW^MODULE=&MODULE^';
2) 水晶報表開發報表/與相應視圖關聯
這個網上的資料比較多,大家可以随便google一下。
要注意的幾點就是:
--最好選用視圖不要選用表;
--報表中的視圖選擇好後,再另用個别名:
(别名設定方式: 點選主菜單“Database/Set Alias...”條目,系統将彈出“Set Alias”對話框,選中每一個視圖或表,再點選“Set Alias...”按鈕,系統将彈出“Alias Name”對話框,在每一個視圖名後加一個“/”,如“HV_SO_WIP/;)-->此步驟不做的話,挂至IFS應用程式中時,會彈出login對話框。
---------------------------------------------------------------------------------------------------------
以上資料為20080305更新加入;
以下資料為20040625寫的:
操作流程介紹step 3) 報表rpt關聯至IFS應用程式中;
---------------------------------------------------------------------------------------------------------
1)設計報表 Seagate CryStal Reports=> Design *.rpt
2)添加報表 IFS/Admin->Fnd1 AdMin -> Quick Report -> 添加一筆Quick Report
3) 查找id IFS/Admin -> Installation-> SQL Query tool 下sql語句
select quick_report_id,description from quick_report;查找剛才添加的報表的id:42
4) 添加到相應窗體 IFS/Admin -> Fnd1 Admin/CustomMenu/CustomMenu-Detail添加一筆資料:
ActionType-> SAL Code
Windows->窗體名稱
Parameter=>InfoServer.QuickReportStart(SalNumberToStrX(42,0)||'@')
//請注意此句中的42
5)相應窗體打開客戶化菜單選項: 打開ifs應用程式->窗體->點右鍵->選中"CustomItem"
如此窗體中點右鍵就可以看見剛才開發的報表了.
by foreveryday007 20040625
心有多大,宇宙就有多大。
http://blog.csdn.net/foreveryday007