ABAP 自定义搜索功能 demo1

ABAP 自定义搜索功能 demo1

效果:
在这里插入图片描述在这里插入图片描述
双击选中行则为选中对应发票
在这里插入图片描述
实现
1定义
定义屏幕筛选参数
SELECTION-SCREEN BEGIN OF SCREEN 9020.
SELECT-OPTIONS:s1_belnr FOR rbkp-belnr,
s1_gjahr FOR rbkp-gjahr,
s1_lifnr FOR rbkp-lifnr,
s1_erfna FOR rbkp-erfnam,
s1_bldat FOR rbkp-bldat,
s1_bukrs FOR rbkp-bukrs.
PARAMETERS:c_wqr TYPE xfeld.

SELECTION-SCREEN END OF SCREEN 9020.

定义alv显示内表
DATA:BEGIN OF gs_data1,
belnr TYPE rbkp-belnr,
gjahr TYPE rbkp-gjahr,
bldat TYPE rbkp-bldat,
bukrs TYPE rbkp-bukrs,
lifnr TYPE rbkp-lifnr,
name1 TYPE lfa1-name1,
waers TYPE rbkp-waers,
rmwwr TYPE rbkp-rmwwr,
wmwst1 TYPE rbkp-wmwst1,
rbstat TYPE rbkp-rbstat,
trbstat(6),
erfnam TYPE rbkp-erfnam,
sgtxt TYPE rbkp-sgtxt,
zstat TYPE ztmm015h-zstat,
tzstat(6),
zdate TYPE ztmm015h-zdate,
zuser TYPE ztmm015h-zuser,
zdate2 TYPE ztmm015h-zdate2,
zoaid TYPE ztmm015h-zoaid,

 END OF gs_data1.

DATA:gt_data1 LIKE TABLE OF gs_data1.

2设置选择帮助触发按钮
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_belnr.
3.设置触发后功能
PERFORM frm_f4_help CHANGING p_belnr p_gjahr.
FORM frm_f4_help CHANGING c_belnr
c_gjahr.

CALL SELECTION-SCREEN 9020 STARTING AT 10 1 ENDING AT 100 10.
IF sy-subrc NE 0.
MESSAGE ‘用户取消选择’ TYPE ‘S’.
EXIT.
ENDIF.

REFRESH:gt_data1.

SELECT
rbkp~belnr
rbkp~gjahr
rbkp~bldat
rbkp~bukrs
rbkp~lifnr
rbkp~waers
rbkp~rmwwr
rbkp~wmwst1
rbkp~rbstat
rbkp~erfnam
rbkp~sgtxt
lfa1~name1
INTO CORRESPONDING FIELDS OF TABLE gt_data1
FROM rbkp
JOIN lfa1 ON rbkp~lifnr EQ lfa1~lifnr
WHERE belnr IN s1_belnr
AND gjahr IN s1_gjahr
AND rbkp~lifnr IN s1_lifnr
AND erfnam IN s1_erfna
AND bldat IN s1_bldat
AND bukrs IN s1_bukrs
AND rbstat IN ( ‘A’,‘5’ ).

IF gt_data1 IS INITIAL.
MESSAGE ‘查询无数据’ TYPE ‘S’ DISPLAY LIKE ‘E’.
EXIT.
ENDIF.

SELECT * INTO TABLE @DATA(lt_ztmm015h)
FROM ztmm015h
FOR ALL ENTRIES IN @gt_data1
WHERE belnr EQ @gt_data1-belnr
AND gjahr EQ @gt_data1-gjahr
AND zstat IN ( ‘2’,‘3’,‘5’ ).
SORT lt_ztmm015h BY belnr gjahr.

LOOP AT gt_data1 INTO gs_data1.
CASE gs_data1-rbstat.
WHEN ‘A’.
gs_data1-trbstat = ‘预制’.
WHEN ‘5’.
gs_data1-trbstat = ‘已过帐’.
WHEN OTHERS.
ENDCASE.

