• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
^ω^SAp傻X^o^
博客园    首页    新随笔    联系   管理    订阅  订阅
sm30表维护做排序

好吧,之前有人问过,因为代码太少就一直没发。。。今天给出来吧

 

 

众所周知,表维护其实就是个TC,只是表维护是统一的,没有使用通用名内表名什么的,这个就不多说了,来重点:

TC的一般排序可以放在:1,PBO的任意位置(LOOP前);2,PAI处理结束位置(其实很多位置都可以)

本屌懒得去理逻辑,我就直接在LOOP前加了个MODULE,如下:

PROCESS BEFORE OUTPUT.
 MODULE LISTE_INITIALISIEREN.
 MODULE MOD_SET_SORT.
 LOOP AT EXTRACT WITH CONTROL
  TCTRL_ZRFT002 CURSOR NEXTLINE.
   MODULE LISTE_SHOW_LISTE.
 ENDLOOP.

再写代码前,来看看表结构,以及要排序的‘日期’位置:

好了,看到位置了,下面写代码:

*&---------------------------------------------------------------------*
*&      Module  MOD_SET_SORT  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MOD_SET_SORT OUTPUT.
  FIELD-SYMBOLS: <fs_field> TYPE any." TYPE zmmt0006-ZJJSJ.
  ASSIGN  extract+13(8) TO <fs_field>.
  SORT extract BY <fs_field> DESCENDING.
ENDMODULE.

不要问+13(8)是什么意思。。。

 

好了,排序结束,如果要多维度的,定义两个咯,三个也行,四个也可。。。

 

字段隐藏,不可编辑

 LOOP AT <vim_tctrl>-cols INTO vim_tc_cols
                             WHERE screen-name EQ 'ZMMT0006-ZJJ'.
      vim_tc_cols-vislength = 0.
      MODIFY <vim_tctrl>-cols FROM vim_tc_cols.
    ENDLOOP.

 

根据行字段设置该行其他字段不可编辑:PBO的LOOP里加module,控制ZSV1不可编辑日期(此例)

 LOOP AT EXTRACT WITH CONTROL
  TCTRL_ZLYSM30 CURSOR NEXTLINE.

   MODULE LISTE_SHOW_LISTE.
     MODULE MOD_ENABLE_FIELD.
 ENDLOOP.
MODULE mod_enable_field OUTPUT.
  IF ZLYSM30-PROCESS_TYPE = 'ZSV1'.
    LOOP AT SCREEN.
      IF SCREEN-NAME = 'ZLYSM30-DATUM'.
        SCREEN-INPUT = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDMODULE.

 

^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
posted on 2016-10-20 08:54  ^ω^SAP傻X^o^  阅读(3015)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3