无法获得输出中所有GL相关文件的编号.. !!! 谢谢提前

2020-08-17 14:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) *&-------------...

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

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


 *&---------------------------------------------  ------------------------ *
 *&报告Z_FI_GLACC
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 报告z_fi_glacc没有标准页标题。


 表格:bseg,bkpf,skat,lfa1。


 类型:开始于ty_final,
          sel,"用于alv的额外颜色
          TYPE PRCTR,利润中心
          hkont TYPE hkont,"总帐帐户
          belnr TYPE belnr_d,"会计凭证编号
          budat TYPE budat,"文档中的过帐日期
          bldat TYPE bldat,"文档中的文档日期
          TYPE augcp,"清除输入日期
          pswsl TYPE pswsl,"总帐中的更新量
          sgtxt TYPE sgtxt,"项目文本
          dzuonr TYPE dzuonr,"分配编号
          wrbtr TYPE wrbtr,"凭证货币金额
          lifnr TYPE lifnr,"卖方或债权人的帐号
          gsber TYPE gsber,"业务领域
          bupla TYPE bupla,营业地点
          xblnr TYPE xblnr,"参考文档编号
          bktxt TYPE bktxt,"文档标题文本
          cpudt TYPE cpudt,"输入会计凭证的日期
          saknr TYPE saknr," gl帐户
          txt50 TYPE txt50_skat,"总帐科目长文本
          name1 TYPE name1,"供应商Namae
        ty_final结束。


 数据:gt ty_final类型表,
       gwa TYPE ty_final,
       gt_fcat TYPE slis_t_fieldcat_alv,
       wa_fcat TYPE slis_fieldcat_alv,
       gs_layout TYPE slis_layout_alv,
       gs_varient TYPE变量,
       v_prog TYPE sy-repid,
       v_name TYPE sy-uname,
       rs_selfield TYPE slis_selfield,
       v_selfield TYPE slis_selfield值,
       r_ucomm TYPE sy-ucomm。


 初始化。
   v_prog = sy-repid。
   v_name = sy-uname。


   带有标题标题文本001的b1块的选择屏幕开始。
   选择选项:s_hkont for bseg-hkont," gl帐号
                    s_budat FOR bseg-h_budat,"发布数据
                    s_prctr FOR bseg-prctr。 利润中心
   块b的选择屏幕结束。


 选择开始。
   执行get_data。


 选择结束。
   执行fcat。
   执行alvcall。
   使用r_ucomm更改rs_selfield来执行usercmd。


 FORM get_data。


   选择
           prctr,
           赫康特
           belnr,
           h_budat,
           h_bldat,
           奥格,
           pswsl,
           sgtxt,
           zuonr,
           wrbtr,
           lifnr,
           gsber,
           布普拉
           从bseg到表@DATA(l_bseg)
           在@s_hkont的hkont
           AND h_budat IN @s_budat
           和prctr IN @s_prctr。


   检查sy-subrc EQ 0。




   选择xblnr,
           bktxt,
           cpudt,
           贝恩
           从bkpf到表@DATA(l_bkpf)中所有@l_bseg中的条目
           在哪里belnr EQ @ l_bseg-belnr
           和@@ s_budat中的好友。




     SELECT saknr,
            txt50
            从skat到表@DATA(l_skat)中所有@l_bseg中的条目
            在哪里saknr EQ @ l_bseg-hkont。


   万一。


   SELECT lifnr,
          从lfa1到表@DATA(l_lfa1)中的name1,用于@l_bseg中的所有条目
          lifnr EQ @ l_bseg-lifnr在哪里。


   排序:l_bseg BY belnr,
         l_bkpf BY belnr。


   循环到l_bseg INTO DATA(w_bseg)。
     gwa-prctr = w_bseg-prctr。
     gwa-hkont = w_bseg-hkont。
     gwa-belnr = w_bseg-belnr。
     gwa-budat = w_bseg-h_budat。
     gwa-bldat = w_bseg-h_bldat。
     gwa-augcp = w_bseg-augcp。
     gwa-pswsl = w_bseg-pswsl。
     gwa-sgtxt = w_bseg-sgtxt。
     gwa-dzuonr = w_bseg-zuonr。
     gwa-wrbtr = w_bseg-wrbtr。
     gwa-lifnr = w_bseg-lifnr。
     gwa-gsber = w_bseg-gsber。
     gwa-bupla = w_bseg-bupla。


     使用键belnr = w_bseg-belnr二进制搜索将表l_bkpf读入DATA(w_bkpf)。


     IF sy-subrc均衡器0。
       gwa-xblnr = w_bkpf-xblnr。
       gwa-bktxt = w_bkpf-bktxt。
       gwa-cpudt = w_bkpf-cpudt。
     万一。


     使用键saknr = w_bseg-hkont二进制搜索将表l_skat读入DATA(w_skat)。


     IF sy-subrc均衡器0。
       gwa-saknr = w_skat-saknr。
       gwa-txt50 = w_skat-txt50。
     万一。


     使用键lifnr = w_bseg-lifnr将表l_lfa1读入DATA(w_lfa1)中。


     IF sy-subrc均衡器0。
       gwa-name1 = w_lfa1-name1。
     万一。


     将gwa附加到gt。
     清除gwa。
   结局。


 ENDFORM。


 表格fcat。


   gs_layout-zebra ='X'。
   gs_layout-colwidth_optimize ='X'。
   gs_layout-box_fieldname ='SEL'。
   gs_varient-report = sy-repid。


   wa_fcat-fieldname ='BELNR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文件编号'。
   wa_fcat-hotspot ='X'。
   wa_fcat-outputlen ='15'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='SGTXT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文字'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='PRCTR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='利润中心'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='BUDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='发布日期'。
   wa_fcat-datatype ='DATS'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='AUGCP'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='清除输入日期'。
   wa_fcat-datatype ='DATS'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='BLDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文档日期'。
   wa_fcat-datatype ='DATS'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='CPUDT'。
   wa_fcat-ref_tabname ='BKPF'。
   wa_fcat-seltext_m ='输入日期'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='WRBTR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='凭证货币金额'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='PSWSL'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='货币'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='LIFNR'。
   wa_fcat-ref_tabname ='LFA1'。
   wa_fcat-seltext_m ='供应商编号'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='NAME1'。
   wa_fcat-ref_tabname ='LFA1'。
   wa_fcat-seltext_m ='供应商名称'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='XBLNR'。
   wa_fcat-ref_tabname ='BKPF'。
   wa_fcat-seltext_m ='参考文件编号'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='DZUONR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='指派人'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='BKTXT'。
   wa_fcat-ref_tabname ='BKPF'。
   wa_fcat-seltext_m ='标题文本'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='SAKNR'。
   wa_fcat-ref_tabname ='SKA1'。
   wa_fcat-seltext_m ='总账科目'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='TXT50'。
   wa_fcat-ref_tabname ='SKAT'。
   wa_fcat-seltext_m ='总帐说明'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。


   wa_fcat-fieldname ='GSBER'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ="业务区域"。
   wa_fcat-outputlen ='15'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。




   wa_fcat-fieldname ='BUPLA'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ="营业地点"。
   wa_fcat-outputlen ='15'。
   将wa_fcat附加到gt_fcat。
   清除wa_fcat。




 ENDFORM。




 FORM alvcall。


   通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_callback_program = v_prog
       i_callback_user_command ='USERCMD'
       i_grid_title ='总帐科目明细'
       is_layout = gs_layout
       it_fieldcat = gt_fcat
       is_variant = gs_varient
     桌子
       t_outtab = gt。


 ENDFORM。




 FORM usercmd使用r_ucoma TYPE sy-ucomm更改rs_selfield TYPE slis_selfield。
   案例r_ucoma。
     当"&IC1"时。
       案例rs_selfield-fieldname。
         当" BELNR"。
           设置参数ID'BLN'
           FIELD rs_selfield值。
           呼叫交易'FB03'。
           并跳过第一屏。
       结束。
   结束。
 ENDFORM。
 
6条回答
hengyuye
2020-08-17 14:48

你好 Manoj Kumar

我真的不知道您的业务需求是什么。 但是,假设您已向报表中输入了71200550帐号,则该帐号只显示了文档10000042的一项。您看,您从BSEG表中获得的SELECT语句仅从表中获取了文档10000042的一条记录,因为只有一项 凭证10000042中的行过帐到帐户71200550。这就是为什么在ALV中仅看到一行的原因。 您必须再从BSEG中执行一次选择才能获得文档10000042的所有项目。

另一种方法可能是根据过帐日期从BKPF中选择FI文档抬头,然后从BSEG中选择这些文档的所有项目。 然后过滤掉帐户中没有张贴任何项目的文档71200550

BR

Dominik Tylczynski

一周热门 更多>