登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

原来为了你

我的人生就是要一次次的超越

 
 
 

日志

 
 
 
 

alv 模板  

2011-01-07 16:20:07|  分类: ALV |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

*------- alv data definition -----------------------------------------
TYPE-POOLSslis.
DATAit_cat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DEFINE alv_head.
  
clear it_cat.
  it_cat
-fieldname  &1.           "字段名
  it_cat
-seltext_m  &2.           "字段文本
  it_cat
-col_pos    &3.           "字段位置
  it_cat
-outputlen  &4.           "字段长度
  it_cat
-emphasize  &5.           "强调颜色
  it_cat
-key        &6.           "关键字
  it_cat
-no_zero    'X'.                                  "不显示0数据
  it_cat
-edit       'X'.          "设置某字段可编辑 ,最左边会出现一列box
  
append it_cat.
END-OF-DEFINITION.

*--- ls_layout
DATAls_layout TYPE slis_layout_alv.

ls_layout
-zebra             'X'.      "斑马线
ls_layout
-colwidth_optimize 'X'.      "宽度自动优化
ls_layout
-box_fieldname     'ZSEL'.   "Box
ls_layout
-info_fieldname    'COLOR'.  "设置显示颜色用,这个字段也要在内表中

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*

FORM display_data .
  
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    
EXPORTING
      i_callback_program       
sy-repid
      i_callback_pf_status_set 
'FRM_SET_PF_STATUS'
      i_callback_user_command  
'FRM_ALV_COMMAND'
      is_layout                
ls_layout
      it_fieldcat              
it_cat[]
*      i_screen_start_column = 30 "显示位置及大小,显示出来后大小不成调整
*      i_screen_start_line   = 2
*      i_screen_end_column   = 97
*      i_screen_end_line     = 20
    
TABLES
      t_outtab                 
it_detail.
ENDFORM.                    "display_data

*&---------------------------------------------------------------------*
*&      Form  set_pf_status
*&---------------------------------------------------------------------*
FORM frm_set_pf_status USING rt_extab TYPE slis_t_extab.
  
SET PF-STATUS 'STATUS1'."双击建立
ENDFORM.                    "display_data

*&---------------------------------------------------------------------*
*&      Form  frm_salv_commond
*&---------------------------------------------------------------------*
FORM frm_alv_command USING p_ucomm LIKE sy-ucomm
                  rs 
TYPE slis_selfield.
  
DATAlr_grid TYPE REF TO cl_gui_alv_grid.

  
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "这个函数不能用于alv_list,会报错
    
IMPORTING
      e_grid 
lr_grid.
  
CALL METHOD lr_grid->check_changed_data.
  rs
-refresh 'X'.

  
CASE p_ucomm.
    
WHEN '&IC1'.  "双击鼠标显示明细数据
  
ENDCASE.
ENDFORM.                    "display_data


*------- 自定义子屏幕101 ---------------------------------------------------
SELECTION-SCREEN BEGIN OF SCREEN 101 .
SELECTION-SCREEN BEGIN OF BLOCK sc1 WITH FRAME TITLE text-001.
PARAMETERS :
p_carrid  
LIKE spfli-carrid,
p_connid  
LIKE spfli-connid,
p_cofr    
LIKE spfli-countryfr,
p_coto    
LIKE spfli-countryto.

SELECTION-SCREEN END OF BLOCK sc1.
SELECTION-SCREEN END OF SCREEN 101.
"用于call selection-screen 101来调用


*------- 自动获得并处理自定义类型的各个字段 -------------------------------------------

DATAlt_fieldcat TYPE slis_t_fieldcat_alv,
      ls_fieldcat 
TYPE slis_fieldcat_alv.

CALL FUNCTION'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
  i_program_name 
v_repid
  i_internal_tabname 
'TYP_SPFLI'
  
"i_structure_name = 'SPFLI'
  i_inclname 
v_repid
  i_bypassing_buffer 
'X'
  i_buffer_active 
''
  
CHANGING
    ct_fieldcat 
lt_fieldcat.
LOOP AT lt_fieldcat INTO ls_fieldcat.
  
IF ls_fieldcat-fieldname 'MYFIELD'.
    ls_fieldcat
-seltext_s '我的字段'.
    ls_fieldcat
-seltext_m '我的字段'.
    ls_fieldcat
-seltext_l '我的字段'.
  
ENDIF.
  
MODIFY lt_fieldcat FROM ls_fieldcat.
ENDLOOP.
DELETE lt_fieldcat WHERE fieldname 'L_SEL'.


*------- 关于 i_save = 'A'----------------------------------------------
*保存格式参数的选择。
*显示出来alv之后,菜单:设置->格式->保存或布局管理,可以保存成一种布局,
*如果去掉i_save = 'A',则不能保存布局


*------- alv中自定义工具栏下的write ------------------------------------------
CASE p_ucomm.
  
WHEN 'PRT'.
    
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0."这个很重要
    
WRITE'PRT'.
ENDCASE.


*------- ALVWIRTE---------------------------------------------------
ALVWIRTE并且能够返回:(下列步骤一个也不能少)
CALL SCREEN '101'.
LOOP AT return_tab.
  
WRITE:'交货单:',return_tab-vbeln,',发货过账失败,原因:',return_tab-text.
ENDLOOP.

*----------------------------------------------------------------------*
*  MODULE status_0101 OUTPUT
*----------------------------------------------------------------------*
MODULE status_0101 OUTPUT.
  
SET PF-STATUS 'M101'.
  
SUPPRESS DIALOG.
  
WRITE:'XXXXXX'.
  
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
ENDMODULE.                    "status_0101 OUTPUT

*----------------------------------------------------------------------*
*  MODULE user_command_0101 INPUT
*----------------------------------------------------------------------*
MODULE user_command_0101 INPUT.
  
DATAsave_ok LIKE sy-ucomm,
        ok_code 
LIKE sy-ucomm.
  save_ok 
ok_code.
  
CLEAR ok_code.
  
CASE save_ok.
    
WHEN 'BACK'.
      
LEAVE PROGRAM.
  
ENDCASE.
ENDMODULE.                    "user_command_0101 INPUT

  评论这张
 
阅读(628)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018