如何使用FastReport.Net在SAP NetWeaver中生成報(bào)表 - 第2部分 輸出信息(打印文檔)
文章的第1部分
任務(wù):
構(gòu)建采購訂單的打印格式并生成文檔類型“NB標(biāo)準(zhǔn)訂單”。
例:
準(zhǔn)備數(shù)據(jù)字典。
對(duì)于PO輸出數(shù)據(jù),我們需要在ABAP字典中創(chuàng)建結(jié)構(gòu)。 這些結(jié)構(gòu)將在報(bào)表設(shè)計(jì)器中用作數(shù)據(jù)源。
運(yùn)行事項(xiàng)SE11。 創(chuàng)建并激活以下對(duì)象:
結(jié)構(gòu)ZZPO_ITEM_S
表格類型ZZPO_ITEM_TT
結(jié)構(gòu)ZZPO_PARTNER_S
結(jié)構(gòu)ZZPO_DOC_S
表格類型ZZPO_DOC_TT
準(zhǔn)備模板
運(yùn)行事項(xiàng)ZFR_RMAN。
按“新建”按鈕,并添加一個(gè)新的報(bào)告“ZPO_FR”,其參數(shù)如屏幕截圖所示
保存報(bào)告。
保存切換到編輯模式后(按“編輯”按鈕),然后按“Designer”按鈕。
系統(tǒng)將要求輸入數(shù)據(jù)源表。 輸入ZPO_DOC_TT。
確認(rèn)后Fast report designer將被打開。
配置bands。
菜單:Report->Configure bands。
- 配置(添加\刪除)bands,如截圖所示 按“關(guān)閉”按鈕。
- 雙擊第一級(jí)“數(shù)據(jù)”band,選擇“ITEMS”作為數(shù)據(jù)源。
- 雙擊第二級(jí)“數(shù)據(jù)”band,選擇“SCHD”作為數(shù)據(jù)源。
- 放置報(bào)告元素。
- 展開“報(bào)告標(biāo)題”band,從元素工具欄放置“文本元素”,并填充靜態(tài)文本。 將字段從“MYDATASET”數(shù)據(jù)源表拖動(dòng)到“報(bào)告標(biāo)題”。
- 格式化“頁眉”,顯示項(xiàng)目標(biāo)題(添加靜態(tài)文本元素)。
- 格式化“數(shù)據(jù):ITEMS” - 從“ITEMS”表中放置字段。
- 格式化“數(shù)據(jù):SCHD” - 從“SHDL”表中放置字段。
- 從“ITEMS”表([ITEMS.MENGE]和[ITEMS.MEINS])中放置摘要字段到“頁腳”區(qū)域的位置。
designer的用戶和開發(fā)人員手冊(cè)可以在這里找到:http://www.xiangyinys.com/product/3657/download
最終模板:
如果按“預(yù)覽”按鈕 - 報(bào)告將為空,因?yàn)槿匀粵]有生成“測(cè)試”數(shù)據(jù)。 稍后我們將看到如何使用數(shù)據(jù)生成臨時(shí)數(shù)據(jù)和預(yù)覽報(bào)告。
保存報(bào)告模板(按SAP標(biāo)準(zhǔn)按鈕)并退出designer。
現(xiàn)在按“保存”保存\更新報(bào)告設(shè)置。
開發(fā)打印程序并執(zhí)行定制
我們需要開發(fā)程序\例程以便能夠從采購訂單輸出功能調(diào)用打印表單。
在ABAP Workbench中創(chuàng)建新的模塊池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
在代碼中,我們調(diào)用函數(shù)來檢索PO信息,然后將數(shù)據(jù)映射到我們的結(jié)構(gòu),并調(diào)用方法ZCL_FRBASE_REPORT-> BUILD_REPORT來生成報(bào)告。 如果我們需要調(diào)試表單與測(cè)試數(shù)據(jù) - 注釋調(diào)用“BUILD_REPORT”方法和下面的注釋部分。
定制。
調(diào)用交易NACE并為采購訂單創(chuàng)建新的輸出類型ZZFR。 打印程序選擇ZZMM_FRPRINTING和例行PO_PRINT_FR。 選擇訪問序列0001。
向輸出模式添加新的輸出類型(例如RMBEF1)
創(chuàng)建條件類型ZZFR和PO類型NB的條件記錄。
打開以下設(shè)置路徑:SPRO->物料管理 - >采購 - >消息 - >輸出控制 - >消息類型 - >定義采購訂單的消息類型 - >微調(diào)控制:采購訂單。
添加ZZFR的記錄
現(xiàn)在,您可以使用事項(xiàng)ME23N中的標(biāo)準(zhǔn)按鈕打開現(xiàn)有的采購訂單或創(chuàng)建新的采購訂單并測(cè)試打印表單。 否則使用事項(xiàng)ME9F進(jìn)行打印。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服 | 聯(lián)系Elyn
推薦閱讀
- FastReport VCL報(bào)表控件開發(fā)者手冊(cè)
- FastReport Online Designer中文手冊(cè)
- Fastreport.Net教程2016
- Fastreport.Net用戶手冊(cè)
- FastReport.Net教程2017(持續(xù)更新中···)
- FastReport Online Designer教程2017(持續(xù)更新中···)
- 報(bào)表教程2017(持續(xù)更新中···)