abap简单报表,alv显示,按钮事件

tables:itab.
TYPE-POOLS: slis. "alv
"ALV显示标准定义
DATA: g_repid     LIKE sy-repid,
      it_fieldcat TYPE lvc_t_fcat WITH HEADER LINE,
      is_layout   TYPE lvc_s_layo.
DATA: gwk_grid_setting LIKE lvc_s_glay.    "标记选中列
CONSTANTS  pf_status TYPE slis_formname VALUE ‘ALV_PF_STATUS‘. "定义状态
CONSTANTS user_command TYPE slis_formname VALUE ‘ALV_USER_COMMAND‘. "定义按钮
"以上的都是标准的定义,直接复制。

"定义内表
DATA : BEGIN OF wa_itab,
         "alv显示字段
         matnr TYPE zewmt026-matnr,
       END OF wa_itab.
DATA lt_itab LIKE TABLE OF wa_itab.

"可以自己定义一个小的屏幕,也可以不需要 ,看自己需不需要
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-901.
SELECTION-SCREEN FUNCTION KEY 1.
PARAMETERS : p1 TYPE char1 RADIOBUTTON GROUP g1 .
SELECT-OPTIONS:
     s_a FOR table-a ,
     s_b FOR table-b .
PARAMETERS : p2 TYPE char1 RADIOBUTTON GROUP g1.
SELECTION-SCREEN: END OF BLOCK b1.

"判断自己是否需要选择屏幕,根据选择条件显示的内容
PARAMETERS d LIKE table-d.
SELECT-OPTIONS:
     a FOR table-a,
     b FOR table-b.

INITIALIZATION. "加载前的事件,不一定会有。

"用FORM的形式可以避免整个程序出错,还可以更快找到不正确的地方。
START-OF-SELECTION.
  PERFORM get_data.               "获取数据
  PERFORM alv_layout_build.       "alv格式设置
  PERFORM alv_fieldcat.           "样式
  PERFORM alv_show.               "ALV显示
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data ." 获取需要显示的数据
  SELECT *
    FROM table
    INTO CORRESPONDING FIELDS OF TABLE lt_itab
    WHERE a IN a
      AND b IN b.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  ALV_LAYOUT_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_layout_build ."自己可以添加需要的设置
  is_layout-zebra      = ‘X‘.   "明亮显示
  is_layout-box_fname  = ‘SEL‘. "可选
  is_layout-cwidth_opt = ‘X‘.   "自动宽度
  gwk_grid_setting-edt_cll_cb = ‘X‘."刷新
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  ALV_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_fieldcat .
  CLEAR it_fieldcat.REFRESH it_fieldcat.
  DEFINE lit_fieldcat.       "自己可以添加需要的设置
    it_fieldcat-tabname   = ‘IT_OUT‘.
    it_fieldcat-fieldname = &1.     "字段名字
    it_fieldcat-coltext   = &2.     "字段描述
    it_fieldcat-just      = &3.     "对齐
    it_fieldcat-edit      = &4.     "可以更改
"  ls_fieldcat-decimals_out = &5.  "去掉小数点后面的零填0
       .
       .
       .
       .
    APPEND  it_fieldcat.
    CLEAR   it_fieldcat.
  END-OF-DEFINITION.   "lit_fieldcat
  lit_fieldcat :
   ‘MATNR‘  ‘物料编码‘  ‘L‘     ‘‘,
   ‘ZBTYPE‘ ‘箱型‘      ‘L‘     ‘‘,
   ‘ZCDATE‘ ‘创建日期‘  ‘L‘     ‘‘,
   ‘ZCTIME‘ ‘创建时间‘  ‘L‘     ‘‘,
   ‘ZCUSER‘ ‘创建用户‘  ‘L‘     ‘‘,
   ‘ZQTY‘   ‘申请数量‘  ‘L‘    ‘X‘,
   ‘MEINS‘  ‘ 单位‘     ‘L‘    ‘X‘.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  ALV_SHOW
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_show .  " 选择自己需要显示的内容。
  g_repid = sy-repid.
  CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC‘
    EXPORTING
*     I_INTERFACE_CHECK        = ‘ ‘
*     I_BYPASSING_BUFFER       =
*     I_BUFFER_ACTIVE          =
      i_callback_program       = g_repid    "本程序
      i_callback_pf_status_set = pf_status
      i_callback_user_command  = user_command
*     I_CALLBACK_TOP_OF_PAGE   = ‘ ‘
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ‘ ‘
*     I_CALLBACK_HTML_END_OF_LIST       = ‘ ‘
*     I_STRUCTURE_NAME         =
*     I_BACKGROUND_ID          = ‘ ‘
*     I_GRID_TITLE             =
      i_grid_settings          = gwk_grid_setting  "按钮后刷新
      is_layout_lvc            = is_layout
      it_fieldcat_lvc          = it_fieldcat[]
*     IT_EXCLUDING             =
*     IT_SPECIAL_GROUPS_LVC    =
*     IT_SORT_LVC              =
*     IT_FILTER_LVC            =
*     IT_HYPERLINK             =
*     IS_SEL_HIDE              =
*     I_DEFAULT                = ‘X‘
      i_save                   = ‘A‘
