首页 > 其他分享 >SAP dialog 客制化容器选择问题处理

SAP dialog 客制化容器选择问题处理

时间:2024-01-29 16:55:24浏览次数:24  
标签:rows layout 客制化 grid ls dialog stable pv SAP

在使用客制化容器的时候,在里面防止alv展现的时候,layout给了一个zbox,但是有时候不起效,后来找了很久也没解决,就换了一种方式实现,这里就记录一下,顺便展示一下失效的情况

我这边就用一下之前的程序来做测试了,程序的构建看这个blog即可 https://www.cnblogs.com/pnj-owowa/p/17984569

结构新增

新增一列zbox

TYPES: BEGIN OF ty_mara,
         matnr TYPE mara-matnr,
         mtart TYPE mara-mtart,

         zbox  TYPE char1,
       END OF ty_mara.

layout修改

新增box_frame

  gs_layout = VALUE #( zebra = abap_on
                        cwidth_opt = abap_on
                        box_fname = |ZBOX| ).

一般来说普通的alv报表 就已经可以进行选择了,但是在容器中的不行,试了几次都不知道为什么,于是就换了一种方案来实施

layout修改

  gs_layout = VALUE #( zebra = abap_on
                        cwidth_opt = abap_on
*                        box_fname = |ZBOX|
                        sel_mode = |D| ).

展示

这样就可以看到可以有选择的地方了

但是这样还不够,因为这样选择后如果有按钮执行,系统并不知道你选择了哪一行,之后的按钮事件也会出问题

修改刷新例程

中间的就是新添加的代码,可以告诉系统这里我已经选择了那些行

  CALL METHOD pv_grid->check_changed_data. "检查ALV更改数据

  pv_grid->get_frontend_layout( IMPORTING es_layout = DATA(ls_layout) ).
  ls_layout-cwidth_opt = abap_on.
  pv_grid->set_frontend_layout( is_layout = ls_layout ).

*add
  REFRESH it_rows.
  CALL METHOD pv_grid->get_selected_rows(
    IMPORTING
      et_row_no = it_rows ).

  LOOP AT gt_mara ASSIGNING FIELD-SYMBOL(<fs_mara>) WHERE zbox <> ''.
    <fs_mara>-zbox = ''.
  ENDLOOP.
  LOOP AT it_rows INTO DATA(ls_rows).
    READ TABLE gt_mara ASSIGNING <fs_mara> INDEX ls_rows-row_id.
    <fs_mara>-zbox = 'X'.
  ENDLOOP.



  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = pv_grid.

  "刷新变量
  DATA: ls_stable TYPE lvc_s_stbl.

  "刷新显示
  CLEAR ls_stable.
  ls_stable-row = 'X'."基于行刷新
  ls_stable-col = 'X'."基于列刷新
  CALL METHOD pv_grid->refresh_table_display
    EXPORTING
      is_stable = ls_stable
    EXCEPTIONS
      finished  = 0.

标签:rows,layout,客制化,grid,ls,dialog,stable,pv,SAP
From: https://www.cnblogs.com/pnj-owowa/p/17988903

相关文章

  • CSAPP学习笔记——chapter8 异常控制流
    CSAPP学习笔记——chapter8异常控制流简介异常控制流(ExceptionalControlFlow,ECF)是在计算机系统中处理不寻常或异常情况的一种机制。它允许系统跳出正常的顺序控制流,响应那些并不直接由程序的控制流逻辑触发的事件。ECF在硬件、操作系统和应用程序层面都有体现,并且是现代计算......
  • CSAPP 第二章 信息的表示与处理(1)信息存储与整数表示
    1信息存储机器级程序将内存视为一个非常大的字节数组,成为虚拟内存(virtualmemory)。内存的每个字节都由唯一的数字来标识,称为它的地址(address),所有可能的地址集合就称为虚拟地址空间(virtualaddressspace)。每个程序对象可以简单地视为一个字节块,而程序本身就是一个字节序列。......
  • CSAPP学习笔记——Chapter12 并行编程
    CSAPP学习笔记——Chapter12并行编程并发编程有着其独特的魅力,之前接触cuda编程的时候,感受到一些,没想到书里还有相关的内容。今天我们主要围绕进程,I/O多路复用,线程三种并发的方式,介绍并发编程的相关概念。并最终拓展chapter11讲中的echo服务器,使其能够处理多个客户端的连接请求......
  • CSAPP学习笔记——Chapter10,11 系统级I/O与网络编程
    CSAPP学习笔记——Chapter10,11系统级I/O与网络编程Chapter10系统级I/O系统级I/O这一章的内容,主要可以通过这张图概括:UnixI/O模型是在操作系统内核中实现的。应用程序可以通过诸如open、close、lseek、read、write和stat这样的函数来访UnixI/O。较高级别的RIO和标......
  • CSAPP-C3
    0.警告不要试图通过这篇意识流笔记自学。右转睿站九曲阑干,可以帮你快速建立基本概念。1.基本的汇编语法I.数据格式三种数据类型:立即数:常数,一般用十进制表示,如果要使用十六进制表示,在前面加上$寄存器:寄存器内存:把内存抽象成一个大数组,使用M[i]的形式来理解i地址指......
  • SAP dialog 自定义搜索帮助 案例+源码
    同之前的blog一样,新建一个9000的屏幕,元素清单配好ok_code即可前置准备准备一个屏幕,具体步骤和之前一样,这边也按步骤做一下状态栏因为这个只是用于搜索帮助的演示,所以不需要应用应用程序工具栏,只需要设置功能键方便返回测试即可标题9000程序PROCESSBEFOREOUTPUT.......
  • SAP dialog使用选择屏幕+容器展现 步骤+源码
    系统自带的选择都是单选的,但是需求不一定是单选的,那么需要和选择屏幕一样的范围选择要怎么做呢,以下是一个样例,通过查询物料号来展现物料表的数据。9000屏幕创建屏幕设置屏幕类型布局编辑构建一个子屏幕subscreen用于防止选择屏幕,构建一个客制化容器contain用于存放......
  • Additional Information for Homogeneous System Copy on SAP HANA with Encrypted Ba
    SymptomAdditionalinformationwhenexecutingahomogeneoussystemcopyforanSAPsystemonSAPHANAwhenthedatabackupisencrypted.Ifadatarecovery stepperform_database_recovery_tenantfailswitherror:  SAPDBTechJDBC:[448]:recoverycouldnot......
  • WhatsApp自动回复脚本:从入门到精通!
    在这个数字时代,社交媒体已经成为我们生活中不可或缺的一部分,特别是WhatsApp,这款全球流行的即时通讯工具,为我们提供了与亲朋好友、客户和业务伙伴之间即时交流的便利。但有时候,我们无法及时回复消息,或者想要实现某些自动化的操作,这时,WhatsApp自动回复脚本就显得尤为重要,那么,如何开发......
  • SAP PS 项目库存配置
      (1)据业务调研实际情况,来配置项目参数文件中,项目库存管理方式,一般制造业都是要进行库存管理,所以都是项目Q库存;创建项目后,不能修改库存模式,因为可能产生预留已经流转到采购或生产;(2)自动需求分组(Grouping),把项目库存进行打包,放入Group,可以将WBS打包放在同一个Group进行管理,项......