简单alv双击弹窗展示明细
效果展示,双击弹窗出明细
双击弹出新窗口,展示明细。
弹窗是使用SALV的简单展示,有标准的按钮与简单设置,使用起来蛮方便的,写个例子记录一下。
详细设置可以我参考我另外一篇博客 简单SALV
代码
TYPE-POOLS: slis.
TYPE-POOLS: kcde.*&---------------------------------------------------------------------*
*& TABLES
*&---------------------------------------------------------------------*
TABLES: vbap,vbak.*----------------------------------------------------------------------*
* GLOBAL INTERNAL TABLES DECLARATION
*----------------------------------------------------------------------*
DATA: gt_file TYPE filetable.*----------------------------------------------------------------------*
* GLOBAL VARIANTS DECLARATION
*----------------------------------------------------------------------*
DATA: g_repid TYPE sy-repid.
DATA: gt_field TYPE slis_t_fieldcat_alv.
*定义读入EXCEL的内表TYPES : BEGIN OF typ_alv ,vbeln TYPE vbak-vbeln,erdat TYPE vbak-erdat, "创建日期vkorg TYPE vbak-vkorg, "销售组织vkbur TYPE vbak-vkbur, "销售办事处ernam TYPE vbak-ernam, "创建人sel TYPE c , " 复选框END OF typ_alv .
DATA : gs_alv TYPE typ_alv,gt_print TYPE TABLE OF typ_alv,gt_alv TYPE TABLE OF typ_alv.*创建字段宏定义
DEFINE add_field.ls_fieldcat-fieldname = '&1' . "字段名称ls_fieldcat-ref_table = &2. "关联表格ls_fieldcat-ref_field = &3."参考字段ls_fieldcat-coltext = &4. "描述文本APPEND ls_fieldcat TO gt_fieldcat.CLEAR ls_fieldcat.
END-OF-DEFINITION.*--------选择条件
SELECTION-SCREEN BEGIN OF BLOCK bl01 WITH FRAME TITLE TEXT-001.SELECT-OPTIONS:s_vkorg FOR vbak-vkorg OBLIGATORY,"销售组织s_vkbur FOR vbak-vkbur ,"销售办公室s_ernam FOR vbak-ernam."创建人
SELECTION-SCREEN END OF BLOCK bl01.* ALV 用
DATA:gs_layout TYPE lvc_s_layo,gv_repid TYPE repid,gt_fieldcat TYPE lvc_t_fcat,ls_fieldcat TYPE lvc_s_fcat.
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
*DATA: GT_ALVDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
*DATA: G_LIGHTS_NAME TYPE LVC_CIFNM VALUE 'LIGHT'.
*&---------------------------------------------------------------------*
*& EVENT AT INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION .AT SELECTION-SCREEN OUTPUT .*----------------------------------------------------------------------*
* EVENT OCCURS AFTER THE SELECTION SCREEN HAS BEEN PROCESSED
*----------------------------------------------------------------------*
START-OF-SELECTION.PERFORM frm_auth_check. "权限检查PERFORM frm_getdata . "获取数据 --GETTING DATAPERFORM frm_display_data. "展示ALVEND-OF-SELECTION.
*&---------------------------------------------------------------------*
*& FORM FRM_AUTH_CHECK
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM frm_auth_check .ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FRM_GETDATA
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM frm_getdata .SELECT vbak~vbeln,vbak~erdat,"创建日期vbak~vkorg,"销售组织vbak~vkbur, "销售办事处vbak~ernamFROM vbakWHERE vbak~vkorg IN @s_vkorgAND vbak~vkbur IN @s_vkburAND vbak~ernam IN @s_ernamINTO CORRESPONDING FIELDS OF TABLE @gt_alv.ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FRM_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM frm_display_data .DATA : lv_html_header TYPE slis_formname .
*定义输出模式CLEAR:gs_layout,gt_fieldcat.gs_layout-cwidth_opt = 'X'.gs_layout-zebra = 'X'.gs_layout-box_fname = 'SEL'.gv_repid = sy-repid.PERFORM frm_set_fieldcat..
* TRY .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = gv_repidi_callback_user_command = 'FRM_USER_COMMAND'i_callback_pf_status_set = 'FRM_PF_STATUS'is_layout_lvc = gs_layoutit_fieldcat_lvc = gt_fieldcati_save = 'A'TABLESt_outtab = gt_alvEXCEPTIONSprogram_error = 1OTHERS = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM frm_set_fieldcat .add_field:vbeln 'VBAK' 'VBELN' '销售订单',erdat 'VBAK' 'ERDAT' '创建日期',vkorg 'VBAK' 'VKORG' '销售组织',vkbur 'VBAK' 'VKBUR' '销售办事处',ernam 'VBAK' 'ERNAM' '创建人'.
ENDFORM.FORM frm_pf_status USING extab TYPE slis_t_extab.DATA: fcode TYPE TABLE OF sy-ucomm.CLEAR:fcode[].SET PF-STATUS 'STANDARD' EXCLUDING fcode[] .
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FRM_USER_COMMAND
*&---------------------------------------------------------------------*
* 自定义用户动作
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------**自定义用户动作
FORM frm_user_command USING p_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield.DATA : l_ucomm TYPE sy-ucomm .IF g_grid IS INITIAL.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = g_grid.ENDIF."失去焦点触发更新内表CALL METHOD g_grid->register_edit_eventEXPORTINGi_event_id = cl_gui_alv_grid=>mc_evt_modified.CALL METHOD g_grid->check_changed_data.rs_selfield-refresh = 'X'.rs_selfield-col_stable = 'X'.rs_selfield-row_stable = 'X'.l_ucomm = p_ucomm .CLEAR p_ucomm .DATA : l_uname TYPE sy-uname,l_datum TYPE sy-datum,l_uzeit TYPE sy-uzeit.CASE l_ucomm.WHEN '&IC1'. "双击READ TABLE gt_alv INDEX rs_selfield-tabindex INTO DATA(wa_sel_temp). "双击行IF sy-subrc = 0 .
* SET PARAMETER ID 'VL' FIELD WA_SEL_TEMP-VBELN .
* CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN ."SKIP FIRST SCREEN 忽略SELECTION SCREENPERFORM displat_item USING wa_sel_temp-vbeln.ENDIF.CLEAR:wa_sel_temp.WHEN OTHERS.ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& FORM DISPLAT_ITEM
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& --> P1 TEXT
*& <-- P2 TEXT
*&---------------------------------------------------------------------*
FORM displat_item USING p_vbeln.DATA: go_alv TYPE REF TO cl_salv_table,go_funlst TYPE REF TO cl_salv_functions_list.DATA: cxroot TYPE REF TO cx_root,excmsg TYPE c.CLEAR:go_alv,go_funlst.SELECT vbap~vbeln,vbap~posnr,vbap~matnr,vbap~ZMENG,makt~maktxFROM vbapLEFT JOIN makt ON makt~matnr EQ vbap~matnr AND makt~spras = '1'WHERE vbeln = @p_vbelnINTO TABLE @DATA(lt_item).IF sy-subrc = 0.TRY.cl_salv_table=>factory(IMPORTINGr_salv_table = go_alv "导出ALV的容器对象CHANGINGt_table = lt_item[] ). "内容表CATCH cx_root INTO cxroot.excmsg = cxroot->get_text( ).MESSAGE e000(oo) WITH excmsg.ENDTRY.go_funlst = go_alv->get_functions( ).go_funlst->set_all( 'X' )."重新设置列名称go_alv->get_columns( )->get_column( 'MAKTX' )->set_long_text( 'TES删除' )."IF go_alv IS BOUND."设置窗口大小与位置-go_alv->set_screen_popup(start_column = 30end_column = 160start_line = 5end_line = 20 ).go_alv->display( ).ENDIF.ENDIF.
ENDFORM.
代码直接复制就能用了。
简单alv双击弹窗展示明细相关推荐
- modal组件 vue_开发一个简单的 Vue 弹窗组件
https://github.com/woai3c/Front-end-articlesgithub.com 一个弹窗组件通常包含两个部分,分别是遮罩层和内容层. 遮罩层是背景层,一般是半透明或不透 ...
- html如何控制弹窗位置,控制弹窗展示顺序
工作中遇到一个需求,就是控制用户进入应用时自动打开弹窗的展示顺序. 需求和现状 用户进入应用时会展示一系列的弹窗,这些弹窗的展示内容以及展示与否取决于进入应用时的一系列请求结果.由于接口请求返回数据的 ...
- [UWP]使用Picker实现一个简单的ColorPicker弹窗
[UWP]使用Picker实现一个简单的ColorPicker弹窗 原文:[UWP]使用Picker实现一个简单的ColorPicker弹窗 在上一篇博文<[UWP]使用Popup构建UWP P ...
- jquery练习——简单的图片结果展示效果
今天看到google图片搜索结果页面,感觉简洁实用,于是用jquery粗略的模仿了一下 再次感觉到jquery的强大和易用,基本思路初步实现了,再整合ajax和json,应该可以做一个简单的应用了 : ...
- js制作一个简单的div弹窗:
js制作一个简单的div弹窗: 演示地址:http://demo.jb51.net/js/2015/jquery-simple-alert-style-demo/ <!DOCTYPE html ...
- 爱番番/百度商桥-当前页面弹窗展示demo
爱番番,百度商桥改名之后的产物. 百度商桥不细说了,自己去网站配置拿到自己的商桥链接(类似这样的):https: //p.qiao.baidu.com/cps5/chat?siteId=11111& ...
- ABAP 对内表的操作(增删改读及alv双击读取数据)
https://www.cnblogs.com/wh-cnblogs/p/15989485.html 对内表操作: gt开头为内表(gt_zav,gt_S001) , wa 开头为工作区 (wa_za ...
- android studio 简单的食堂菜单展示软件
android studio 简单的食堂菜单展示软件 先上效果图吧: 打开pricelist的时候会有音乐自动播放,使用到的代码是: //音乐播放器MediaPlayer mediaP ...
- markdown for 蝉知 2.1.1,简单修复移动端展示
蝉知markdown编辑器于10月30日更新到2.0版本,但是由于系统设置原因(我的个人站点设置将移动端关闭了),导致测试移动端时自动跳转到了pc端,导致移动端使用会出现部分问题. 蝉知markdow ...
最新文章
- TensorFlow 2.0发布在即,高级API变化抢先看
- 编译-C++支持iOS静态库的脚本学习
- [怪谈]唯有数学不会因时代的变迁而没落
- pyhton中的魔术方法
- 解决无法删除表,提示被外键约束引用
- centos8.2安装mysql_centos8安装mysql
- kafka通过脚本一次启动集群
- Intel Core Enhanced Core架构/微架构/流水线 (8) - 执行核
- Jsp+Ssm+Mysql框架实现的手机WAP版外卖点餐系统
- 职高计算机基础知识大全,职高计算机基本教学大纲.doc
- wap尝试调取app(网易新闻为例)
- 【数据库】SQL语句之修改语句(INSERT,UPDATE,DELETE)
- 系统架构设计师考试学习目录
- msvcr71.dll文件丢失——解决办法
- 利用beego开发网站(一)
- 处理C盘容量不足问题(以AppData为例)
- 这几款手机安全浏览器,好用不止一点点
- 标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
- 实战项目 — 爬取中国票房网年度电影信息并保存在csv
- 如何删除双系统中的ubuntu
热门文章
- emeditor正则表达式_掌握EmEditor正则表达式语法,大大提升工作效率
- 世界大师的经典黑白摄影100张
- C语言-有八层灯塔,每层的灯塔灯数都是上一层的两倍,共有765盏灯,求最上层和最下层的灯数。
- Presto RBO之谓词下推
- [专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文...
- 使用VC和MATCOM结合开发应用程序心得笔记
- 可视化项目前端框架图
- golang之iota常量与枚举标识
- 非典型SOHO的苦与乐
- 编程的苦与乐(摘自《人月神话》)