输出中的abap字段重叠。

2020-08-17 20:15发布

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

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


把它放到多个领域.. !! 帮忙..

输出中的

abap字段重叠。

和s00 ttcode上的用户命令设置参数也不起作用.. !!

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

 表格:bseg,bkpf,skat。

 类型:开始于ty_final,
          hkont TYPE hkont," gl帐号
          saknr TYPE saknr," gl帐号
          belnr TYPE belnr,文件编号
          TYPE budat,"发布日期
          bldat TYPE bldat,"文档日期
          TYPE augcp,"输入日期
 * dmbtr TYPE dmbtr,"本地货币
          pswsl TYPE pswsl,
          xref1 TYPE xref1,"商业伙伴
          sgxtx TYPE sgtxt,"项目文本
          dzuonr TYPE dzuonr,"分配号
          bktxt TYPE bktxt,标题文本
          wrbtr TYPE wrbtr,
          txt50 TYPE txt50,

        ty_final结束。


 数据:TYPE TABLE OF ty_final,
       wa TYPE ty_final,
       it_fcat TYPE slis_t_fieldcat_alv,
       wa_fcat TYPE slis_fieldcat_alv,
       it_event TYPE slis_t_event,
       wa_event TYPE slis_alv_event,
       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块的选择屏幕开始。
   选择选项:s1 for bseg-hkont," gl帐号
                    s2 FOR bseg-h_budat,"发布数据
                    s3 FOR bseg-prctr。 利润中心
   块b的选择屏幕结束。

 *
 *在s1上的"选择屏幕"上。
 *如果s1不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。
 *
 *在s2上的"选择屏幕"上。
 *如果s2不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。
 *
 *在s3上的"选择屏幕"上。
 *如果s3不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。



 选择开始。

   执行get_data。

 选择结束。

   执行fcat。
   执行事件。
   执行alvcall。
   使用r_ucomm更改rs_selfield来执行usercmd。

 FORM get_data。

   SELECT belnr,
          赫康特
          h_budat,
          h_bldat,
          奥格,
          pswsl,
 * dmbtr,
          外部参照1,
          sgtxt,
          zuonr,
          从bseg到表@DATA(t_bseg)中的wrbtr
          在@ s1的hkont
          和h_budat IN @ s2
   和prctr IN @ s3。


   检查sy-subrc EQ 0。

   SELECT bktxt,
          贝恩
          从bkpf到表@DATA(t_bkpf)中的@t_bseg中所有条目
          在哪里belnr EQ @ t_bseg-belnr
          和@@ s2中的budat。



   如果t_bseg []不是初始的。
     通过hkont排序t_bseg。
     从t_bseg比较hkont删除相邻的重复项。

     SELECT saknr,
            txt50" GL帐户
            从skat到表@DATA(t_skat)中@t_bseg中的所有条目
            在哪里saknr EQ @ t_bseg-hkont。

   万一。

   排序:t_bseg BY belnr,
         t_bkpf BY belnr。

   循环到t_bseg INTO DATA(w_bseg)。
     wa-belnr = w_bseg-belnr。
     wa-budat = w_bseg-h_budat。
     wa-bldat = w_bseg-h_bldat。
     wa-augcp = w_bseg-augcp。
     wa-wrbtr = w_bseg-wrbtr。
     wa-pswsl = w_bseg-pswsl。
     wa-xref1 = w_bseg-xref1。
     wa-dzuonr = w_bseg-zuonr。

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

     如果sy-subrc EQ 0。
       wa-bktxt = w_bkpf-bktxt。
     万一。

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

     如果sy-subrc EQ 0。
       wa-saknr = w_skat-saknr。
       wa-txt50 = w_skat-txt50。
     万一。

     附加到它。
     清除。
   结局。

 ENDFORM。

 表格fcat。

   清除wa_fcat。
   清除it_fcat。
 *刷新wa_fcat。
   刷新it_fcat。

   wa_fcat-fieldname ='BELNR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文件编号'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='H_BUDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='发布日期'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='H_BLDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文档日期'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

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

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

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

 * wa_fcat-fieldname ='DMBTR'。
 * wa_fcat-ref_tabname ='BSEG'。
 * wa_fcat-seltext_m ='货币'。
 *将wa_fcat附加到it_fcat。
 *清除wa_fcat。

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

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

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

   wa_fcat-fieldname ='XREF1'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='商业伙伴'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='TXT50'。
   wa_fcat-ref_tabname ='SKAT'。
   wa_fcat-seltext_m ='DISCRIPTION'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   将wa_fcat附加到it_fcat。
   清除wa_fcat。


 ENDFORM。



 FORM事件。

   通话功能" REUSE_ALV_EVENTS_GET"
     输入
       et_events = it_event
     例外情况
       list_type_wrong = 1
       其他= 2。

   如果it_event不是INITIAL。
     清除wa_event。
     读取表it_​​event到wa_event中,键名='USER_COMMAND'。
     wa_event-form ='USER'。
     从wa_event修改it_event
     索引sy-tabix TRANSPORTING表格。
   万一。

 ENDFORM。



 FORM alvcall。

   通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_callback_program = v_prog
       i_callback_user_command ='USERCMD'
       i_grid_title ='总帐科目明细'
       it_fieldcat = it_fcat
       it_events = it_event
     桌子
       t_outtab =它。

 ENDFORM。


 FORM usercmd使用r_ucoma TYPE sy-ucomm
 更改rs_selfield的类型slis_selfield。
   案例rs_selfield-fieldname。
     当" BELNR"。
       设置参数ID'DFD'
       FIELD rs_selfield值。
       呼叫交易" FS00"并跳过第一屏。
       消息"无效字段"类型" S"。
   结束。
 ENDFORM。

