ABAP 自定义搜索功能 demo1

news2024/9/28 5:23:32

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-belnr
                                                       gjahr = 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.coloradmin.cn/o/838133.html

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

相关文章

Go学习第四天

Interface空接口万能类型与类型断言机制 package mainimport "fmt"// interface{}是万能数据类型 func myFunc(arg interface{}) {fmt.Println("myFunc is celled....")fmt.Println(arg)// interface{} 该如何区分 此时引用的底层数据类型到底是什么&…

14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

文章目录 1. 实现高层网络操作的类2. 基于HTTP协议的网络文件下载3.源码3.1 可是化UI设计3.2 mainwindow.h3.3 mainwindow.cpp 1. 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议&#xff0c;如 HTTP、FTP、SNMP等&#xff0c;这些类主要是…

linux Ubuntu 更新镜像源、安装sudo、nvtop

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错&#xff1a; E: Unable to locate package nvtop 需要更新一下apt&a…

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频&#xff0c;现在充电头再以文章的形式呈现给大家&#xff0c;让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…

设备管理系统与物联网的融合:实现智能化设备监控和维护

在数字化时代&#xff0c;设备管理系统和物联网技术的融合为工业企业带来了巨大的变革和创新。本文将探讨设备管理系统与物联网的融合&#xff0c;重点介绍设备健康管理平台在实现智能化设备监控和维护方面的关键作用和优势。 一、设备管理系统与物联网的融合 随着物联网技术的…

37.利用linprog解 有约束条件多元变量函数最小值(matlab程序)

1.简述 linprog函数主要用来求线型规划中的最小值问题&#xff08;最大值的镜像问题&#xff0c;求最大值只需要加个“-”&#xff09; 2. 算法结构及使用方法 针对约束条件为Axb或Ax≤b的问题 2.1 linprog函数 xlinprog(f,A,b) xlinprog(f,A,b,Aeq,beq) xlinprog(f,A,b,Aeq,…

PROFINET转ETHERCAT协议网关三菱plc支持ethercat吗

捷米特JM–ECAT-PN是自主研发的一款 PROFINET 从站功能的通讯网关。该产品主要功能是将 PROFINET 网络和 ETHERCAT 网络连接起来。 捷米特JM-ECAT-PN连接到 PROFINET 总线中做为从站使用&#xff0c;连接到 ETHERCAT 总线中做为从站使用。 3.技术参数 PROFINET 技术参数 网关…

软件测试界扎心的谣言:为什么说功能测试是巨坑?

​ 前言 一般而言&#xff0c;想要持续在行业内发展&#xff0c;会选择继续提升自己的测试技能&#xff0c;而目前自动化测试作为业内最主流的技术&#xff0c;往后发展可以进阶到测试开发&#xff0c;但前提条件还是要掌握到足够好的自动化测试技术才行。包括说编程语言的学习…

918. 环形子数组的最大和;2531. 使字符串总不同字符的数目相等;1238. 循环码排列

918. 环形子数组的最大和 核心思想&#xff1a;其实这题不加环形很好做&#xff0c;就是一个动态规划或者贪心就能够解决。加了环形我们应该怎么考虑呢&#xff0c;无非就是两种&#xff0c;第1种是子数组只包含首尾的一个&#xff0c;我们直接求子数组的最大连续和即可&#…

springboot+vue农产品特产商城销售平台_50kf2 多商家

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;南阳特产销售平台展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决…

【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性

文章目录 前言&#x1f31f;一、Docker工具&#x1f31f;二、Docker 引擎&#x1f30f;2.1.容器管理&#xff1a;&#x1f30f;2.2.镜像管理&#xff1a;&#x1f30f;2.3.资源管理&#xff1a;&#x1f30f;2.4.网络管理&#xff1a;&#x1f30f;2.5.存储管理&#xff1a;&am…

Python tkinter 制作文章搜索软件,精准定位想看文章

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 无聊的时候做了一个搜索文章的软件&#xff0c;有没有更加的方便快捷不知道&#xff0c;好玩就行了 环境使用 Python 3.8 Pycharm 模块使用 import requests import tkinter as tk from tkinter import ttk impo…

Vue3_03_setup函数

1.理解&#xff1a;Vue3.0 中的一个新的配置项&#xff0c;值为一个函数。 2.setup是所有组合式 API 表演的舞台。 3.组件中所用到的&#xff1a;数据、方法等等&#xff0c;均要配置在setup中。 4.setup函数的两种返回值&#xff1a; 若返回一个对象&#xff0c;则对象中的…

DirectX12 3D立方体游戏编程选修作业-龙书

DirectX12 3D立方体游戏编程作业-龙书 作业效果配置描述文件参考书签 作业效果 配置描述文件 参考:龙书dx12 chapter-6 电子版在CSDN下载里直接下载的 配置&#xff1a;将龙书中的visual stdio2015修改为visual stdio2019; visual stdio2019组件选择&#xff1a; desktop dev…

C++类和对象入门(下)

C类和对象入门 1. Static成员1.1 Static成员的概念2.2 Static成员的特性 2.友元2.1 友元函数2.2 友元函数的特性2.3 友元类 3. 内部类3.1 内部类的概念和特性 4. 匿名对象5. 再次理解类和对象 1. Static成员 1.1 Static成员的概念 声明为static的类成员称为类的静态成员&…

libtorch::Tensor与Eigen::Tensor互相转换

1. Eigen::Tensor转libtorch::Tensor Eigen::Tensor<float, 3> a{2,4,3};a.setRandom();a(1,2,1) 11.0;/*核心*/torch::Tensor b torch::from_blob(a.data(), {1, a.dimension(2), a.dimension(1), a.dimension(0)});/*核心*/b b.permute({0, 3, 2, 1});std::cout <…

Qt QThread的moveToThread方法使用

Qt线程简介 从 Qt4.4 版本之后&#xff0c;因为 QThread 的 run 方法创建新线程这样实现与 Qt 设计的理念不符&#xff0c;Qt 主推使用 moveToThread 方法来创建新线程。QThread 应该被看做是操作系统线程的接口或控制点&#xff0c;而不应该包含需要在新线程中运行的代码。需…

C++数据结构之BST(二叉搜索树)的实现

目录 01.BST的介绍02.BST 要实现的对外方法03.摘要04.查找节点4.1四个引用&#xff0c;都有妙用4.2递归版4.3非递归版 05.插入节点5.1利用search的返回值5.2更新高度的注意事项5.3插入算法的完整代码 06.删除节点6.1框架6.2单分支&#xff0c;直接替代6.3双分支&#xff0c;化繁…

实现天气预报走势图

实现效果&#xff1a; 这里我用的天气接口是网上开源的&#xff0c;可以自己找一下。 稍微简单封装了一下axiso以及接口 封装的axios&#xff1a; // import { useUserStore } from /stores/user import axios from axios import router from /router import { ElMessage } f…

P14 电路定理——巧妙-灵性-智慧

1、替代定理 图示表示&#xff1a; 叠加定理和齐性定理只能用于线性电路&#xff0c;但是替代定理无论线不线性都可以用。 常见的&#xff1a;线性电路将某复杂支路等效成电压源或电流源之后&#xff0c;就可以使用叠加原理了。 引入两个相互抵消的电压源&#xff0c;拿其中一…