码迷,mamicode.com
首页 > 其他好文 > 详细

WDA中动态ALV的实现

时间:2019-05-04 22:30:33      阅读:483      评论:0      收藏:0      [点我收藏+]

标签:界面   name   相对   sel   比较   数据   out   one   select   

  在SAP GUI中实现动态ALV时,一般采用先动态生成fieldcat,然后基于这个动态的fieldcat生成动态内表,以field-simbols操作内表,最后在

REUSE_ALV_GRID_DISPLAY_LVC函数中直接传入动态内表和fieldcat即可。

  WDA(webdynpro for abap)中实现动态ALV的原理和GUI中类似,不过会比GUI里面相对麻烦一点,阅读本文章需要有WDA开发基础,如ALV组件使用、

上下文概念,数据绑定等。

  STEP1:在SE80中新建一个WDA,在组件中添加ALV组件(图片中引用了两个ALV组件,因为需要在一个视图两个地方展示ALV),如有需要使用选择界面,则需引入SELECT_OPTIONS.

  技术图片

  STEP2:在控制器(COMPONENTCONTROLLER)中定义全局动态内表,动态结构

  技术图片

  STEP3:在视图中引入ALV组件的组件用途,在Layout中新建一个viewcontainer,在窗口中该viewcontainer中嵌入ALV组件用途(此处不赘述)

  技术图片

  技术图片

  STEP4:编写代码生成动态结构和动态内表,此处依赖于具体的业务功能,本人将数据生成逻辑写在独立的FUNCTION中而非WDA的框架代码中(WDA中编辑器比较小),此处简单介绍编写逻辑

    (1)生成动态fieldcat(或叫component)

     name属性为字段名,type属性可根据传入的数据元素名称动态获取(数据元素是SE11中存在的),ZWDA_S_FIELD_INFO主要是控制前端动态ALV中列的显示描述,是否可编辑,是否为复选框,是否为超链接,是否为下拉框等(此处可根据需要设定很多属性)。

  技术图片View Code

     技术图片

    技术图片

    技术图片

    (2)生成动态内表并填充数据(此处和GUI中逻辑无异),FUNCTION中无法直接传出一个standard table(语法能通过,但是传出会dump,此处还没搞懂原因,因此以一个data类型的格式传出数据)

      技术图片View Code

  STEP5:在WDA中创建一个动态ALV节点(上下文)并绑定数据,在下述代码之后则控制AVL即可

      技术图片View Code

      技术图片控制ALV

  STEP6:如果动态ALV数据做了修改需要保存到数据库

     技术图片提取ALV网格数据

     技术图片保存到自定义表

     技术图片刷新ALV

 

    

 

 

 

 

 

 

 

WDA中动态ALV的实现

标签:界面   name   相对   sel   比较   数据   out   one   select   

原文地址:https://www.cnblogs.com/duanqingxia/p/10810100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!