可编辑ALV中的验证

2020-08-18 19:56发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,目前我正在尝试向我的可编辑ALV报告中添加一些验证。

这就是我想要做的:

1。 在标题和订单项中将EBELN字段设为必填字段

2。 当附加(方法:CREATE_PURCHASE_ORDERS,在下面的URL中)时,在标题中添加新记录,一旦在标题中键入ebeln,然后按Enter,它将自动在标题(bedat字段)中填充sy-datum,并在行项目中自动填充eleb,

是否有适合我研究的消息来源? 找不到合适的人

通过BCALV_EDIT_04查看

我的源代码可以在该URL的注释部分中看到:

https: //answers.sap.com/questions/13047333/sorting-issue-for-alv-splitter.html?childToView=13047697#answer-13047697

(90.2 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,目前我正在尝试向我的可编辑ALV报告中添加一些验证。

这就是我想要做的:

1。 在标题和订单项中将EBELN字段设为必填字段

2。 当附加(方法:CREATE_PURCHASE_ORDERS,在下面的URL中)时,在标题中添加新记录,一旦在标题中键入ebeln,然后按Enter,它将自动在标题(bedat字段)中填充sy-datum,并在行项目中自动填充eleb,

是否有适合我研究的消息来源? 找不到合适的人

通过BCALV_EDIT_04查看

我的源代码可以在该URL的注释部分中看到:

https: //answers.sap.com/questions/13047333/sorting-issue-for-alv-splitter.html?childToView=13047697#answer-13047697

(90.2 kB)
付费偷看设置
发送
7条回答
闻人可可
1楼-- · 2020-08-18 20:40

嗨,

您应该能够通过在ALV的data_changed事件中实现逻辑来解决此问题。

在以下问题中可以找到一个示例:

/img/questions /6638943/how-to-validate-editable-field-in-alv.html

最诚挚的问候

Geert-Jan Klaps

代楠1984
2楼-- · 2020-08-18 20:44

我想在程序的SAVE_DATABASE_APPEND子例程中添加错误,以使ebeln成为必填字段,而我错过了任何东西?

派大星 ヾ
3楼-- · 2020-08-18 20:38

Hi

在您的方法中UPDATE_PURCHASE_ORDERS 。,您可以添加验证例程

执行验证-在该循环中遍历it_header表,如果初始存在任何ebeln,则将ok_to_save标志设置为'N'。

在put方法中 if语句为IF ok_to_save ='Y'......

否则将显示该消息。

闻人可可
4楼-- · 2020-08-18 20:37

附带的其他方法

软件心理学工程师
5楼-- · 2020-08-18 20:39
< p> Hi

请按如下所示

声明一个全局变量iv_save类型c长度为1的默认空间。

I 在您的方法中,包括以下语句

方法UPDATE_PURCHASE_ORDERS。
 数据:ls_zheader喜欢it_zheader的行,
      lv_ebeln TYPE zekko03-ebeln。
     
      PERFORM VALIDATE_IT。  <=====在此处添加语句行
      IF IV_SAVE ='Y'<==添加if语句以验证标志是否正确
          如果it_zheader不是INITIAL。
          ....
          .....
      万一。
      其他。
        消息"内部表PO号丢失"。类型" S",显示像" S"。
      ENDIF 

以及子例程

 FORM VALIDATE_IT。
    IV_SAVE ='Y'。
    将IT_HEADER循环到LS_HEADER。
      如果LS_HEADER-EBELN =''。
        IV_SAVE ='N'。
      万一。
    结局。
 结束格式


 
宇峰Kouji
6楼-- · 2020-08-18 20:50

对不起,您不明白

是这样吗? 请纠正我

 value(IT_ZHEADER)TYPE ZEKKO03_TT PO标头表类型
 值(IT_ZITEMS)TYPE ZEKPO03_TT PO项目表类型
 IV_SAVE TYPE BOOLEAN布尔变量(X =真,-=假,空格=未知)
 值(ES_BAPIRET2)TYPE BAPIRET2返回参数




   方法UPDATE_PURCHASE_ORDERS。

 数据:ls_zheader喜欢it_zheader的行,
       lv_ebeln TYPE zekko03-ebeln。

 如果it_zheader不是INITIAL。

         从表it_zheader修改zekko03。
         如果SY-SUBRC = 0。
           提交工作。
           ES_BAPIRET2-TYPE ='S'。
           ES_BAPIRET2-MESSAGE ='已成功更新表ZEKKO03'。

         其他。
           回滚工作。
           ES_BAPIRET2-TYPE ='E'。
           ES_BAPIRET2-MESSAGE ='更新表ZEKKO03时出错。
         万一。

         从表it_zitems修改zekpo03。
         如果SY-SUBRC = 0。
           提交工作。
           ES_BAPIRET2-TYPE ='S'。
           ES_BAPIRET2-MESSAGE ='已成功更新表ZEKKO03'。

         其他。
           回滚工作。
           ES_BAPIRET2-TYPE ='E'。
           ES_BAPIRET2-MESSAGE ='更新表ZEKKO03时出错。
         万一。

 万一。



 循环到it_zheader并进入ls_zheader。

   如果lv_ebeln是INITIAL。

     如果iv_save ='-'。
       消息"请输入采购订单号" TYPE" E"。

     elseif iv_save ='X'。


     万一。

   万一。

 ENDLOOP。

一周热门 更多>