博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ALV_TREE_JAMES
阅读量:4651 次
发布时间:2019-06-09

本文共 7500 字,大约阅读时间需要 25 分钟。

*&---------------------------------------------------------------------**& Report  Z_ALV_TREE_JAMES* Project     : N/A* Author      : James.Zong* Description : Template of Program for Alv Tree*&---------------------------------------------------------------------*REPORT Z_ALV_TREE_JAMES.TABLES:SFLIGHT.*&---------------------------------------------------------------------**&  DATA DEFINE*&---------------------------------------------------------------------*DATA:  G_ALV_TREE           TYPE REF TO CL_GUI_ALV_TREE,  G_CUSTOMER_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.DATA:  GT_SFLIGHT TYPE TABLE OF SFLIGHT,  OK_CODE    LIKE SY-UCOMM,  SAVE_OK    LIKE SY-UCOMM.*&---------------------------------------------------------------------**&  INITIALIZATION*&---------------------------------------------------------------------*INITIALIZATION.CLEAR:  G_ALV_TREE,  G_CUSTOMER_CONTAINER,  GT_SFLIGHT,  OK_CODE,  SAVE_OK.*&---------------------------------------------------------------------**&  START-OF-SELECTION*&---------------------------------------------------------------------*START-OF-SELECTION.SET SCREEN 100.*&---------------------------------------------------------------------**&      Module  STATUS_0100  OUTPUT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*MODULE STATUS_0100 OUTPUT.*  SET PF-STATUS '0100'.  SET PF-STATUS 'STANDARD_FULLSCREEN'.  SET TITLEBAR  'Title is N/A'.  IF G_ALV_TREE IS INITIAL.    PERFORM INIT_TREE.  ENDIF.  CALL METHOD CL_GUI_CFW=>FLUSH.ENDMODULE.*&---------------------------------------------------------------------**&      Form  INIT_TREE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM INIT_TREE .  DATA:G_TREE_HEADER TYPE TREEV_HHDR.  CREATE OBJECT G_CUSTOMER_CONTAINER    EXPORTING      CONTAINER_NAME      = 'JAMES'.  CREATE OBJECT G_ALV_TREE    EXPORTING      PARENT              = G_CUSTOMER_CONTAINER      NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE      ITEM_SELECTION      = ABAP_TRUE      NO_HTML_HEADER      = ABAP_TRUE.* Set layout  G_TREE_HEADER-HEADING   = 'heading 是什么意思?'.  G_TREE_HEADER-TOOLTIP   = 'Tooltip 是什么意思?'.  G_TREE_HEADER-WIDTH     = 40.  CALL METHOD G_ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY  EXPORTING    I_STRUCTURE_NAME      = 'SFLIGHT'    IS_HIERARCHY_HEADER   = G_TREE_HEADER  CHANGING    IT_OUTTAB             = GT_SFLIGHT.* Create node  PERFORM CREATE_HIERARCHY.  CALL METHOD G_ALV_TREE->FRONTEND_UPDATE.ENDFORM.*&---------------------------------------------------------------------**&      Form  CREATE_HIERARCHY*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM CREATE_HIERARCHY .  DATA:    LS_SFLIGHT      TYPE SFLIGHT,    LT_SFLIGHT      TYPE TABLE OF SFLIGHT,    LV_YYYY_MM      TYPE CHAR6,    LV_YYYY_MM_LAST TYPE CHAR6,    LV_CARRID       LIKE SFLIGHT-CARRID,    LV_CARRID_LAST  LIKE SFLIGHT-CARRID,    K_MONTH         TYPE LVC_NKEY,    K_CARRID        TYPE LVC_NKEY,    K_LAST          TYPE LVC_NKEY.  SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE LT_SFLIGHT.  SORT LT_SFLIGHT BY FLDATE+0(6) CARRID FLDATE+6(2).  LOOP AT LT_SFLIGHT INTO LS_SFLIGHT.*   Node for Time    LV_YYYY_MM+0(6) = LS_SFLIGHT-FLDATE.    LV_CARRID       = LS_SFLIGHT-CARRID.    IF LV_YYYY_MM <> LV_YYYY_MM_LAST.      LV_YYYY_MM_LAST = LV_YYYY_MM.      PERFORM ADD_NODE_TIME        USING    LV_YYYY_MM        CHANGING K_MONTH.    ENDIF.*   Node for Carrid    IF LV_CARRID <> LV_CARRID_LAST.      LV_CARRID_LAST = LV_CARRID.      PERFORM ADD_NODE_CARRID        USING    LV_CARRID K_MONTH        CHANGING K_CARRID.    ENDIF.*   Add line    PERFORM Addline      USING    LS_SFLIGHT k_CARRID      CHANGING K_LAST.  ENDLOOP.ENDFORM.*&---------------------------------------------------------------------**&      Form  ADD_NODE_TIME*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->P_LV_YYYY_MM  text*      <--P_K_MONTH  text*----------------------------------------------------------------------*FORM ADD_NODE_TIME  USING    P_LV_YYYY_MM  CHANGING P_K_MONTH.  DATA:    LS_SFLIGHT   TYPE SFLIGHT,    LV_NODE_TEXT TYPE LVC_VALUE.  CLEAR:    LS_SFLIGHT,    LV_NODE_TEXT.  LV_NODE_TEXT = P_LV_YYYY_MM.  CALL METHOD G_ALV_TREE->ADD_NODE    EXPORTING      I_RELAT_NODE_KEY = ' '      I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD      IS_OUTTAB_LINE   = LS_SFLIGHT      I_NODE_TEXT      = LV_NODE_TEXT.  IF SY-SUBRC <> 0.    MESSAGE 'Create Time Node failed' TYPE 'E'.  ENDIF.ENDFORM.*&---------------------------------------------------------------------**&      Form  ADD_NODE_CARRID*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->P_LV_CARRID  text*      -->P_K_MONTH  text*      <--P_K_CARRID  text*----------------------------------------------------------------------*FORM ADD_NODE_CARRID  USING    P_LV_CARRID                               P_K_MONTH                      CHANGING P_K_CARRID.  DATA:    LS_SFLIGHT   TYPE SFLIGHT,    LV_NODE_TEXT TYPE LVC_VALUE.  CLEAR:    LS_SFLIGHT,    LV_NODE_TEXT.  LV_NODE_TEXT = P_LV_CARRID.  CALL METHOD G_ALV_TREE->ADD_NODE    EXPORTING      I_RELAT_NODE_KEY = P_K_MONTH      I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD      IS_OUTTAB_LINE   = LS_SFLIGHT      I_NODE_TEXT      = LV_NODE_TEXT    IMPORTING      E_NEW_NODE_KEY   = P_K_CARRID.  IF SY-SUBRC <> 0.   MESSAGE 'Create Carrid Node failed' TYPE 'E'.  ENDIF.ENDFORM.*&---------------------------------------------------------------------**&      Form  ADDLINE*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->P_LS_SFLIGHT  text*      -->P_K_CARRID  text*      <--P_K_LAST  text*----------------------------------------------------------------------*FORM ADDLINE  USING    P_LS_SFLIGHT TYPE sflight           P_K_CARRID  CHANGING P_K_LAST.  DATA:    LV_NODE_TEXT TYPE LVC_VALUE.  LV_NODE_TEXT = P_LS_SFLIGHT-FLDATE.  CALL METHOD G_ALV_TREE->ADD_NODE    EXPORTING      I_RELAT_NODE_KEY = P_K_CARRID      I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD      IS_OUTTAB_LINE   = P_LS_SFLIGHT      I_NODE_TEXT      = LV_NODE_TEXT    IMPORTING      E_NEW_NODE_KEY   = P_K_LAST.  IF SY-SUBRC <> 0.    MESSAGE 'Add line failed' TYPE 'E'.  ENDIF.ENDFORM.*&---------------------------------------------------------------------**&      Module  USER_COMMAND_0100  INPUT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*MODULE USER_COMMAND_0100 INPUT.  save_ok = ok_code .  CLEAR ok_code.  CASE save_ok .    WHEN '&F03'.      LEAVE PROGRAM.    WHEN '&F15'.      CALL METHOD g_alv_tree->FREE.      leave program.  ENDCASE.ENDMODULE.

 

转载于:https://www.cnblogs.com/HARU/p/9442483.html

你可能感兴趣的文章
面向对象1
查看>>
任意阶幻方(魔方矩阵)C语言实现
查看>>
织梦教程
查看>>
杭电多校 Harvest of Apples 莫队
查看>>
java 第11次作业:你能看懂就说明你理解了——this关键字
查看>>
C/C++心得-结构体
查看>>
函数名作为参数传递
查看>>
apt-get for ubuntu 工具简介
查看>>
数值计算算法-多项式插值算法的实现与分析
查看>>
day8-异常处理与网络编程
查看>>
Python基础-time and datetime
查看>>
Linux epoll 笔记(高并发事件处理机制)
查看>>
shell脚本练习01
查看>>
WPF图标拾取器
查看>>
通过取父级for循环的i来理解闭包,iife,匿名函数
查看>>
HDU 3374 String Problem
查看>>
数据集
查看>>
[Leetcode] unique paths ii 独特路径
查看>>
HDU 1217 Arbitrage (Floyd + SPFA判环)
查看>>
IntelliJ idea学习资源
查看>>