点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
对于ABAP来说还很陌生,并且想要实现以下内容:
在可以输入数据的维护视图中,我想检查组成特定公司代码的sum()是否为=> 1.00(100%)。
该表如下所示:
公司; 代码值
01; 0.3
01; 0.4
01; 0.3
02; 0.2
02; 0.2
02; 0.2
02; 0.2
02; 0,199
用户只能填写由一个公司代码组成的值,最大为1.00。 例如,如果现在尝试输入公司代码为2的行; 0.3->不应保存,并且错误应表明该值只能为1。
我正在考虑向维护视图中添加一个before_save检查,如下所示:
FORM form_03_CHECK_VALUES。
数据:l_value TYPE值。
选择总和(值)
FROM表
INTO l_value
按公司代码分组
IF l_value> 1.
消息'错误'类型'E'显示为'S'。
ENDIF。
ENDFORM。
但是,由于我不是ABAP的新手,所以我想我在这里误解了一些概念。 有人可以帮我吗?
高度赞赏,
您可以实现事件01(在保存之前),但是数据尚未保存在数据库中,而是在内部表TOTAL中。 它具有一种特殊的格式,您必须首先将其转换为具有可用格式的内部表,如下所示。 我使用的名称与Mike提议的名称相同(LT_VAL_BUK)。
您的代码看起来不错,您可以使用消息类型玩,以更改sy-subrc或直接影响变量SPAN vim_abort_saving
(vim_abord_saving = abap_true)
嗨Franziskus,
几种方法可以做到这一点。 我只是简单地介绍一下,假设您提到"表格"后就使用"经典" ABAP。
当然,可以使用ABAP OO更好地解决此问题,但是我们还没有解决。。。。。。。。。。
此外,为了将来参考,并且为了更好地熟悉ABAP概念,请查看ABAP帮助,例如:
https://help.sap.com/saphelp_47x200/ helpdata/zh-CN/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm
希望让您入门,
迈克
您好 Franziskus Heep ,
对于您选择的事件表示怀疑,如果也不要尝试事件05,请检查它是否工作正常,并让我们知道成功的案例。
一周热门 更多>