*     IS_VARIANT               =
*     IT_EVENTS                =
*     IT_EVENT_EXIT            =
*     IS_PRINT_LVC             =
*     IS_REPREP_ID_LVC         =
*     I_SCREEN_START_COLUMN    = 0
*     I_SCREEN_START_LINE      = 0
*     I_SCREEN_END_COLUMN      = 0
*     I_SCREEN_END_LINE        = 0
*     I_HTML_HEIGHT_TOP        =
*     I_HTML_HEIGHT_END        =
*     IT_ALV_GRAPHICS          =
*     IT_EXCEPT_QINFO_LVC      =
*     IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*     E_EXIT_CAUSED_BY_CALLER  =
*     ES_EXIT_CAUSED_BY_USER   =
    TABLES
      t_outtab                 = lt_itab  "数据存放表
    EXCEPTIONS
      program_error            = 1         "异常
      OTHERS                   = 2.
  IF sy-subrc <> 0.       "异常
* Implement suitable error handling here
  ENDIF.
ENDFORM.

FORM alv_pf_status USING rt_extab TYPE  slis_t_extab.
  SET PF-STATUS‘、状态名、‘ EXCLUDING rt_extab.     "用自己的GUI状态,不用的话就把关于他的都删掉,用标准的
ENDFORM.

FORM alv_user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.
  CASE r_ucomm.

WHEN ‘XX‘ .

WHEN  ‘YY‘.

WHEN OTHERS.

ENDCASE.
  rs_selfield-refresh = ‘X‘.    " REFESH ALV ,ALV被修改时会自动刷新,没有修改不进行刷新
ENDFORM.

原文地址:https://www.cnblogs.com/go-online-me/p/11736142.html

时间: 2024-10-10 12:15:05

abap简单报表,alv显示,按钮事件的相关文章

非主窗体在任务栏显示按钮(简单好用)good

非主窗体在任务栏显示按钮 type TForm2 = class(TForm) private { Private declarations } public { Public declarations } procedure CreateParams(var Params:TCreateParams); override; end; ... procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited Cre

[ABAP技术总结]ALV

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 7.      ALV. 70 7.1.           Layout重要字段... 70 7.2.           FIELDCATALOG重要字段... 70 7.3.           指定双击触发的FunCode. 71 7.4.           相关函数... 71 7.5.           重要参数接口... 71 7.6.         

Android开发系列之按钮事件的4种写法

经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1.

十. 图形界面(GUI)设计3.标签、按钮和按钮事件

标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关. 标签 标签(JLabel)是最简单的Swing组件.标签对象的作用是对位于其后的界面组件作说明.可以设置标签的属性,即前景色,背景色.字体等,但不能动态地编辑标签中的文本. 程序关于标签的基本内容有以下几个方面: 声明一个标签名: 创建一个标签对象: 将标签对象加入到某个容器. JLabel类的主要构造方法是: JLabel ():构造一个无显示文字的标签: JLabel (String s):构造一个显示文字为s的标签

FastReport.Net使用:[3]简单报表一

如何设置报表栏 1.右键报表栏相关模块进行删除. 2.使用菜单栏中的报表菜单进行添加/删除相应的栏目,选中栏目的背景会变得高亮. 3.使用报表栏编辑器. 可通过点击报表栏顶部的"设置报表栏"或者菜单栏中报表子菜单里面的"设置报表栏"按钮打开报表栏设置对话框.点击右侧的"添加"或者"删除"按钮进行添加/删除对应的栏目.同时也可以对已存在的栏目打开右键菜单来进行添加/删除对应的栏目. 如何设计简单报表 1.将该报表栏设置为包含报表

C#程序员学习Android开发系列之按钮事件的4种写法

经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1.

◆◆1OO ALV-单击事件,双击事件,添加自定义按钮事件(EVENT)实例

OO ALV中经常会用的行单击,行双击,application tool bar上添加按钮以及按钮的相应事件,如下: 1,单击:handle_hotspot_click 事件 2,双击:handle_double_click 3,工具栏上添加自定按钮: handle_toolbar,其中,butn_type = 3. 是分隔符详细参照下面代码 4, 自定义按钮相应事件:handle_command 这些事件需要用SET HANDLER先注册,然后再在类中实现,添加自己的逻辑. 下面是个完整代码以

鼠标经过显示按钮的详细信息

之前介绍了几款css3实现的按钮,今天为网友来款比较新鲜的,用css3的data-attribute属性开发按钮,当鼠标经过显示按钮的详细信息.而且实现过程很简单,几行代码就搞定.大家试一试吧.如下图: 不错吧,贴上实现代码: html代码: <button data-hover="爱编程(w2bc.com)收集编程资料,web前端案例"> 爱编程</button> <button data-hover="爱编程(w2bc.com)收集编程资料,

iOS代码实现:创建按钮,绑定按钮事件,读取控件值

// // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rights reserved. // #import <UIKit/UIKit.h> // 视图控制器对象 @interface HelloWorldViewController : UIViewController @property (nonatomic, retain) IBOutlet UIT