赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 3359|回复: 22

赛跑网-OO方式展示数据源码

  [复制链接]
发表于 2012-5-22 11:05:39 | 显示全部楼层 |阅读模式
下面共享的是源代码。需创建SCREEN和状态栏
TABLES: marav,mara.
*---------------------------------------------------------------------*
DATA:
BEGIN OF gt_out OCCURS 100 ,
matnr LIKE marav-matnr,
maktx LIKE marav-maktx,
matkl LIKE marav-matkl,
ntgew LIKE marav-ntgew,
gewei LIKE marav-gewei,
END OF gt_out.
**定义变量 功能码
DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.
游客,如果您要查看本帖隐藏内容请回复

SELECT-OPTIONS: s_matnr FOR marav-matnr  .
*--------------------------------------------------------------------*
START-OF-SELECTION.

  gs_variant-report = sy-repid.

  PERFORM prepare_layout CHANGING gs_layout .         "设置LAYOUT
  REFRESH gt_fieldcat.                                "清空FIELDCAT内表
  PERFORM prepare_field_catalog CHANGING gt_fieldcat ."设置FIELD CATALOG

***抓取数据
  SELECT * FROM marav
  INTO CORRESPONDING FIELDS OF TABLE gt_out
  WHERE
  matnr IN s_matnr.
END-OF-SELECTION.
  CALL SCREEN 100.  " 需创建屏幕 并创建ALV容器命名为T_COL

*&---------------------------------------------------------------------*
*&      Form  PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->S_LAYOUT  text
*----------------------------------------------------------------------*
FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.
***设置LAYOUT属性
  ps_layout-zebra = 'X' .
  ps_layout-smalltitle = 'X' .
  ps_layout-cwidth_opt = 'X'. "设置自动列宽
  ps_layout-no_toolbar = ' '.
  ps_layout-no_rowmark = 'X'.
ENDFORM.                    "REPARE_LAYOUT

*&---------------------------------------------------------------------*
*&      FORM  PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
*       根据维护表的结构初始化ALV的FIELD CATALOG
*----------------------------------------------------------------------*
*      -->T_FIELDCAT  TEXT
*----------------------------------------------------------------------*
FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat .
  DATA: ls_fieldcat TYPE lvc_s_fcat,
        l_rows TYPE i VALUE 1.
***填充FIELDCAT内表<得到展示的字段>
  CLEAR:ls_fieldcat.
  ls_fieldcat-fieldname = 'MATNR'.
  ls_fieldcat-coltext = '物料'.
  ls_fieldcat-no_zero = 'X'.
  ls_fieldcat-col_pos = l_rows.
  APPEND ls_fieldcat TO pt_fieldcat.
  l_rows = l_rows + 1.

  CLEAR:ls_fieldcat.
  ls_fieldcat-fieldname = 'MAKTX'.
  ls_fieldcat-coltext = '描述'.
  ls_fieldcat-col_pos = l_rows.
  APPEND ls_fieldcat TO pt_fieldcat.
  l_rows = l_rows + 1.

  CLEAR:ls_fieldcat.
  ls_fieldcat-fieldname = 'NTGEW'.
  ls_fieldcat-coltext = '重量'.
  ls_fieldcat-col_pos = l_rows.
  APPEND ls_fieldcat TO pt_fieldcat.
  l_rows = l_rows + 1.

  CLEAR:ls_fieldcat.
  ls_fieldcat-fieldname = 'GEWEI'.
  ls_fieldcat-coltext = '单位'.
  ls_fieldcat-col_pos = l_rows.
  APPEND ls_fieldcat TO pt_fieldcat.
  l_rows = l_rows + 1.

ENDFORM .                    "REPARE_FIELD_CATALOG

*&---------------------------------------------------------------------*
*&      FORM  EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*       去除不要的ALV工具栏按钮
*----------------------------------------------------------------------*
*      <--P_LT_EXCLUDE  TEXT
*----------------------------------------------------------------------*
FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
ENDFORM.                    "EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN100'. "需创建设置界面可以操作的按钮
  gs_variant-report = sy-repid.
  IF gr_alvgrid IS INITIAL .
***建立对象
    CREATE OBJECT alv_custom_container
      EXPORTING
        container_name = alv_container.
    CREATE OBJECT gr_alvgrid "ALV_GRID
      EXPORTING
        i_parent = alv_custom_container. "将数据装载到控制屏幕中
***设置标题 需创建
    SET TITLEBAR '100'.
***排除不要的按钮
游客,如果您要查看本帖隐藏内容请回复

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  save_ok = sy-ucomm.
  CLEAR: ok_code.
***响应工具栏事件
  CASE save_ok.
    WHEN 'BACK'.
      SET SCREEN 0 . "按返回 按钮,返回选择屏幕
    WHEN 'EXIT'.
      LEAVE PROGRAM. "退出程序
    WHEN OTHERS.
  ENDCASE.

  CASE sy-ucomm.
    WHEN 'CODE'.
      MESSAGE 'SUCESS' TYPE 'S'.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

最近访客

  • austin
    2022-03-24




上一篇:赛跑网-使用内存传递数据
下一篇:赛跑网-内外部单位转化的函数
本楼点评(0) 收起
发表于 2012-5-23 19:04:15 | 显示全部楼层
过来学习了。。。。
本楼点评(0) 收起
发表于 2012-9-13 20:59:14 | 显示全部楼层
学习用OO创建ALV!!
本楼点评(0) 收起
发表于 2012-10-12 09:39:21 | 显示全部楼层
谢谢老师!
本楼点评(0) 收起
发表于 2012-10-17 21:44:33 | 显示全部楼层
学习
本楼点评(0) 收起
发表于 2012-12-16 00:08:30 | 显示全部楼层
本楼点评(0) 收起
发表于 2013-1-18 11:46:04 | 显示全部楼层
学习
本楼点评(0) 收起
发表于 2013-1-19 16:25:49 | 显示全部楼层
学习
本楼点评(0) 收起
发表于 2013-2-3 23:38:34 | 显示全部楼层
坚持
本楼点评(0) 收起
发表于 2013-2-19 09:09:42 | 显示全部楼层
学习
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-19 06:21 , Processed in 0.179205 second(s), 57 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表