aaaaaaaaaaaaaaaaa.jpg (73.8 kB)

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

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


把它放到多个领域.. !! 帮忙..

输出中的

abap字段重叠。

和s00 ttcode上的用户命令设置参数也不起作用.. !!

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

 表格:bseg,bkpf,skat。

 类型:开始于ty_final,
          hkont TYPE hkont," gl帐号
          saknr TYPE saknr," gl帐号
          belnr TYPE belnr,文件编号
          TYPE budat,"发布日期
          bldat TYPE bldat,"文档日期
          TYPE augcp,"输入日期
 * dmbtr TYPE dmbtr,"本地货币
          pswsl TYPE pswsl,
          xref1 TYPE xref1,"商业伙伴
          sgxtx TYPE sgtxt,"项目文本
          dzuonr TYPE dzuonr,"分配号
          bktxt TYPE bktxt,标题文本
          wrbtr TYPE wrbtr,
          txt50 TYPE txt50,

        ty_final结束。


 数据:TYPE TABLE OF ty_final,
       wa TYPE ty_final,
       it_fcat TYPE slis_t_fieldcat_alv,
       wa_fcat TYPE slis_fieldcat_alv,
       it_event TYPE slis_t_event,
       wa_event TYPE slis_alv_event,
       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块的选择屏幕开始。
   选择选项:s1 for bseg-hkont," gl帐号
                    s2 FOR bseg-h_budat,"发布数据
                    s3 FOR bseg-prctr。 利润中心
   块b的选择屏幕结束。

 *
 *在s1上的"选择屏幕"上。
 *如果s1不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。
 *
 *在s2上的"选择屏幕"上。
 *如果s2不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。
 *
 *在s3上的"选择屏幕"上。
 *如果s3不是初始的。
 * MESSAGE'输入正确的数据'TYPE'E'。
 *  万一。



 选择开始。

   执行get_data。

 选择结束。

   执行fcat。
   执行事件。
   执行alvcall。
   使用r_ucomm更改rs_selfield来执行usercmd。

 FORM get_data。

   SELECT belnr,
          赫康特
          h_budat,
          h_bldat,
          奥格,
          pswsl,
 * dmbtr,
          外部参照1,
          sgtxt,
          zuonr,
          从bseg到表@DATA(t_bseg)中的wrbtr
          在@ s1的hkont
          和h_budat IN @ s2
   和prctr IN @ s3。


   检查sy-subrc EQ 0。

   SELECT bktxt,
          贝恩
          从bkpf到表@DATA(t_bkpf)中的@t_bseg中所有条目
          在哪里belnr EQ @ t_bseg-belnr
          和@@ s2中的budat。



   如果t_bseg []不是初始的。
     通过hkont排序t_bseg。
     从t_bseg比较hkont删除相邻的重复项。

     SELECT saknr,
            txt50" GL帐户
            从skat到表@DATA(t_skat)中@t_bseg中的所有条目
            在哪里saknr EQ @ t_bseg-hkont。

   万一。

   排序:t_bseg BY belnr,
         t_bkpf BY belnr。

   循环到t_bseg INTO DATA(w_bseg)。
     wa-belnr = w_bseg-belnr。
     wa-budat = w_bseg-h_budat。
     wa-bldat = w_bseg-h_bldat。
     wa-augcp = w_bseg-augcp。
     wa-wrbtr = w_bseg-wrbtr。
     wa-pswsl = w_bseg-pswsl。
     wa-xref1 = w_bseg-xref1。
     wa-dzuonr = w_bseg-zuonr。

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

     如果sy-subrc EQ 0。
       wa-bktxt = w_bkpf-bktxt。
     万一。

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

     如果sy-subrc EQ 0。
       wa-saknr = w_skat-saknr。
       wa-txt50 = w_skat-txt50。
     万一。

     附加到它。
     清除。
   结局。

 ENDFORM。

 表格fcat。

   清除wa_fcat。
   清除it_fcat。
 *刷新wa_fcat。
   刷新it_fcat。

   wa_fcat-fieldname ='BELNR'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文件编号'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='H_BUDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='发布日期'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='H_BLDAT'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='文档日期'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

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

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

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

 * wa_fcat-fieldname ='DMBTR'。
 * wa_fcat-ref_tabname ='BSEG'。
 * wa_fcat-seltext_m ='货币'。
 *将wa_fcat附加到it_fcat。
 *清除wa_fcat。

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

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

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

   wa_fcat-fieldname ='XREF1'。
   wa_fcat-ref_tabname ='BSEG'。
   wa_fcat-seltext_m ='商业伙伴'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   wa_fcat-fieldname ='TXT50'。
   wa_fcat-ref_tabname ='SKAT'。
   wa_fcat-seltext_m ='DISCRIPTION'。
   将wa_fcat附加到it_fcat。
   清除wa_fcat。

   将wa_fcat附加到it_fcat。
   清除wa_fcat。


 ENDFORM。



 FORM事件。

   通话功能" REUSE_ALV_EVENTS_GET"
     输入
       et_events = it_event
     例外情况
       list_type_wrong = 1
       其他= 2。

   如果it_event不是INITIAL。
     清除wa_event。
     读取表it_​​event到wa_event中,键名='USER_COMMAND'。
     wa_event-form ='USER'。
     从wa_event修改it_event
     索引sy-tabix TRANSPORTING表格。
   万一。

 ENDFORM。



 FORM alvcall。

   通话功能'REUSE_ALV_GRID_DISPLAY'
     出口
       i_callback_program = v_prog
       i_callback_user_command ='USERCMD'
       i_grid_title ='总帐科目明细'
       it_fieldcat = it_fcat
       it_events = it_event
     桌子
       t_outtab =它。

 ENDFORM。


 FORM usercmd使用r_ucoma TYPE sy-ucomm
 更改rs_selfield的类型slis_selfield。
   案例rs_selfield-fieldname。
     当" BELNR"。
       设置参数ID'DFD'
       FIELD rs_selfield值。
       呼叫交易" FS00"并跳过第一屏。
       消息"无效字段"类型" S"。
   结束。
 ENDFORM。

aaaaaaaaaaaaaaaaa.jpg (73.8 kB)
付费偷看设置
发送
3条回答
hengyuye
1楼-- · 2020-08-17 20:50

在字段目录中,声明'H_BUDAT'...,并且内部表BUDAT中有

检查字段目录的名称和所显示内部表的列的名称

代楠1984
2楼-- · 2020-08-17 20:50

Tq正常工作

SAP德到
3楼-- · 2020-08-17 20:52

而且您还应该对内部表(T_SKAT)进行排序,因为您在T_SKAT读取表中使用了二进制搜索。 如果要在读取表中使用二进制搜索,总是应该进行排序。

一周热门 更多>