SAP 书上抄来的AVL TREE的使用
来源:互联网 发布:java输出一句话 编辑:程序博客网 时间:2024/04/29 10:25
REPORT YALVTREE1 .
TABLES SPFLI.
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK TYPE OK_CODE.
*ALV定义的字段清单内表
DATA: GB_FIELDCAT TYPE LVC_T_FCAT,
*排序分类字段内表
GB_SORTFLD TYPE LVC_T_SORT.
*定义用于传递的内表和变量
DATA: WA_SPFLI TYPE TABLE OF SPFLI.
SELECT * INTO TABLE WA_SPFLI FROM SPFLI.
DATA: WA_CONTAINER TYPE SCRFNAME VALUE 'ALV1',
* ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,
*定义ALV TREE对象,此处是直接从ALV_GRID的定义更改
ALV_GRID TYPE REF TO CL_GUI_ALV_TREE_SIMPLE,
*CUSTOMER OBJECT
WA_CUSTOM_CONTAIER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0100 input.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0100 output.
SET PF-STATUS 'STATUS100'.
* SET TITLEBAR 'xxx'.
IF WA_CUSTOM_CONTAIER IS INITIAL.
DATA LS_LIST_COMM TYPE SLIS_T_LISTHEADER.
DATA LS_ALIST_COMM TYPE SLIS_LISTHEADER.
LS_ALIST_COMM-TYP = 'H'.
LS_ALIST_COMM-INFO = 'ALV TREE TEST'.
APPEND LS_ALIST_COMM TO LS_LIST_COMM.
PERFORM BLDCAT. "建立输出,汇总字段,
*建立分类清单及先后顺序
PERFORM BLDSORTFLD.
*建立客户对象和ALV TREE对象
CREATE OBJECT WA_CUSTOM_CONTAIER
EXPORTING CONTAINER_NAME = WA_CONTAINER.
CREATE OBJECT ALV_GRID
EXPORTING I_PARENT = WA_CUSTOM_CONTAIER.
*显示ALV TREE对象
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IT_LIST_COMMENTARY = LS_LIST_COMM
I_STRUCTURE_NAME = 'SPFLI'
CHANGING
IT_SORT = GB_SORTFLD
IT_FIELDCATALOG = GB_FIELDCAT
IT_OUTTAB = WA_SPFLI.
*展开第一层
CALL METHOD ALV_GRID->EXPAND_TREE
EXPORTING
I_LEVEL = 1.
ENDIF.
endmodule. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form BLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form BLDCAT.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'SPFLI'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
CHANGING
ct_fieldcat = GB_FIELDCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*单条记录
DATA LS_FLDCAT TYPE LVC_S_FCAT.
*逐条记录
LOOP AT GB_FIELDCAT INTO LS_FLDCAT.
CASE LS_FLDCAT-FIELDNAME.
*对于需要的字段,定义其字段长度15
WHEN 'COUNTRYFR' OR 'CITYFROM' OR 'COUNTRYTO'
OR 'CITYTO' OR 'DISTANCE'.
LS_FLDCAT-OUTPUTLEN = 15.
WHEN OTHERS.
LS_FLDCAT-NO_OUT = 'X'.
ENDCASE.
*自定义汇总
IF LS_FLDCAT-FIELDNAME = 'DISTANCE'.
LS_FLDCAT-DO_SUM = 'X'.
ENDIF.
MODIFY GB_FIELDCAT FROM LS_FLDCAT.
ENDLOOP.
endform. " BLDCAT
*&---------------------------------------------------------------------*
*& Form BLDSORTFLD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form BLDSORTFLD.
DATA LS_SORTFLD TYPE LVC_S_SORT.
LS_SORTFLD-SPOS = 1.
LS_SORTFLD-FIELDNAME = 'COUNTRYFR'.
LS_SORTFLD-UP = 'X'.
LS_SORTFLD-SUBTOT = 'X'.
APPEND LS_SORTFLD TO GB_SORTFLD.
LS_SORTFLD-SPOS = 2.
LS_SORTFLD-FIELDNAME = 'CARRID'.
LS_SORTFLD-UP = 'X'.
LS_SORTFLD-SUBTOT = 'X'.
APPEND LS_SORTFLD TO GB_SORTFLD.
LS_SORTFLD-SPOS = 3.
LS_SORTFLD-FIELDNAME = 'CONNID'.
LS_SORTFLD-UP = 'X'.
LS_SORTFLD-SUBTOT = 'X'.
APPEND LS_SORTFLD TO GB_SORTFLD.
endform. " BLDSORTFLD
- SAP 书上抄来的AVL TREE的使用
- 抄来的
- 抄来的
- 随手抄来的
- 抄来的打油诗
- 抄来的
- 抄来的文章
- AVL Tree 的实现
- AVL Tree 的实现
- 抄来的 HttpUrlConnection
- 抄来的东西BeeFramework
- 自己加强的一种SurfaceView,看看,从书上抄来的框架,还没把系统的自带控件加进去
- 从书上抄袭来的HibernateUtils类。
- 惰性删除的AVL Tree
- 抄来的eclipse操作技巧
- 抄来的eclipse操作技巧
- 抄来的一点SELECT知识
- 抄来的(打工与创业)
- 精妙的SQL语句集锦
- 一个有用的log4j.properties文件模板
- 三字經英文版
- 收心!!从海边回来你玩得就没有边了。
- 用密钥进行SSH的安全登陆[SSH+PAM+PuTTY]
- SAP 书上抄来的AVL TREE的使用
- 何為ERP
- 在B/S中javaScript实用技术
- PXE网络安装LINUX [DHCP+TFTP+NFS]
- jsp 中文乱码问题
- object.PartialRefresh (phase, Data, envelope )---好好体会
- javamail发送html乱吗
- vb.net的页面跳转
- 快照复制,事务复制,合并复制的区别