加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sap  alv开发详解

(2014-08-11 13:53:33)
标签:

abap

alv

grid

开发

分类: alv
alv 是 abap list view 的缩写,alv报表程序的开发是abap最重要的任务之一。
alv 开发流程:
1..定义alv所用的类型池。 
列: type-pools:slis.
2.定义alv所要显示的数据,对应的内表数据类型及内表数据对象。
     常用数据类型包括:
          data: slis_fieldcat_alv   定义要显示的字段的详细信息。
                要用的参数有 slis_fieldcat-col_pos = 1  :列编号从1开始。。
                             slis_fieldcat-fieldname =  :原表所在字段的名称。
     slis_fieldcat-seltext_m =  :显示本字段名称,即新字段名称。
                             slis_fieldcat-i_fieldcat_key : 固定列, 固定 ’X'
          data: slis_t_fieldcat_alv   包含所有要显示字段信息。
           data: i_layout  
3.调用函数显示数据。

实现alv的方式:1.直接调用功能函数。
                     call  function 'reuse_alv_grid_display'
 exporting  
                                    i_structure_name = 'spfli'   :定义列表信息来源表,即表字段信息和另一个表一样。
                                    i_callback_program =         :程序名称
                                    is_layout          =         :定义程序所定义layout名称。
                                    i_grid_title       =         :定义alv标题。
                                    i_fieldcat         =         :定义fieldcat信息,即字段信息表
                         tables 
                                    t_outtab           =         :定义所要显示数据来源,即数据表
                         expection
                                     program_error     = 0 
                                     others            = 1.
                  call  function  'reuse_alv_list_display'  所有参数和grid大同小异。只是显示方式不同。
              2.通过对象调用方法实现。 
  附:*-----------by  ymq-----------------------
report ya_ymq_hello2.

tables:spfli.
type-pools: slis.
data:wa_fieldcat type slis_t_fieldcat_alv ,
      i_layout type slis_layout_alv,
     i_fieldcat type slis_fieldcat_alv.
data: nn type i value 0.
data: begin of  g_output,
   carrid like spfli-carrid, "hangban jicheng ren
   connid like spfli-connid,  "hangbanlainjie.
   countryto like spfli-countryto , "guojia diama .
   distance  like spfli-distance,
  end of g_output.

data: gt_output like g_output occurs 0 with header line.

selection-screen :begin of block 10 with frame title text-001.
  select-options:
                  s_dist for spfli-distance.
selection-screen :end of block 10.

start-of-selection.

if s_dist is not initial. "有用户输入筛选条件
    perform getdata.
endif.
if s_dist is initial.    "无用户输入筛选条件。
    perform get_all_data.

 endif.
perform  alv_data.

form getdata.
  select  carrid  connid   countryto distance into corresponding fields of table gt_output from spfli where
  distance in s_dist.

 endform.

 form  get_all_data.
  select carrid  connid  countryto distance  into corresponding fields of table gt_output from spfli.
  endform.

form alv_data.
  define  hout.
    i_fieldcat-fieldname = &1.
    i_fieldcat-seltext_m = &2.
    i_fieldcat-col_pos   = &3.
    i_fieldcat-outputlen = &4.
    append i_fieldcat to wa_fieldcat.
    clear  i_fieldcat.
 end-of-definition.

 hout 'CARRID'     '航班继承人'  1   15.
 hout 'CONNID'     '航班连接id'  2   15.
 hout 'COUNTRYTO'  '国家代码'    3   15.
 hout  'DISTANCE'  '距离'        4   15.
 call function  'REUSE_ALV_GRID_DISPLAY'
 exporting i_callback_program = sy-repid
           it_fieldcat = wa_fieldcat
 tables
     t_outtab    = gt_output
 exceptions
      program_error   = 1
      others          = 2.
 endform.



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有