READ TABLE lt_ztmm015h INTO DATA(lw_ztmm015h) WITH KEY belnr = gs_data1-belnrgjahr = gs_data1-gjahr BINARY SEARCH.
IF sy-subrc = 0.gs_data1-zstat = lw_ztmm015h-zstat.CASE gs_data1-zstat.WHEN '2'.gs_data1-tzstat = '已确认'.WHEN '3'.gs_data1-tzstat = '已发送OA'.WHEN '5'.gs_data1-tzstat = 'OA流程已归档'.WHEN OTHERS.ENDCASE.gs_data1-zstat = lw_ztmm015h-zstat.gs_data1-zdate = lw_ztmm015h-zdate.gs_data1-zuser = lw_ztmm015h-zuser.gs_data1-zdate2 = lw_ztmm015h-zdate2.gs_data1-zoaid = lw_ztmm015h-zoaid.
ENDIF.MODIFY gt_data1 FROM gs_data1.

ENDLOOP.

IF c_wqr = ‘X’. "只查未确认预制发票
DELETE gt_data1 WHERE zuser <> ‘’.
ENDIF.

************alv
REFRESH gt_fieldcat5.
CLEAR: gw_layout.
gw_layout-cwidth_opt = ‘X’.
gw_layout-zebra = ‘X’.
gw_layout-sel_mode = ‘B’.

DEFINE def_fcat5.
CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = &1.
wa_fieldcat-coltext = &2.
wa_fieldcat-ref_field = &3.
wa_fieldcat-ref_table = &4.
wa_fieldcat-key = &5.
wa_fieldcat-do_sum = &6.
wa_fieldcat-cfieldname = &7.
APPEND wa_fieldcat TO gt_fieldcat5.
END-OF-DEFINITION.

def_fcat5 ‘BUKRS’ ‘公司代码’ ‘BUKRS’ ‘T001’ ‘’ ‘’ ‘’.
def_fcat5 ‘LIFNR’ ‘供应商代码’ ‘LIFNR’ ‘EKKO’ ‘’ ‘’ ‘’.
def_fcat5 ‘NAME1’ ‘供应商名称’ ‘NAME_ORG1’ ‘BUT000’ ‘’ ‘’ ‘’.
def_fcat5 ‘BELNR’ ‘发票’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘GJAHR’ ‘发票年份’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘BLDAT’ ‘凭证日期’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘WAERS’ ‘币种’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘RMWWR’ ‘含税金额’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘WMWST1’ ‘税额’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘TRBSTAT’ ‘发票状态’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘ERFNAM’ ‘发票创建者’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘SGTXT’ ‘发票文本’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘TZSTAT’ ‘付款申请状态’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘ZDATE’ ‘确认日期’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘ZUSER’ ‘确认者’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘ZDATE2’ ‘发送OA日期’ ‘’ ‘’ ‘’ ‘’ ‘’.
def_fcat5 ‘ZOAID’ ‘OA流程单号’ ‘’ ‘’ ‘’ ‘’ ‘’.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING

  • I_INTERFACE_CHECK       = ' '
    
  • I_BYPASSING_BUFFER      =
    
  • I_BUFFER_ACTIVE         =
    i_callback_program      = sy-repid
    
  • i_callback_pf_status_set = 'SET_PF_STATUS'
    i_callback_user_command = 'USER_COMMAND01'
    
  • I_CALLBACK_TOP_OF_PAGE  = ' '
    
  • I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    
  • I_CALLBACK_HTML_END_OF_LIST       = ' '
    
  • I_STRUCTURE_NAME        =
    
  • I_BACKGROUND_ID         = ' '
    
  • i_grid_title            = gv_title
    
  • i_grid_settings         = gw_settings
    is_layout_lvc           = gw_layout
    it_fieldcat_lvc         = gt_fieldcat5
    
  • it_excluding            = gt_excluding
    
  • IT_SPECIAL_GROUPS_LVC   =
    
  • it_sort_lvc             = gt_sort
    i_default               = 'X'
    i_save                  = 'A'
    
    TABLES
    t_outtab = gt_data1
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.

