原創|使用教程|編輯:鄭恭琳|2017-11-21 17:20:37.000|閱讀 662 次
概述:如何使用FastReport.Net在SAP NetWeaver中生成報表 - 第2部分 輸出信息(打印文檔)
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
構建采購訂單的打印格式并生成文檔類型“NB標準訂單”。
例:
對于PO輸出數據,我們需要在ABAP字典中創建結構。 這些結構將在報表設計器中用作數據源。
運行事項SE11。 創建并激活以下對象:
結構ZZPO_ITEM_S
表格類型ZZPO_ITEM_TT
結構ZZPO_PARTNER_S
結構ZZPO_DOC_S
表格類型ZZPO_DOC_TT
運行事項ZFR_RMAN。
按“新建”按鈕,并添加一個新的報告“ZPO_FR”,其參數如屏幕截圖所示
保存報告。
保存切換到編輯模式后(按“編輯”按鈕),然后按“Designer”按鈕。
系統將要求輸入數據源表。 輸入ZPO_DOC_TT。
確認后Fast report designer將被打開。
菜單:Report->Configure bands。
designer的用戶和開發人員手冊可以在這里找到://fc6vip.cn/product/3657/download
最終模板:
如果按“預覽”按鈕 - 報告將為空,因為仍然沒有生成“測試”數據。 稍后我們將看到如何使用數據生成臨時數據和預覽報告。
保存報告模板(按SAP標準按鈕)并退出designer。
現在按“保存”保存\更新報告設置。
我們需要開發程序\例程以便能夠從采購訂單輸出功能調用打印表單。
在ABAP Workbench中創建新的模塊池ZZMM_FRPRINTING。
使用以下代碼添加子程序“po_print_fr”:
*&---------------------------------------------------------------------* *& Module Pool ZZMM_FRPRINTING *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* PROGRAM zzmm_frprinting. TABLES: nast. *&---------------------------------------------------------------------* *& Form po_print_fr *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->ENT_RETCO text * -->ENT_SCREEN text *----------------------------------------------------------------------* FORM po_print_fr USING ent_retco ent_screen. DATA: lv_druvo LIKE t166k-druvo, ls_nast LIKE nast, lv_from_memory, ls_doc TYPE meein_purchase_doc_print, lt_ret TYPE bapiret2_t. DATA lo_fr TYPE REF TO zcl_frbase_report. DATA: ls_order TYPE zzpo_doc_s, lt_order TYPE zzpo_doc_tt, ls_item TYPE zzpo_item_s, ls_schd TYPE eket. FIELD-SYMBOLS: <fs1> TYPE ekpo, <fs2> TYPE eket. CLEAR ent_retco. IF nast-aende EQ space. lv_druvo = '1'. ELSE. lv_druvo = '2'. ENDIF. CALL FUNCTION 'ME_READ_PO_FOR_PRINTING' EXPORTING ix_nast = nast ix_screen = ent_screen IMPORTING ex_retco = ent_retco ex_nast = ls_nast doc = ls_doc CHANGING cx_druvo = lv_druvo cx_from_memory = lv_from_memory. CHECK ent_retco EQ 0. MOVE-CORRESPONDING ls_doc-xekko TO ls_order. SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_order-provdata FROM lfa1 WHERE lifnr = ls_order-lifnr. LOOP AT ls_doc-xekpo ASSIGNING <fs1>. CLEAR ls_item. MOVE-CORRESPONDING <fs1> TO ls_item. LOOP AT ls_doc-xeket ASSIGNING <fs2>. CLEAR ls_schd. CHECK <fs2>-ebelp = ls_item-ebelp. MOVE-CORRESPONDING <fs2> TO ls_schd. APPEND ls_schd TO ls_item-schd. ENDLOOP. APPEND ls_item TO ls_order-items. ENDLOOP. APPEND ls_order TO lt_order. CREATE OBJECT lo_fr EXPORTING iv_reportkey = 'ZPO_FR'. " use for production ent_retco = lo_fr->build_report( lt_order ). ********************************************************************** **use for debugging\template correction " DATA: lv_answer. " lo_fr->set_mode( zcl_frbase_report=>mc_edit ). " lo_fr->call_designer( lt_order ). " CALL FUNCTION 'POPUP_TO_CONFIRM' " EXPORTING " text_question = 'update report template in DB?' " IMPORTING " answer = lv_answer. " if lv_answer eq '1'. " lo_fr->save_report( ). " ENDIF. ********************************************************************** ENDFORM. "po_print_fr
在代碼中,我們調用函數來檢索PO信息,然后將數據映射到我們的結構,并調用方法ZCL_FRBASE_REPORT-> BUILD_REPORT來生成報告。 如果我們需要調試表單與測試數據 - 注釋調用“BUILD_REPORT”方法和下面的注釋部分。
定制。
調用交易NACE并為采購訂單創建新的輸出類型ZZFR。 打印程序選擇ZZMM_FRPRINTING和例行PO_PRINT_FR。 選擇訪問序列0001。
向輸出模式添加新的輸出類型(例如RMBEF1)
創建條件類型ZZFR和PO類型NB的條件記錄。
打開以下設置路徑:SPRO->物料管理 - >采購 - >消息 - >輸出控制 - >消息類型 - >定義采購訂單的消息類型 - >微調控制:采購訂單。
添加ZZFR的記錄
現在,您可以使用事項ME23N中的標準按鈕打開現有的采購訂單或創建新的采購訂單并測試打印表單。 否則使用事項ME9F進行打印。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn