赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 1313|回复: 2

ALV中使用f4

[复制链接]
发表于 2013-10-15 20:13:34 | 显示全部楼层 |阅读模式
准备field catalog:
如果该field在DDIC时定义时没有定义Search Help,那么:
e_l_fcat-f4availabl = ‘X’.
ALV的event:
SET HANDLER ob_alv_handler=>on_f4 FOR w_alv_grid.
Event Handler中定义:
CLASS ob_alv_handler DEFINITION.
  
PUBLIC SECTION.
    CLASS-METHODS:
*”                For F4 help
                  on_f4
                     
FOR EVENT onf4  OF cl_gui_alv_grid
                     
IMPORTING
                        e_fieldname
                        e_fieldvalue
                        es_row_no
                        er_event_data
                        et_bad_cells
                        e_display.
ENDCLASS.                    “ob_alv_handler DEFINITION
*” define one Local class for Event handler: Implementation
CLASS ob_alv_handler IMPLEMENTATION.
METHOD on_f4.
*{
*” ALV F4 help
    PERFORM f_alv_f4 USING    e_fieldname
                              e_fieldvalue
                              es_row_no
                    
CHANGING  er_event_data.
*” Prevent the standard F4
    er_event_data->m_event_handled = ‘X’.
*}
  ENDMETHOD.
ENDCLASS.                    “ob_alv_handler IMPLEMENTATION
然后F4 Help(以一个例子):
*&———————————————————————*
*&      Form  F_ALV_F4
*&———————————————————————*
*       ALV F4 help
*———————————————————————-*
FORM f_alv_f4  USING    us_fieldname    TYPE  lvc_fname
                        us_fieldvalue   
TYPE  lvc_value
                        us_row_no      
TYPE  lvc_s_roid
              
CHANGING  ch_evt_data     TYPE REF TO cl_alv_event_data.
  DATA:
    e_l_alvdata   TYPE  y_alvdata,
    e_l_wkcfg     
TYPE  zqxx_ls_wkcfg,
    e_l_f4_shift  
TYPE  y_f4_shift,
    e_l_mod_cell  
TYPE  lvc_s_modi,
    w_l_date(6)   
TYPE  c,
    w_l_shift     
TYPE  kaptprog,
    e_l_dftrsrc   
TYPE zqxx_ls_s_dftrsrc.
  FIELD-SYMBOLS: <fs_tab> TYPE lvc_t_modi.
  READ TABLE ts_alvdata INTO e_l_alvdata INDEX us_row_no-row_id.
  
CHECK NOT e_l_alvdata-item IS INITIAL.
*” Shift
  IF us_fieldname = ‘SHIFT’.
*”1. Get the workcenter
    CHECK e_l_alvdata-tsklst_sts EQ ‘O’.
*”2. Get the Shift group
*”3. Get the shift codes table
*”4. Set the selected shift-code
*”5. Show the F4 window
    CALL SCREEN 9004 STARTING AT 10 5
                          ENDING AT 80 15.
*”6. After select
    CLEAR:e_l_f4_shift.
   
READ TABLE ts_f4_shift INTO e_l_f4_shift
      
WITH KEY  sel = ‘X’.
   
IF sy-subrc = 0.
      CLEAR:e_l_mod_cell.
      e_l_mod_cell-row_id    = us_row_no-row_id.
      e_l_mod_cell-fieldname = us_fieldname.
      CONCATENATE sy-datum+2(6)
                  
‘-’
                  e_l_f4_shift-kaptprog
                  
INTO e_l_mod_cell-value.
      
ASSIGN ch_evt_data->m_data->* TO <fs_tab>.
      
APPEND e_l_mod_cell TO <fs_tab>.
    ENDIF.
  ENDIF.
*” User group or User
  IF us_fieldname = ‘USERGRP’ OR
     us_fieldname = ‘BNAME’.
*”1. Get the workcenter
*”3. Show the F4 window
    CALL SCREEN 9005 STARTING AT 10 5
                          ENDING AT 80 15.
*”4. Assign the modified value
    “User
    IF zqxx_ls_s_tasklistf4-bname IS NOT INITIAL.
      CLEAR:e_l_mod_cell.
      e_l_mod_cell-row_id    = us_row_no-row_id.
      e_l_mod_cell-fieldname =
‘BNAME’.
      e_l_mod_cell-value = zqxx_ls_s_tasklistf4-bname.
      
ASSIGN ch_evt_data->m_data->* TO <fs_tab>.
      
APPEND e_l_mod_cell TO <fs_tab>.
    ENDIF.
   
“User group
    IF zqxx_ls_s_tasklistf4-usergrp IS NOT INITIAL.
      CLEAR:e_l_mod_cell.
      e_l_mod_cell-row_id    = us_row_no-row_id.
      e_l_mod_cell-fieldname =
‘USERGRP’.
      e_l_mod_cell-value = zqxx_ls_s_tasklistf4-usergrp.
      
ASSIGN ch_evt_data->m_data->* TO <fs_tab>.
      
APPEND e_l_mod_cell TO <fs_tab>.
    ENDIF.
  ENDIF.
ENDFORM.                                                    “ F_ALV_F4








上一篇:SAP里常用会计分录
下一篇:如何在指定的容器中显示图片
本楼点评(0) 收起
发表于 2013-10-16 11:09:52 | 显示全部楼层
全是黑屏哈。
本楼点评(0) 收起
 楼主| 发表于 2013-10-17 22:32:38 | 显示全部楼层

黑屏?为何我这里看着好好的  不过话说回来 真的 发个帖子太困难了 图多的帖子 发出来得半个点 换谁都没这个时间呢 上传文档也有大小限制 哎,....
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 09:03 , Processed in 0.192010 second(s), 35 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

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