ENDFORM.
FORM user_command01 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA g_grid TYPE REF TO cl_gui_alv_grid.

CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = g_grid.
CALL METHOD g_grid->check_changed_data.

READ TABLE gt_data1 INTO gs_data1 INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
p_belnr = gs_data1-belnr.
p_gjahr = gs_data1-gjahr.
LEAVE TO SCREEN 0.
ENDIF.

rs_selfield-refresh = ‘X’.
rs_selfield-col_stable = ‘X’.
rs_selfield-row_stable = ‘X’.

ENDFORM.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/22577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程概念linux

何为线程&#xff1a; 线程是程序中负责执行的单位&#xff0c;它可以被看作是进程的一部分&#xff0c;是进程的子任务。线程与进程的区别在于&#xff0c;进程是一个资源单位&#xff0c;而线程是进程的一部分&#xff0c;它只有栈这个独立的资源&#xff0c;其他资源如代码…

Java SpringBoot集成Activiti7工作流

Activiti7 Java SpringBoot集成Activiti7工作流介绍项目集成引入依赖YML配置文件配置类 启动项目生成表结构Activiti的数据库支持 Activiti数据表介绍项目Demo地址&#xff1a; Java SpringBoot集成Activiti7工作流 本文项目Demo地址附在文章后方 官网主页&#xff1a;http://a…

组件化、跨平台…未来前端框架将如何演进?

前端框架在过去几年间取得了显著的进步和演进。前端框架也将继续不断地演化&#xff0c;以满足日益复杂的业务需求和用户体验要求。从全球web发展角度看&#xff0c;框架竞争已经从第一阶段的前端框架之争&#xff08;比如Vue、React、Angular等&#xff09;&#xff0c;过渡到…

powerdesigner各种字体设置;preview字体设置;sql字体设置

1.设置左侧菜单&#xff1a; 步骤如下&#xff1a; tools —> general options —> fonts —> defalut UI font ,选择字体样式及大小即可&#xff0c;同下图。 2.设置preview字体大小&#xff08;sql预览&#xff09; 步骤如下&#xff1a; tools —> general o…

【音频分离】demucs V3的环境搭建及训练(window)

文章目录 一、环境搭建&#xff08;1&#xff09;新建虚拟环境&#xff0c;并进入&#xff08;2&#xff09;安装pyTorch&#xff08;3&#xff09;进入代码文件夹&#xff0c;批量安装包&#xff08;4&#xff09;安装其他需要的包 二、数据集准备&#xff08;1&#xff09;下…

数据采集的方法有哪些?

近年来&#xff0c;国家和各大企业都在部署大数据战略。“大数据”这个词也越来越频繁地出现在我们的生活中。当我们在进行网上冲浪时&#xff0c;页面总会跳出我们想要搜索的相关产品或关联事物。大数据&#xff0c;似乎总是能够“算”出我们“心中所想”。那么&#xff0c;大…

SpringBoot第23讲:SpringBoot集成MySQL - 基于JPA的封装

SpringBoot第23讲&#xff1a;SpringBoot集成MySQL - 基于JPA的封装 在实际开发中&#xff0c;最为常见的是基于数据库的CRUD封装等&#xff0c;比如SpringBoot集成MySQL数据库&#xff0c;常用的方式有JPA和MyBatis&#xff1b; 本文是SpringBoot第23讲&#xff0c;主要介绍基…

JVM基础篇-直接内存

JVM基础篇-直接内存 什么是直接内存? 直接内存( 堆外内存 ) 指的是 Java 应用程序通过直接方式从操作系统中申请的内存,这块内存不属于jvm 传统方式读取文件 首先会从用户态切换到内核态&#xff0c;调用操作系统函数从磁盘读取文件&#xff0c;读取一部分到操作系统缓冲区…

