SAP报表简明教程

这篇具有很好参考价值的文章主要介绍了SAP报表简明教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SAP报表简明教程

 

一、报表需求,根据物料编码和物料类型 查询报表。用户输入界面要求如下: 

SAP报表简明教程 

二、开始写代码。先进入 TCODE:SE38 ,新建一个程序。 

SAP报表简明教程  

点击创建按钮,如下图: 

SAP报表简明教程

 

 

输入标题,写明 此程序的功能 作者,创建时间,点保存,

 

SAP报表简明教程 

输入自己事先建的 开发包, 

SAP报表简明教程 

点击保存按钮, 

SAP报表简明教程

 输入传输请求号,如果没有就新建一个。点击 绿色的 按钮。 

进入页面,如图: 

SAP报表简明教程

  

开始写代码:

 

定义一个结构体,这个结构体 字段会展示到报表上,字段来源可以多个表。

TYPES:BEGIN OF ty_MARA,  
  MATNR TYPE MARA-MATNR,   
  MTART TYPE MARA-MTART,

  MAKTX TYPE MAKT-MAKTX,
END OF ty_MARA.

DATA lt_mara TYPE TABLE OF ty_MARA.

 

代码解释:

 

 

TYPES:BEGIN OF ty_MARA,   定义结构体的名称

MATNR TYPE MARA-MATNR,    
MATNR 是结构体字段,可以自定义,
END OF ty_MARA.  这是结尾。

DATA lt_mara TYPE TABLE OF ty_MARA.  这句是定义一个 类型是结构体ty_MARA 的内表lt_mara。 

接着写:

 

DATA ls_layout TYPE slis_layout_alv. 定义报表的显示风格
DATA lt_fieldcat TYPE slis_t_fieldcat_alv.存放输出栏位名称的列表
DATA ls_fieldcat TYPE slis_fieldcat_alv.负责整个ALV的全局属性

DEFINE fill.
  CLEAR:ls_fieldcat.
*字段名
  ls_fieldcat-fieldname = &1.
*别名
  ls_fieldcat-seltext_l = &2.
  ls_fieldcat-seltext_m = &2.
  ls_fieldcat-seltext_s = &2.
  ls_fieldcat-outputlen = &3.
  ls_fieldcat-no_zero = &4.
  ls_fieldcat-qfieldname = &5.
  APPEND ls_fieldcat TO lt_fieldcat.
END-OF-DEFINITION.

 SELECT-OPTIONS I6 FOR MARA-MATNR.  "这就是页面显示需要输入的物料

 SELECT-OPTIONS I7 FOR MARA-MTART.  "这就是页面显示需要输入物料类型

*  AND   ERDAT IN I6


INITIALIZATION.  "该事件在屏幕未显示之前执行,对程序设置值及屏幕元素进行初始化赋值。


AT SELECTION-SCREEN OUTPUT.  用于屏幕输出时的各屏幕元素值的管控
AT SELECTION-SCREEN.

START-OF-SELECTION. 该事件在单击按钮后触发
  PERFORM GET_DATA.   获取屏幕输入值 的子例程

END-OF-SELECTION.

 

 

 PERFORM frm_display_alv.  定义了一些表格风格样式的子例程


*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM get_data .
SELECT *
   INTO CORRESPONDING FIELDS OF TABLE @lt_mara
   FROM MARA AS a
   LEFT JOIN  MAKT as b ON  a~MATNR = b~MATNR
*  LEFT JOIN MARD as c on a~MATNR = c~MATNR   已经注释了
*  LEFT JOIN eine as d on c~INFNR = d~INFNR   已经注释了

  where a~MATNR in @I6.
这是sql语句,两个表联合查询 ,物料基本资料表MARA 和物料描述遍,这两个表的 主键都是MATNR,他们用MATNR 关联起来


ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_alv .
  PERFORM frm_set_fieldcat.
  PERFORM frm_set_layout.
  PERFORM frm_set_alv.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_fieldcat . 作用是 把表头 字段 的英文改成中文
  "fieldname  seltext  outputlen  no_zero
  fill: 'MATNR' '物料' '' '' ''.
  fill: 'MTART' '物料类型' '' '' ''.
  fill: 'MAKTX' '描述' '' '' ''.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_layout . 
  CLEAR:ls_layout.
  ls_layout-colwidth_optimize = 'X'.
  ls_layout-window_titlebar = ''.
  ls_layout-zebra = 'X'.
  ls_layout-box_fieldname = 'MATNR'.
  ls_fieldcat-tabname = '物料查询'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = sy-cprog
      i_callback_pf_status_set = ' '
      i_callback_user_command  = ' '
      is_layout                = ls_layout  上面已经定义好了
      it_fieldcat              = lt_fieldcat 上面已经定义好了

    TABLES
      t_outtab                 = lt_mara   这个是已经根据查询条件 查询出的内表
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.

  

以上就是代码,激活运行之后显示: 

