SAP ABAP 如何获取科目余额表ALV运行结果(FAGLL03)

        在SAP ABAP开发里面经常会遇到,获取另一个程序ALV运行结果的需求。为了实现这个需求通常有两种方法一种方法是通过内存参数传递数据(但这种方法有个弊端,如是SAP的标准程序通过增强来程序很麻烦。),另一种是直接利用SAP的标准Function获取ALVarez数据。本文介绍后一种。例子是获取 科目余额表( FAGLL03)运行结果。

代码 示例如下:

REPORT ZFI76B_AUTO.

 RANGES:s_hkont_gl FOR bsid-hkont.
 DATA:lv_flag.
   DATA:ls_data TYPE REF TO data.
 DATA:lt_data_gl         LIKE faglposx OCCURS 1 WITH HEADER LINE.
  FIELD-SYMBOLS: <lt_data> TYPE table,
                 <l_data>  TYPE data.
  s_hkont_gl[] = VALUE #(

      ( sign = 'I' option = 'EQ' low =  '6115010000'"          信用减值损失-应收账款:取自
      )
    ( sign = 'I' option = 'EQ' low =  '6701030100'"        信用减值损失-应收账款:取自《利润
    )
     ( sign = 'I' option = 'EQ' low =  '6115010200'"        信用减值损失-应收账款:取自《利
    )
        ( sign = 'I' option = 'EQ' low =  '6115010100'"      信用减值损失-应收账款:取自
    )

    ).


  IF s_hkont_gl[] IS NOT INITIAL. "从总账取值逻辑
    cl_salv_bs_runtime_info=>set(
    display  = ''
    metadata = ''
    data     = 'X'  ).

    EXPORT lv_flag TO MEMORY ID 'ZAR'."调用标准应收行项目程序不弹框假如无数据(不是必须)

    SUBMIT fagl_account_items_gl  " 调用FAGLL03
    WITH sd_saknr IN s_hkont_gl
   " WITH sd_bukrs IN s_bukrs
    WITH x_opsel = 'X'
   " WITH pa_stida = p_augdt
    WITH x_aisel = ''
*   USING SELECTION-SET 'HZQ'
    AND RETURN.

    TRY.
        cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = ls_data ). " 获取ALV数据

        ASSIGN ls_data->* TO <lt_data>.

      CATCH cx_salv_bs_sc_runtime_info.
        "   MESSAGE 'UNABLE TO RETRIEVE ALV DATA' TYPE 'E'.
    ENDTRY.
    cl_salv_bs_runtime_info=>clear_all( ). "调用完成后 清理工作

    IF  <lt_data> IS ASSIGNED. "接下来开始使用抓过来的数据
      MOVE-CORRESPONDING <lt_data> TO lt_data_gl[].

    ENDIF.
  ENDIF.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值