天天看點

Crystal Report + IFS Develop 報表客戶化流程

[基本原理]

  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