openGauss学习笔记-29 openGauss 高级数据管理-UNION子句

文章目录 openGauss学习笔记-29 openGauss 高级数据管理-UNION子句29.1 语法格式29.2 示例29.2.1 UNION29.2.2 UNION ALL openGauss学习笔记-29 openGauss 高级数据管理-UNION子句 UNION计算多个SELECT语句返回行集合的并集。UNION内部的SELECT语句必须拥有相同数量的列&#…

新一代开源流数据湖平台Apache Paimon入门实操-上

文章目录 概述定义核心功能适用场景架构原理总体架构统一存储基本概念文件布局 部署环境准备环境部署 实战Catalog文件系统Hive Catalog 创建表创建Catalog管理表查询创建表&#xff08;CTAS&#xff09;创建外部表创建临时表 修改表修改表修改列修改水印 概述 定义 Apache Pa…

【JavaSE】初步认识类和对象

【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录 1. 面向对象的初步认知 2. 类定义和使用 3. 类的实例化 4. this引用 1. 面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语…

Excel如何把两列互换

第一步&#xff1a;选择一列 打开excel&#xff0c;选中一列后将鼠标放在列后&#xff0c;让箭头变成十字方向。 第二步&#xff1a;选择Shift键 按住键盘上的Shift键&#xff0c;将列往后移动变成图示样。 第三步&#xff1a;选择互换 完成上述操作后&#xff0c;松开鼠标两…

层叠上下文

一、层叠上下文 在CSS2.1规范中&#xff0c;每个盒模型的位置是三维的&#xff0c;分别是平面画布上的x轴&#xff0c;y轴以及表示层叠的z轴&#xff0c;层叠上下文即元素在某个层级上z轴方向的排列关系。假定用户正面向&#xff08;浏览器&#xff09;视窗或网页&#xff0c;…

面试热题(打家窃舍)

一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存放金额的非负…

JSON动态生成表格

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>var fromjava"{\"total\":3,\"students\":[{\"name\":\"张三\",\&q…

机器学习基础08-模型选择02-分类算法矩阵(基于Pima 数据集)

算法评估矩阵&#xff08;Algorithm Evaluation Metrics&#xff09;用于评估机器学习算法在特定任务上的性能。不同的任务可能会使用不同的评估矩阵&#xff0c;因为每个任务的优劣衡量标准都不同。 分类算法矩阵 分类问题或许是最常见的机器学习问题&#xff0c;并且有多种评…

Linux中的firewall-cmd

2023年8月4日&#xff0c;周五上午 目录 打开端口关闭端口查看某个端口是否打开查看当前防火墙设置firewall-cmd中的服务在防火墙中什么是服务&#xff1f;为什么会有服务&#xff1f;打开或关闭服务查看某个服务是否打开firewall-cmd中的 zones查看所有可用的zones&#xff0…

搭建Django+pyhon+vue自动化测试平台

Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…

Swish - Mac 触控板手势窗口管理工具[macOS]

Swish for Mac是一款Mac触控板增强工具&#xff0c;借助直观的两指轻扫&#xff0c;捏合&#xff0c;轻击和按住手势&#xff0c;就可以从触控板上控制窗口和应用程序。 Swish for Mac又不仅仅只是一个窗口管理器&#xff0c;Swish具有28个易于使用的标题栏&#xff0c;停靠栏…

pytorch的CrossEntropyLoss交叉熵损失函数默认是平均值

pytorch中使用nn.CrossEntropyLoss()创建出来的交叉熵损失函数计算损失默认是求平均值的&#xff0c;即多个样本输入后获取的是一个均值标量&#xff0c;而不是样本大小的向量。 net nn.Linear(4, 2) loss nn.CrossEntropyLoss() X torch.rand(10, 4) y torch.ones(10, dt…