sap treeview 应用

本文介绍了一个使用ABAP编程语言初始化树状结构的过程。通过从数据库中读取数据并进行排序,构建了一个包含父节点和子节点关系的树状结构,并实现了双击节点事件的处理。

 *----------------------------------------------------------------------*
***INCLUDE Z_INIT_TREO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  INIT_TREE  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE INIT_TREE OUTPUT.

  DATA: NODE LIKE MTREESNODE,
            WA_ITAB1 TYPE TY_ITAB,
            WA_ITAB TYPE TY_ITAB.

  DATA: LCL_EVENT TYPE REF TO LCL_EVENT_RECIEVE.

  DATAEVENTS TYPE CNTL_SIMPLE_EVENTS,
          EVENT TYPE CNTL_SIMPLE_EVENT.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB
     FROM ZTHR_ZZY.

  SORT ITAB BY PARENT.
  NODE-NODE_KEY = 'ROOT'.
  NODE-ISFOLDER     = 'X'.
  NODE-TEXT        = 'ALL'.
  APPEND NODE TO NODE_TABLE.

  CLEAR NODE.

  LOOP AT ITAB INTO WA_ITAB.
    READ TABLE ITAB INTO WA_ITAB1 WITH  KEY PARENT = WA_ITAB-ZKEY.
    IF SY-SUBRC EQ 0.
      WA_ITAB-ISFOLDER = 'X'.
    ELSE.
      WA_ITAB-ISFOLDER = ' '.
    ENDIF.
    MODIFY ITAB FROM WA_ITAB.
  ENDLOOP.

  LOOP AT ITAB INTO WA_ITAB.
    NODE-NODE_KEY = WA_ITAB-ZKEY.
    NODE-TEXT = WA_ITAB-TEXT.
*    NODE-ISFOLDER     = ''.
    IF WA_ITAB-ISFOLDER EQ 'X'.
      NODE-ISFOLDER  = 'X'.
    ELSE.
      NODE-RELATSHIP = CL_GUI_SIMPLE_TREE=>RELAT_LAST_CHILD.
    ENDIF.
    IF WA_ITAB-PARENT IS INITIAL.
      NODE-RELATKEY = 'ROOT'.
    ELSE.
      NODE-RELATKEY = WA_ITAB-PARENT.
    ENDIF.
    APPEND NODE TO NODE_TABLE.
    CLEAR NODE.
  ENDLOOP.

  IF MYCONTAINER IS INITIAL.
    CREATE OBJECT MYCONTAINER
      EXPORTING
        CONTAINER_NAME = 'CONTAINER'.

    CREATE OBJECT G_TREE
      EXPORTING
        PARENT              = MYCONTAINER
        NODE_SELECTION_MODE = G_TREE->NODE_SEL_MODE_MULTIPLE.



    CREATE OBJECT LCL_EVENT.

    SET HANDLER LCL_EVENT->NODE_DOUBLE_CLICK FOR G_TREE.

    CLEAR EVENT.
    CLEAR EVENTS.
    REFRESH EVENTS.

    EVENT-EVENTID = CL_GUI_SIMPLE_TREE=>EVENTID_NODE_DOUBLE_CLICK.
    EVENT-APPL_EVENT = ''.

    APPEND EVENT TO EVENTS.

    CALL METHOD G_TREE->SET_REGISTERED_EVENTS
      EXPORTING
        EVENTS = EVENTS.

    CALL METHOD G_TREE->ADD_NODES
      EXPORTING
        NODE_TABLE           = NODE_TABLE
        TABLE_STRUCTURE_NAME = 'NODE_STR'.
    CALL METHOD G_TREE->EXPAND_NODE
      EXPORTING
        NODE_KEY = 'ROOT'.
  ENDIF.

ENDMODULE.                 " INIT_TREE  OUTPUT 

 

 

 

 *&---------------------------------------------------------------------*
*&  包括                ZINC_EVENT_RECIEVE
*&---------------------------------------------------------------------*

CLASS LCL_EVENT_RECIEVE DEFINITION.
  PUBLIC SECTION.
    METHODS:NODE_DOUBLE_CLICK
      FOR EVENT NODE_DOUBLE_CLICK
      OF CL_GUI_SIMPLE_TREE
      IMPORTING NODE_KEY.
ENDCLASS.                    "lcl_event_recieve DEFINITION


*----------------------------------------------------------------------*
*       CLASS lcl_event_recieve IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_RECIEVE IMPLEMENTATION.
  METHOD NODE_DOUBLE_CLICK.

    AAA = NODE_KEY.
    SET SCREEN 0.
    LEAVE SCREEN.
  ENDMETHOD.                    "node_double_click
ENDCLASS.                    "lcl_event_recieve IMPLEMENTATION  

「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 笔记本的散热风扇管理 ---------------------------------------- 09 November 2006. 对于版本20061109的变更概述如下: 1) ACPI CA核心子系统:在源操作数是一个操作区域的场景下,对负载ASL操作符进行了优化。仅需映射操作区域内存,而不是执行逐字节读取。 (区域必须为SystemMemory类型,见下文。)修正了源操作数为区域字段的负载ASL操作符问题。也允许缓冲区对象作为源操作数。 BZ 480 解决了负载ASL操作符允许源操作数为任意类型操作区域的问题。现被限制为仅SystemMemory类型的区域,符合ACPI规范。 BZ 481 对新表管理器代码进行了额外的清理和优化。AcpiEnable将在所有必需的ACPI表未加载时失败(FADT, FACS, DSDT)。 BZ 477 在acobject.h中添加了#pragma pack(8/4),以确保此头文件中的结构始终编译为对齐。ACPI_OPERAND_OBJECT已被手动优化为对齐,并在字节打包时无法工作。示例代码和数据大小:这些是Microsoft Visual C++ 6.0 32位编译器生成的、与操作系统无关的acpica.lib的大小。调试版本的代码包含调试输出跟踪机制,具有更大的代码和数据大小。上一个版本:非调试版本:78.1K代码,17.1K数据,95.2K总计 调试版本:155.4K代码,63.1K数据,218.5K总计 当前版本:非调试版本:77.9K代码,17.0K数据,94.9K总计 调试版本:155.2K代码,63.1K数据,...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值