ABAP之通过弹窗修改数据内容

举报
百里丶落云 发表于 2023/08/29 11:00:16 2023/08/29
【摘要】 序HELLO,这里是百里一个学习中的ABAPER,在工作中可能会遇到用户手工输入具体某个或者某些数据内容,当然传统的界面上直接修改也不是不可以,但是如果是在按钮或者选择屏幕中就需要这种弹出弹窗的方式进行操作.这种东西给人一种重视感,比起传统ALV的小格子数据,这种更加生动且有参与度,那么带着我们的需求,进入今天的内容. 什么弹窗弹窗可以理解为覆盖某一个区域去执行某一个内容, 这个内容是可以...

HELLO,这里是百里一个学习中的ABAPER,在工作中可能会遇到用户手工输入具体某个或者某些数据内容,当然传统的界面上直接修改也不是不可以,但是如果是在按钮或者选择屏幕中就需要这种弹出弹窗的方式进行操作.这种东西给人一种重视感,比起传统ALV的小格子数据,这种更加生动且有参与度,那么带着我们的需求,进入今天的内容.

什么弹窗

弹窗可以理解为覆盖某一个区域去执行某一个内容, 这个内容是可以警告,可以输入数据,也可以进行有效的数据警告/禁止/提醒等.跟其他语言一样,我们的弹窗内容也是类似,弹出一个框,告诉你什么事情,或者让你输入什么事情.

语法解析

我们通过调用内置函数POPUP_GET_VALUES来实现弹框数据某些对应的数据内容. 具体参数以及语法如下.

  CALL FUNCTION 'POPUP_GET_VALUES'
      EXPORTING
*       NO_VALUE_CHECK  = ' '
        popup_title     = '冲销数据'
*       START_COLUMN    = '5'
*       START_ROW       = '5'
      IMPORTING
        returncode      = lv_rtn_cd
      TABLES
        fields          = it_value
      EXCEPTIONS
        error_in_fields = 1
        OTHERS          = 2.
    IF sy-subrc = 0.
      LV_STGRD =  it_value[ 1 ]-value   .
      LV_BUDAT =  it_value[ 2 ]-value   .
      LV_MONAT =  it_value[ 3 ]-value   .

      ENDIF .

参数解释

popup_title :弹窗的标题

fields 表中存储要和用户交互的字段,

每个字段有三个参数分别是tabname:参考表;fieldname:字段名称;value:默认值。

要求字段名称必须是参考表中的数据,会自动带出搜索帮助。

START_COLUMN和START_ROW 是弹窗位置

实际案例

本次案例采取财务模块中的一个小地方,通过让用户输入冲销原因,过账日期,记账期间这三个数据内容,讲对应的输入内容存入对应的数据内容,并且展示出来. 这里讲的只是一个非常基础的demo ,在实际案例中,抬头按钮筛选,按钮过账/审核. 表体重要数据着重修改都可使用这种方式. 因为我们已经把数据的数据存入到对应的数据内表中.

数据准备

*&---------------------------------------------------------------------*
*& 
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*


  DATA LV_STGRD TYPE RF05R-STGRD .
  DATA LV_BUDAT TYPE RF05R-BUDAT .
  DATA LV_MONAT TYPE RF05R-MONAT .
  DATA: it_value  TYPE TABLE OF sval,
        wa_value  TYPE sval,
        lv_rtn_cd.

操作数据

    wa_value-tabname = 'BKPF'.
    wa_value-fieldname = 'STGRD'.
    wa_value-value = '01'.
    APPEND wa_value TO it_value.
    wa_value-tabname = 'BKPF  '.
    wa_value-fieldname = 'BUDAT'.
    wa_value-value = sy-datum   .
    APPEND wa_value TO it_value.
    wa_value-tabname = 'BKPF'.
    wa_value-fieldname = 'MONAT'.
    wa_value-value = sy-datum+4(2).
    APPEND wa_value TO it_value.

调用函数

    CALL FUNCTION 'POPUP_GET_VALUES'
      EXPORTING
*       NO_VALUE_CHECK  = ' '
        popup_title     = '冲销数据'
*       START_COLUMN    = '5'
*       START_ROW       = '5'
      IMPORTING
        returncode      = lv_rtn_cd
      TABLES
        fields          = it_value
      EXCEPTIONS
        error_in_fields = 1
        OTHERS          = 2.
    IF sy-subrc = 0.
      LV_STGRD =  it_value[ 1 ]-value   .
      LV_BUDAT =  it_value[ 2 ]-value   .
      LV_MONAT =  it_value[ 3 ]-value   .

      ENDIF .


     WRITE : LV_BUDAT .

结果展示

如图直接按F8我们直接跳出弹窗内容,让我们输入设定好的内容,这里我们既可以设定默认值也可以设定数据类型,均为参考的标准的数据元素内容.

打印一下其中一个对应的日期. 我们可以讲对应的数据存入内表,这样就可以进行更多的数据操作.这里仅仅是抛砖引玉.

百里鸡汤

旧书不厌百回读熟读深思子自知。
他年名宦恐不免今日栖迟那可追。

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

60d4fea7ba041eaa32730221622c1a47.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。