通过功能模块提交报告

2020-09-12 08:04发布

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

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


尊敬的专家,
在ALV网格某些特定字段上的双击事件中的Z *程序之一中,通过功能模块调用启动了事务LX02:

呼叫功能'Z_MZ_CALL_LX02'正在开始新任务'LX02'
           出口
             iv_lgnum = lv_lgnum
             iv_matnr =  -matnr
             iv_vlpla =  -vlpla。

功能模块的源代码如下:

 TYPE-POOLS:rsds。

   数据:rsparams的it_seltab类型表,
           ls_seltab喜欢it_seltab,
           wa_selopt TYPE rsdsselopt。
   数据:it_frange TYPE rsds_frange_t,
           wa_frange TYPE rsds_frange。
   数据:it_trange TYPE rsds_trange,
           wa_trange TYPE rsds_range。
   数据:it_texpr类型rsds_texpr,
           wa_texpr TYPE rsds_expr。


   wa_trange-tablename ='LQUA'。
   wa_frange-fieldname ='MATNR'。
   wa_selopt-sign ='I'。
   wa_selopt-option ='EQ'。
   wa_selopt-low = iv_matnr。
   wa_selopt-high = iv_matnr。


   附加wa_selopt至wa_frange-selopt_t。
   附加wa_frange至wa_trange-frange_t。
   清除wa_selopt。
   清除wa_frange。


   wa_frange-fieldname ='LGNUM'。
   wa_selopt-sign ='I'。
   wa_selopt-option ='EQ'。
   wa_selopt-low = iv_lgnum。
   wa_selopt-high = iv_lgnum。
   附加wa_selopt至wa_frange-selopt_t。
   附加wa_frange至wa_trange-frange_t。
   清除wa_selopt。
   清除wa_frange。


   ls_seltab-selname ='S1_LGNUM'。  "提交程序上的参数名称
   ls_seltab-kind ='S'。
   ls_seltab-sign ='I'。
   ls_seltab-option ='EQ'。
   ls_seltab-low = iv_lgnum。
   ls_seltab-high = iv_lgnum。
   将ls_seltab附加到it_seltab。
   清除ls_seltab。




   如果iv_vlpla不是INITIAL。


     wa_frange-fieldname ='LGPLA'。
     wa_selopt-sign ='I'。
     wa_selopt-option ='EQ'。
     wa_selopt-low = iv_vlpla。
     wa_selopt-high = iv_vlpla。
     附加wa_selopt至wa_frange-selopt_t。
     附加wa_frange至wa_trange-frange_t。
     清除wa_selopt。
     清除wa_frange。








     ls_seltab-selname ='S1_LGPLA'。
     ls_seltab-kind ='S'。
     ls_seltab-sign ='I'。
     ls_seltab-option ='EQ'。
     ls_seltab-low = iv_vlpla。
     ls_seltab-high = iv_vlpla。
     将ls_seltab附加到it_seltab。
     清除ls_seltab。
   万一。


   附加wa_trange至it_trange。


   通话功能" FREE_SELECTIONS_RANGE_2_EX"
     出口
       field_ranges = it_trange
     输入
       表达式= it_texpr。


   提交rls10020
     使用SELECTION-TABLE it_seltab
     免费选择it_texpr
     和返回。


 结束功能。


 

问题是,第一次调用LX02时,一切正常。 但是,如果我返回ALV网格并双击同一列但不同行的字段,则LX02的字段有点"记住"先前的输入。 有没有一种方法可以提交报告并清除缓冲存储器中的所有内容,以便每次双击都会调用"刷新"的LX02。

 

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

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


尊敬的专家,
在ALV网格某些特定字段上的双击事件中的Z *程序之一中,通过功能模块调用启动了事务LX02:

呼叫功能'Z_MZ_CALL_LX02'正在开始新任务'LX02'
           出口
             iv_lgnum = lv_lgnum
             iv_matnr =  -matnr
             iv_vlpla =  -vlpla。

功能模块的源代码如下:

 TYPE-POOLS:rsds。

   数据:rsparams的it_seltab类型表,
           ls_seltab喜欢it_seltab,
           wa_selopt TYPE rsdsselopt。
   数据:it_frange TYPE rsds_frange_t,
           wa_frange TYPE rsds_frange。
   数据:it_trange TYPE rsds_trange,
           wa_trange TYPE rsds_range。
   数据:it_texpr类型rsds_texpr,
           wa_texpr TYPE rsds_expr。


   wa_trange-tablename ='LQUA'。
   wa_frange-fieldname ='MATNR'。
   wa_selopt-sign ='I'。
   wa_selopt-option ='EQ'。
   wa_selopt-low = iv_matnr。
   wa_selopt-high = iv_matnr。


   附加wa_selopt至wa_frange-selopt_t。
   附加wa_frange至wa_trange-frange_t。
   清除wa_selopt。
   清除wa_frange。


   wa_frange-fieldname ='LGNUM'。
   wa_selopt-sign ='I'。
   wa_selopt-option ='EQ'。
   wa_selopt-low = iv_lgnum。
   wa_selopt-high = iv_lgnum。
   附加wa_selopt至wa_frange-selopt_t。
   附加wa_frange至wa_trange-frange_t。
   清除wa_selopt。
   清除wa_frange。


   ls_seltab-selname ='S1_LGNUM'。  "提交程序上的参数名称
   ls_seltab-kind ='S'。
   ls_seltab-sign ='I'。
   ls_seltab-option ='EQ'。
   ls_seltab-low = iv_lgnum。
   ls_seltab-high = iv_lgnum。
   将ls_seltab附加到it_seltab。
   清除ls_seltab。




   如果iv_vlpla不是INITIAL。


     wa_frange-fieldname ='LGPLA'。
     wa_selopt-sign ='I'。
     wa_selopt-option ='EQ'。
     wa_selopt-low = iv_vlpla。
     wa_selopt-high = iv_vlpla。
     附加wa_selopt至wa_frange-selopt_t。
     附加wa_frange至wa_trange-frange_t。
     清除wa_selopt。
     清除wa_frange。








     ls_seltab-selname ='S1_LGPLA'。
     ls_seltab-kind ='S'。
     ls_seltab-sign ='I'。
     ls_seltab-option ='EQ'。
     ls_seltab-low = iv_vlpla。
     ls_seltab-high = iv_vlpla。
     将ls_seltab附加到it_seltab。
     清除ls_seltab。
   万一。


   附加wa_trange至it_trange。


   通话功能" FREE_SELECTIONS_RANGE_2_EX"
     出口
       field_ranges = it_trange
     输入
       表达式= it_texpr。


   提交rls10020
     使用SELECTION-TABLE it_seltab
     免费选择it_texpr
     和返回。


 结束功能。


 

问题是,第一次调用LX02时,一切正常。 但是,如果我返回ALV网格并双击同一列但不同行的字段,则LX02的字段有点"记住"先前的输入。 有没有一种方法可以提交报告并清除缓冲存储器中的所有内容,以便每次双击都会调用"刷新"的LX02。

 
付费偷看设置
发送
3条回答
N-Moskvin
1楼 · 2020-09-12 08:32.采纳回答

您快到了...只需付出更多的精力进行更多调试,然后找到包含这些值的变量就必须清除。 检查以下内容是否对您有帮助...

未分配用于填充it_seltab以便调用LX02的字段符号

 iv_lgnum = lv_lgnum
             iv_matnr =  -matnr
             iv_vlpla =  -vlpla。
SAP砖家
2楼-- · 2020-09-12 08:28

您应该查看调用程序,而不要查看FM。 检查双击事件。

感谢您提供宝贵的指导。

一周热门 更多>