代码如下:
DATA: gcl_alvgrid TYPE REF TO cl_gui_alv_grid,
gcl_docking TYPE REF TO cl_gui_docking_container,
* gc_container TYPE REF TO cl_gui_custom_container,"控件
* gc_container TYPE REF TO cl_gui_docking_container, "全屏
gc_textedit TYPE REF TO cl_gui_textedit,
gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo,
gt_toolbar TYPE ui_functions.
CLASS cl_event_receiver DEFINITION.
PUBLIC SECTION.
" 声明单击事件的方法
CLASS-METHODS handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid "屏幕中的单击事件,可以具体到某行某列,需要设置热点
IMPORTING e_row_id e_column_id es_row_no.
ENDCLASS.
CLASS cl_event_receiver IMPLEMENTATION. "实现类方法
"ALV内表展示处单击事件捕捉,需要设置热点对单击列字段
METHOD handle_hotspot_click.
CLEAR gs_alv.
READ TABLE gt_alv INTO gs_alv INDEX es_row_no-row_id. "判断行号
"点设备号(EQUNR)调用tcode IE03,点资产号(ANLNR)调用AS03
CASE e_column_id-fieldname . "判断列名
WHEN 'EQUNR'.
SET PARAMETER ID 'EQN' FIELD gs_alv-equnr.
CALL TRANSACTION 'IE03' WITH AUTHORITY-CHECK AND SKIP FIRST SCREEN. "点设备号(EQUNR)调用IE03,参数:设备号
WHEN 'ANLN1'.
SET PARAMETER ID: 'AN1' FIELD gs_alv-anln1,
'BUK' FIELD gs_alv-bukrs.
CALL TRANSACTION 'AS03' WITH AUTHORITY-CHECK AND SKIP FIRST SCREEN."调入方,点资产号(ANLN1)调用AS03,参数:资产号+公司号
ENDCASE.
CLEAR gs_alv.
ENDMETHOD.
代码如下:
START-OF-SELECTION.
*----------------------逻辑取数------------------*
PERFORM frm_query_data.
*-----------------------展示数据---------------------*
PERFORM frm_show_data.
FORM frm_show_data .
"创建ALV结构
PERFORM frm_build_fcat.
"设置ALV输出格式及保存变式
PERFORM frm_set_layout.
"显示ALV数据
PERFORM frm_display_alv.
CALL SCREEN 100.
ENDFORM.
代码如下:
FORM frm_build_fcat .
DEFINE fieldcat_add.
CLEAR gs_fieldcat.
l_index = l_index + 1.
gs_fieldcat-col_pos = l_index.
gs_fieldcat-fieldname = &1.
gs_fieldcat-reptext = &2.
gs_fieldcat-outputlen = &3.
gs_fieldcat-no_zero = &4.
gs_fieldcat-decimals = &5.
gs_fieldcat-just = &6.
gs_fieldcat-hotspot = &7.
gs_fieldcat-ref_table = &8.
gs_fieldcat-edit = &9. "这一列设为可编辑状态
APPEND gs_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.
l_index = 1.
fieldcat_add 'XUHAO' '序号' '' '' '' '' '' '' ''.
fieldcat_add 'BUKRS' '公司代码' '' '' '' '' '' '' ''.
fieldcat_add 'ANLN1' '财务资产编码' '' '' '' '' 'X' '' ''.
fieldcat_add 'ANLKL' '财务资产类别' '' '' '' '' '' '' ''.
fieldcat_add 'TXT50' '财务资产名称' '' '' '' '' '' '' ''.
fieldcat_add 'MENGE' '财务数量' '' '' '' '' '' '' ''.
fieldcat_add 'MEINS' '财务单位' '' '' '' '' '' '' ''.
fieldcat_add 'KOSTLV' '财务成本中心' '' '' '' '' '' '' ''.
fieldcat_add 'EQUNR' 'PM资产号' '' '' '' '' 'X' '' ''.
ENDFORM.
代码如下
FORM frm_set_layout .
CLEAR: gs_layout.
gs_layout-grid_title = 'OO-ALV报表'.
gs_layout-zebra = 'X'.
gs_layout-cwidth_opt = 'X'.
gs_layout-no_merging = 'X'.
gs_layout-sel_mode = 'C'."'A'.
gs_layout-edit_mode = 'X'.
"gs_layout-box_fname = 'SEL'.
ENDFORM.
代码如下
FORM frm_display_alv .
DATA: lt_tools TYPE TABLE OF sy-ucomm. "用于排除按钮
DATA: cl_event_receiver TYPE REF TO cl_event_receiver.
DATA ls_stbl TYPE lvc_s_stbl.
FIELD-SYMBOLS: <lfs_tab> TYPE STANDARD TABLE.
ls_stbl-row = 'X'." 基于行的稳定刷新
ls_stbl-col = 'X'." 基于列稳定刷新
ASSIGN gt_alv TO <lfs_tab>.
CHECK <lfs_tab> IS ASSIGNED.
IF gcl_docking IS NOT BOUND.
CREATE OBJECT gcl_docking
EXPORTING
* parent =
repid = sy-repid
dynnr = '0100'
side = cl_gui_docking_container=>dock_at_bottom "dock_at_top
extension = 500
* style =
* lifetime = lifetime_default
* caption =
* metric = 0
* ratio = 0
* no_autodef_progid_dynnr =
* name =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT gcl_alvgrid
EXPORTING
* i_shellstyle = 0
* i_lifetime =
i_parent = gcl_docking
* i_appl_events = space
* i_parentdbg =
* i_applogparent =
* i_graphicsparent =
* i_name =
* i_fcat_complete = SPACE
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL METHOD gcl_alvgrid->set_table_for_first_display
EXPORTING
* i_buffer_active =
* i_bypassing_buffer =
* i_consistency_check =
* i_structure_name =
* is_variant =
i_save = 'A'
* i_default = 'X'
is_layout = gs_layout
* is_print =
* it_special_groups =
it_toolbar_excluding = lt_tools
* it_hyperlink =
* it_alv_graphics =
* it_except_qinfo =
* ir_salv_adapter =
CHANGING
it_outtab = <lfs_tab>
it_fieldcatalog = gt_fieldcat
* it_sort =
* it_filter =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
ELSE.
" PERFORM frm_refresh_alv USING gcl_alvgrid.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
******注册ALV中引用的事件
ENDIF.
CREATE OBJECT cl_event_receiver.
SET HANDLER cl_event_receiver=>handle_hotspot_click
"alv_event_receiver=>handle_double_click
FOR ALL INSTANCES.
ENDFORM.
在100屏幕设置status和title
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STA_100'.
SET TITLEBAR 'TILLE100'.
ENDMODULE.
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'BACK' OR 'CANCLE'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
文章浏览阅读59次。转载请注明出处为KlayGE游戏引擎上一篇解决了透明物体的渲染问题;本文将挑战另一个实时渲染的神话,实时全局光照(GI)。实时全动态GI目前direct lighting在游戏中日趋成熟,比较前卫的游戏引擎已经不满足于diect lighting的效果了,逐渐开始尝试indirect lighting。早期的方法有通过离线渲染light map来实现静态场景、静态光源的GI。接着出现...
文章浏览阅读433次。Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。简言概括:Git就是分布式版本控制。_git必须用网络吗
文章浏览阅读2.1w次,点赞59次,收藏265次。目录0x01简单概述0x02安装环境1. kali设置2. 更新软件源中的所有软件列表3. 安装https协议及CA证书0x03安装步骤一、安装Docker1. 下载安装2. 查看Docker是否安装成功3. 查看docker基本信息二、安装vluhub1. 安装pip32. 安装Docker-Compose3. 查看docker-compose版本三、安装vulhub靶场1. 克隆下载2. 随便进入一个靶场环境目录3. 对靶场进行编译4. 运行此靶场5. 查看启动环境6. 通过浏览器访问7. 关闭此靶场环_vulhub靶场搭建
文章浏览阅读564次。原标题:「硬核测试:游戏鼠标精准度」赛睿SENSEI 310作为赛睿最热销游戏鼠标之一,310有SENSEI(对称)和RIVAL(右手)两个版本,均采用今天要测的TrueMove3引擎,是基于PMW3360打造的1:1真实追踪的引擎,虽然现在“1:1引擎”很多了,但TrueMove出来时这个概念还是很新颖的,尤其是提到了消除抖动,最大限度的保持理论和实际DPI的稳定性,那么到底是不是真的1:1呢,..._鼠标精确度检测软件
文章浏览阅读209次,点赞6次,收藏5次。随着人们生活水平的提高和旅游业的迅速发展,国际酒店的预订需求越来越大。为满足用户的需求,安卓国际酒店预订APP应运而生。本文旨在详细介绍该APP的设计与实现过程,以提供方便、快捷、安全的酒店预订服务。首先,本文将介绍课题的背景和国内外现状与趋势。随着国内外旅游业的快速发展,人们对旅游住宿的需求也越来越高。同时,随着移动互联网的普及,手机APP已经成为人们预订酒店的首选方式。因此,开发一款便捷、实用的酒店预订APP已经成为当务之急。接着,本文将详细阐述系统的设计和实现过程。_基于android平台的酒店预订管理系统软件设计的论文
文章浏览阅读2.7k次。本文版权归博客园 mavaL所有,如有转载请按如下方式详细标明原创作者及出处,以示尊重!!原创作者:mavaL原文链接:DirectX9 ShadowMap例子学习笔记学习SDK例子真是快速加强编程能力的途径,然而虽如此,微软不仅在每个例子中展示了本_g_aminitobjworld
文章浏览阅读2.2k次,点赞5次,收藏2次。这个DAX公式采取类似Excel行上下文的功能,首先建立一个参数等于类别,在Rankx函数第一个参数添加一个Filter,实现同一类别内进行排名,即分层排名。上述DAX公式使用的是ALLEXCEPT函数,是ALL家族函数,功能是除了第二个参数【类别】都是行上下文计算排名,这样就实现了分组分层排名。如上例,Rankx只有前两个参数是必要的,实际可以输入五个参数,设置排序方式。通过在第一个参数添加函数可以实现进阶功能,例如分组分层排名,依旧使用上述数据。再使用Rankx计算排名。首先建立销售和度量值。_powerbi分组排名
文章浏览阅读894次。随便在以一个目录里新建一个快捷方式,填上ftp地址,如下:下一步,然后删除此快捷方式,那废的ftp就没了转载于:https://www.cnblogs.com/shuangfeike/p/11413734.html..._群辉的ftp文件点右键没有编辑功能
文章浏览阅读1.8k次。接口/** * 从页面接收的数据是多值数据,就是一个数组,它不想转成其它类型,直接把数组丢给dao */ public List<Emp> queryByArray(Integer[] empnos);EmpMapper.xml配置文件<select id="queryByArray" resultType="emp"> select <incl..._前端传入的是long型的数组后端在mybatis中怎么批量查询
文章浏览阅读715次。前言在大数据时代,你竟然会在网上看到的词云,例如这样的。看到之后你是什么感觉?想不想自己做一个?如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流行的编程语言,你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……如果你之前没有编程基础,没关系。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出..._词云是什么意思
文章浏览阅读469次。什么是nginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,使用c语言编写的一款web服务软件.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。为什么使用nginx?作用1.反向代理2.负载均衡。3.._nginxl
文章浏览阅读465次,点赞2次,收藏3次。Day 33Day 34_句句真研每日一句答案在哪