SAP报表简明教程

 

我们发现这里不是中文提示,需要设置文本元素:

ABAP编辑器中:

转到文本元素选择文本    进行维护

 

SAP报表简明教程

 

SAP报表简明教程

 

 

勾选数据字典参考,然后保存,再激活,文本元素要单独激活。

显示这样就正常了。

 

SAP报表简明教程

 

查询结果:

SAP报表简明教程文章来源地址https://www.toymoban.com/news/detail-759985.html

到了这里,关于SAP报表简明教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Verilator】 1 简明教程

    我是 雪天鱼 ,一名FPGA爱好者,研究方向是FPGA架构探索和数字IC设计。 欢迎来关注我的B站账号,我将定期更新IC设计教程。 B站账号: 雪天鱼 ,https://space.bilibili.com/397002941?spm_id_from=333.1007.0.0 先从GitHub下载实验代码 以一个用SystemVerilog编写的简单ALU来作为DUT(device under test)

    2024年02月02日
    浏览(68)
  • mpack简明教程

    本文先简单介绍MessagePack的基本概念。 然后,介绍一个MessagePack C API - MPack的通常使用。 接着尝试对MPack截断数据的读取。 注:本文完整代码见仓库。 如果你使用过C/C++的json库,那么上手MessagePack是比较容易的。关于C/C++ Json库的使用可见:C++ JSON库的一般使用方法-CSDN博客。

    2024年02月20日
    浏览(53)
  • Husky使用简明教程

    Husky 是一个流行的 Git 钩子工具,用于在不同的 Git 操作(如提交和推送)前自动运行脚本。比如代码格式化、静态检查等。这有助于保持代码库的质量和一致性。本教程将详细介绍 Husky 的原理、使用方式、配置方法以及如何在开发中集成 Husky。 Husky 原理 安装 Husky 配置 Hus

    2024年04月10日
    浏览(50)
  • shell简明教程3函数

    在本章中,您将了解为什么以及何时需要使用函数。 你将学习如何创建函数以及如何使用函数。 我们将讨论变量及其作用域。 学习如何使用参数访问传递给函数的参数。 最后,您还将学习如何使用函数处理退出状态和返回代码。 计算机编程和应用程序开发中有一个概念叫

    2024年02月11日
    浏览(51)
  • Blender骨骼动画简明教程

    Blender 是首选的开源3D动画软件之一。 令人惊讶的是,开始创建简单的角色动画并不需要太多时间。 一旦获得最终的 3D 角色模型,你就可以使用该软件的众多动画功能和工具将其变为现实。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 例如,Blender 的绑定工具将帮助你实现角色

    2024年02月07日
    浏览(52)
  • AI绘画工具简明教程

    官方地址 首先需要邮箱注册,等待邀请(可能需要等待一两天) 能成功登录后会进入这样一个界面 https://app.scenario.com/generators 创建模型 提供的图片集上传的时候得是jpg,还需要裁剪成正方形。批量修改图片在线网站:https://www.birme.net/ 根据图集生成图片 官方网址:https://

    2024年02月11日
    浏览(71)
  • WebGPU开发简明教程【2023】

    WebGPU 是一种全新的现代 API,用于在 Web 应用程序中访问 GPU 的功能。 在 WebGPU 之前,有 WebGL,它提供了 WebGPU 功能的子集。 它启用了新一类丰富的网络内容,开发人员用它构建了令人惊叹的东西。 然而,它基于 2007 年发布的 OpenGL ES 2.0 API,而该 API 又基于更旧的 OpenGL API。

    2024年02月16日
    浏览(48)
  • 电商3D产品渲染简明教程

    3D 渲染让动作电影看起来更酷,让建筑设计变得栩栩如生,现在还可以帮助营销人员推广他们的产品。 从最新的《阿凡达》电影到 Spotify 的上一次营销活动,3D 的应用让一切变得更加美好。 在营销领域,3D 产品渲染可帮助品牌创建产品的高分辨率图像和视频,这些图像和视

    2024年02月13日
    浏览(39)
  • stable diffusion使用简明教程

    controlNet模块使用 上面骨骼图是通过Openpose Editor调整姿势然后send to txt2img到这里的,使用Openpose Edito中姿势生成需要将Openpose Editor指定为none状态。 Preprocessor选项: Preprocessor部分选项使用教程 官方教程链接:Control human pose in Stable Diffusion Stable Diffusion Art (stable-diffusion-art.com) 1.

    2024年02月02日
    浏览(46)
  • 汇编语言简明教程习题答案

    (2)判断题 AX被称为累加器,在8086程序中使用很频繁。(✓) 指令指针IP寄存器属于通用寄存器。(✓) 8086具有8个32位通用寄存器。(×) 解析:8086的寄存器有8个16位通用寄存器、4个16位段寄存器、1个16位标志寄存器和1个16位指令指针寄存器 8086编程使用逻辑地址,将其中

    2023年04月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包