FastReport中国社区FastReport联系电话 联系电话:023-68661681

如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)

来源:   发布时间:2017-11-22   浏览:3460次

文章的第1部分

任务:

构建采购订单的打印格式并生成文档类型“NB标准订单”。 例:
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)

准备数据字典。

对于PO输出数据,我们需要在ABAP字典中创建结构。 这些结构将在报表设计器中用作数据源。 运行事项SE11。 创建并激活以下对象: 结构ZZPO_ITEM_S
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
表格类型ZZPO_ITEM_TT
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
结构ZZPO_PARTNER_S
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
结构ZZPO_DOC_S
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
表格类型ZZPO_DOC_TT
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)

准备模板

运行事项ZFR_RMAN。 按“新建”按钮,并添加一个新的报告“ZPO_FR”,其参数如屏幕截图所示
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
保存报告。 保存切换到编辑模式后(按“编辑”按钮),然后按“Designer”按钮。 系统将要求输入数据源表。 输入ZPO_DOC_TT。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
确认后Fast report designer将被打开。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)

配置bands。

菜单:Report->Configure bands。
  • 配置(添加\删除)bands,如截图所示
    如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
    按“关闭”按钮。
  • 双击第一级“数据”band,选择“ITEMS”作为数据源。
    如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
  • 双击第二级“数据”band,选择“SCHD”作为数据源。
  • 放置报告元素。
    • 展开“报告标题”band,从元素工具栏放置“文本元素”,并填充静态文本。 将字段从“MYDATASET”数据源表拖动到“报告标题”。
    • 格式化“页眉”,显示项目标题(添加静态文本元素)。
    • 格式化“数据:ITEMS” - 从“ITEMS”表中放置字段。
    • 格式化“数据:SCHD” - 从“SHDL”表中放置字段。
    • 从“ITEMS”表([ITEMS.MENGE]和[ITEMS.MEINS])中放置摘要字段到“页脚”区域的位置。
designer的用户和开发人员手册可以在这里找到:https://www.evget.com/product/3657/download 最终模板:
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
如果按“预览”按钮 - 报告将为空,因为仍然没有生成“测试”数据。 稍后我们将看到如何使用数据生成临时数据和预览报告。 保存报告模板(按SAP标准按钮)并退出designer。 现在按“保存”保存\更新报告设置。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)

开发打印程序并执行定制

我们需要开发程序\例程以便能够从采购订单输出功能调用打印表单。 在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。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
向输出模式添加新的输出类型(例如RMBEF1)
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
创建条件类型ZZFR和PO类型NB的条件记录。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
打开以下设置路径:SPRO->物料管理 - >采购 - >消息 - >输出控制 - >消息类型 - >定义采购订单的消息类型 - >微调控制:采购订单。 添加ZZFR的记录
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
现在,您可以使用事项ME23N中的标准按钮打开现有的采购订单或创建新的采购订单并测试打印表单。 否则使用事项ME9F进行打印。
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
如何使用FastReport.Net在SAP NetWeaver中生成报表 - 第2部分 输出信息(打印文档)
  产品介绍 | 下载试用 | 优惠活动 | 在线客服 | 联系Elyn  
推荐阅读

FastReport2017.4新版大促
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1785.html

联系我们
  • 重庆总部 023-68661681
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部