zoukankan      html  css  js  c++  java
  • statu 设置

    DATA: itab TYPE TABLE OF sy-ucomm. 
    APPEND 'DELE' TO itab. 
    APPEND 'PICK' TO itab. 
    SET PF-STATUS 'STA3' EXCLUDING itab.  

    就是把screen status设置成standard, 并排除rt_extab里面的functon code的按钮。

    DATA: BEGIN OF ex_tab OCCURS 0,
    fcode LIKE sy-ucomm,
    END OF ex_tab.
    ex_tab-fcode = 'DISP'. APPEND ex_tab.
    ex_tab-fcode = 'DELE'. APPEND ex_tab.
    ex_tab-fcode = 'SAVE'. APPEND ex_tab.
    SET PF-STATUS 'MENU100' EXCLUDING ex_tab.
    很灵活,再增加一点代码可以根据用户权限、当前t-code等各种条件动态设置工具栏

    方法很多,不知道要哪种.
    (1). 用TCODE:se41,se80,se90(Programming Library-->Programming SubObjects--> Gui Status.)等都可以,拷贝一个标准的GUI status( 拷贝程序SAPLKKBL中的'STANDARD' GUI status)到你的程序.
    然后写PBO写代码:
    DATA: I_QMEL LIKE MAKT OCCURS 0.
    DATA V_REPID TYPE REPID.
    SELECT * FROM MAKT INTO TABLE I_QMEL.
    V_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_STRUCTURE_NAME = 'MAKT'
    TABLES
    T_OUTTAB = I_QMEL
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    然后可以通过修改gui_status删除按扭或着增加按扭

    在 'REUSE_ALV_GRID_DISPLAY' 中有
    I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
    。这里的I_CALLBACK_PF_STATUS_SET 是否是类似语句:SET PF_STATUS ‘STATUS1’ ?
    如果是的话,那么自己创建一个用户STATUS1,不就可以替代那个标准的状态栏了吗?


    (2).通过代码写,要自己建类和方法.可以通过示例代码学习.BCALV_GRID_08.
    然后要在pbo里调用下再激活下gui_status就可以了.

  • 相关阅读:
    正则表达式预:
    cookie 二:
    Javascript之运动框架2
    cookie预:
    Javascript之链式运动框架1
    基于Azure的软件部署和开发系列沙龙
    在Docker中安装.NET Core(使用命令行工具)
    Xshell 无法连接虚拟机中的ubuntu的问题
    springboot09-redis
    springboot08-jpa-mysql
  • 原文地址:https://www.cnblogs.com/rainysblog/p/3988085.html
Copyright © 2011-2022 走看看