ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于OO创建ALV的关键点

关于OO创建ALV的关键点

原创 Linux操作系统 作者:hzq2010 时间:2011-05-07 12:23:51 0 删除 编辑
   gt_fcat TYPE lvc_t_fcat,                  "字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等
       gs_layout   TYPE lvc_s_layo,              "ALV的一个布局,比如ALV的标题,是否可编辑,行颜色,列颜色.
       gt_exclude TYPE ui_functions,             "排除不需要的标准按钮 此处到后面文章会讲到。
       container TYPE scrfname VALUE 'CUSTOM_CONTROL',     "在屏幕中创建的容器名称在DYNPRO LAYOUT 中的CUSTOM_CONTROL选项
       alv_grid  TYPE REF TO cl_gui_alv_grid,
       custom_container TYPE REF TO cl_gui_custom_container. "实例化一个容器

IF custom_container  IS INITIAL.
    CREATE OBJECT custom_container
      EXPORTING
         container_name = container.
    IF alv_grid IS INITIAL.
      CREATE OBJECT alv_grid
        EXPORTING
           i_parent = custom_container.
      PERFORM frm_build_fcat.
      CALL METHOD alv_grid->set_table_for_first_display
        EXPORTING
*           i_structure_name      = 'SFLIGHT' "此处说明一下一般程序中要处理的显示数据,都不是在同一个结构表中,所以显示的字段需要手工建立。这就用到了PERFORM. frm_build_fcat.
           is_layout             = gs_layout
           it_toolbar_excluding = gt_exclude
        CHANGING
           it_outtab             = gt_list[]
           it_fieldcatalog       = gt_fcat[]. "要显示的字段列表

创建GT_FCAT内容.

FORM frm_build_fcat .
  DATA:
   lt_fcat TYPE lvc_t_fcat WITH HEADER LINE,
   ls_fcat TYPE lvc_s_fcat,
   l_col_pos LIKE lvc_s_fcat-col_pos,
   l_tabix LIKE sy-tabix.

  CLEAR: gt_fcat[].

  CLEAR ls_fcat.
   ls_fcat-fieldname = 'CARRID'.
   ls_fcat-coltext = '航线承运人ID'.
   ls_fcat-outputlen = 12.
  APPEND ls_fcat TO gt_fcat.

  CLEAR ls_fcat.
   ls_fcat-fieldname = 'CONNID'.
   ls_fcat-coltext = '航班连接Id'.
   ls_fcat-outputlen = 12.
  APPEND ls_fcat TO gt_fcat.

  CLEAR ls_fcat.
   ls_fcat-fieldname = 'FLDATE'.
   ls_fcat-coltext = '航班日期'.
   ls_fcat-outputlen = 10.
  APPEND ls_fcat TO gt_fcat.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23495244/viewspace-694684/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 月份加减
请登录后发表评论 登录
全部评论

注册时间:2010-03-11

  • 博文量
    196
  • 访问量
    168059