ALV网格显示中的ABAP多标题

2020-09-04 03:36发布

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

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


我正在尝试在alv网格显示中显示2行多标题,其中每个主标题应占据2个子标题,如下所示:

报告ZSAM8消息标识zz。
 TYPE-POOLS:slis。  " SLIS包含所有ALV数据
 类型:BEGIN OF ty_report,
           jan_deb TYPE UMXXS,
           jan_cred TYPE UMXXH,
           feb_deb TYPE UMXXS,
           feb_cred TYPE UMXXH,
         END OF ty_report,
         tt_report ty_report的类型表。
 数据:带有标题行的lt_report类型tt_report,
       WA类型ty_report,
       LFC1的LFC1_table TYPE标准表,
       修复型sy-repid,
       wa_deb类型SALDV,
       wa_cred TYPE SALDV,
       it_fieldcat TYPE slis_t_fieldcat_alv,
       wa_fieldcat TYPE slis_fieldcat_alv,
       x_events类型slis_alv_event,
       it_events类型为SLIS_T_EVENT,
       L_LAYOUT类型为slis_layout_alv。
 FIELD-SYMBOLS:与lt_report类似,
                喜欢LFC1_table的行。
 从LFC1中选择*到表LFC1_table的相应字段中,其中bukrs ='1000'并且GJAHR = 2003。
 循环在LFC1_table分配。
 将初始行追加到lt_report ASSIGNING 。
 如果 -UM01S>  -UM01H。
  -jan_deb =  -UM01S- -UM01H。
 其他。
  -jan_cred =  -UM01H- -UM01S。
 万一。
 如果 -UM02S>  -UM02H。
  -feb_deb =  -UM02S- -UM02H。
 其他。
  -feb_cred =  -UM02H- -UM02S。
 万一。
 endLOOP。
 repid = sy-repid。
 *建立现场目录
   wa_fieldcat-fieldname ='JAN_DEB'。 数据表中的字段名
   wa_fieldcat-seltext_l ='deb'。  "输出中的ColuAN_DEBmn描述
   wa_fieldcat-col_pos = 1。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='JAN_CRED'。
   wa_fieldcat-seltext_l ='cred'。
   wa_fieldcat-col_pos = 1。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='FEB_DEB'。 数据表中的字段名
   wa_fieldcat-seltext_l ='deb'。  "输出中的列描述
   wa_fieldcat-col_pos = 2。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='FEB_CRED'。
   wa_fieldcat-seltext_l ='cred'。
   wa_fieldcat-col_pos = 2。
   将wa_fieldcat附加到it_fieldcat。
 调用函数" REUSE_ALV_GRID_DISPLAY"
    出口
       i_callback_program =快速
       i_callback_user_command ='HANDLE_USER_COMMAND'
       i_callback_html_top_of_page ='HTML_TOP_OF_PAGE'
       it_fieldcat = it_fieldcat
   桌子
       t_outtab = lt_report
   例外情况
       程序错误= 1
       其他= 2。
 表格HTML_TOP_OF_PAGE使用LW_DOCUMENT类型引用到CL_DD_DOCUMENT。
 数据:DOCTABLE TYPE REF CL_DD_TABLE_ELEMENT,
 COL1_T1类型参考CL_DD_AREA,
 将COL2_T1类型参考为CL_DD_AREA。
 *添加具有五列的快速表格
 呼叫方法LW_DOCUMENT-> ADD_TABLE
 出口
 NO_OF_COLUMNS = 12
 边界='1'
 WITH_HEADING ='X'
 宽度='150%'
 输入
 TABLE = DOCTABLE。
 *填充行中的列
 呼叫方法DOCTABLE-> ADD_COLUMN
 出口
 宽度='8%'
 输入
 COLUMN = COL1_T1。
 *填充行中的列
 呼叫方法DOCTABLE-> ADD_COLUMN
 出口
 宽度='8%'
 输入
 COLUMN = COL2_T1。
 调用方法为DOCTABLE-> NEW_ROW。
 呼叫方法COL1_T1-> ADD_TEXT
 出口
 TEXT ='JAN'。
 呼叫方法COL2_T1-> ADD_TEXT
 出口
 TEXT ='FEB'。
 ENDFORM。  " html_top_of_page 

如您所见,我正在尝试使用html_top_of_page,但主要标题位于顶部,而不与子标题内联。 我知道您也可以使用alv_list_display,但是我需要按顺序显示网格才能在子标题上使用过滤和排序。 主标题不需要使用过滤或排序或其他任何方法,但它们必须位于子标题的上方并与它们内联,其中每个标题应占据两个子标题。 整个报告可以使用一行滚动吗? 如果主标题是自动居中的,那就更好了。 如何实现呢?

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

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


我正在尝试在alv网格显示中显示2行多标题,其中每个主标题应占据2个子标题,如下所示:

报告ZSAM8消息标识zz。
 TYPE-POOLS:slis。  " SLIS包含所有ALV数据
 类型:BEGIN OF ty_report,
           jan_deb TYPE UMXXS,
           jan_cred TYPE UMXXH,
           feb_deb TYPE UMXXS,
           feb_cred TYPE UMXXH,
         END OF ty_report,
         tt_report ty_report的类型表。
 数据:带有标题行的lt_report类型tt_report,
       WA类型ty_report,
       LFC1的LFC1_table TYPE标准表,
       修复型sy-repid,
       wa_deb类型SALDV,
       wa_cred TYPE SALDV,
       it_fieldcat TYPE slis_t_fieldcat_alv,
       wa_fieldcat TYPE slis_fieldcat_alv,
       x_events类型slis_alv_event,
       it_events类型为SLIS_T_EVENT,
       L_LAYOUT类型为slis_layout_alv。
 FIELD-SYMBOLS:与lt_report类似,
                喜欢LFC1_table的行。
 从LFC1中选择*到表LFC1_table的相应字段中,其中bukrs ='1000'并且GJAHR = 2003。
 循环在LFC1_table分配。
 将初始行追加到lt_report ASSIGNING 。
 如果 -UM01S>  -UM01H。
  -jan_deb =  -UM01S- -UM01H。
 其他。
  -jan_cred =  -UM01H- -UM01S。
 万一。
 如果 -UM02S>  -UM02H。
  -feb_deb =  -UM02S- -UM02H。
 其他。
  -feb_cred =  -UM02H- -UM02S。
 万一。
 endLOOP。
 repid = sy-repid。
 *建立现场目录
   wa_fieldcat-fieldname ='JAN_DEB'。 数据表中的字段名
   wa_fieldcat-seltext_l ='deb'。  "输出中的ColuAN_DEBmn描述
   wa_fieldcat-col_pos = 1。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='JAN_CRED'。
   wa_fieldcat-seltext_l ='cred'。
   wa_fieldcat-col_pos = 1。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='FEB_DEB'。 数据表中的字段名
   wa_fieldcat-seltext_l ='deb'。  "输出中的列描述
   wa_fieldcat-col_pos = 2。
   将wa_fieldcat附加到it_fieldcat。
   wa_fieldcat-fieldname ='FEB_CRED'。
   wa_fieldcat-seltext_l ='cred'。
   wa_fieldcat-col_pos = 2。
   将wa_fieldcat附加到it_fieldcat。
 调用函数" REUSE_ALV_GRID_DISPLAY"
    出口
       i_callback_program =快速
       i_callback_user_command ='HANDLE_USER_COMMAND'
       i_callback_html_top_of_page ='HTML_TOP_OF_PAGE'
       it_fieldcat = it_fieldcat
   桌子
       t_outtab = lt_report
   例外情况
       程序错误= 1
       其他= 2。
 表格HTML_TOP_OF_PAGE使用LW_DOCUMENT类型引用到CL_DD_DOCUMENT。
 数据:DOCTABLE TYPE REF CL_DD_TABLE_ELEMENT,
 COL1_T1类型参考CL_DD_AREA,
 将COL2_T1类型参考为CL_DD_AREA。
 *添加具有五列的快速表格
 呼叫方法LW_DOCUMENT-> ADD_TABLE
 出口
 NO_OF_COLUMNS = 12
 边界='1'
 WITH_HEADING ='X'
 宽度='150%'
 输入
 TABLE = DOCTABLE。
 *填充行中的列
 呼叫方法DOCTABLE-> ADD_COLUMN
 出口
 宽度='8%'
 输入
 COLUMN = COL1_T1。
 *填充行中的列
 呼叫方法DOCTABLE-> ADD_COLUMN
 出口
 宽度='8%'
 输入
 COLUMN = COL2_T1。
 调用方法为DOCTABLE-> NEW_ROW。
 呼叫方法COL1_T1-> ADD_TEXT
 出口
 TEXT ='JAN'。
 呼叫方法COL2_T1-> ADD_TEXT
 出口
 TEXT ='FEB'。
 ENDFORM。  " html_top_of_page 

如您所见,我正在尝试使用html_top_of_page,但主要标题位于顶部,而不与子标题内联。 我知道您也可以使用alv_list_display,但是我需要按顺序显示网格才能在子标题上使用过滤和排序。 主标题不需要使用过滤或排序或其他任何方法,但它们必须位于子标题的上方并与它们内联,其中每个标题应占据两个子标题。 整个报告可以使用一行滚动吗? 如果主标题是自动居中的,那就更好了。 如何实现呢?

付费偷看设置
发送
1条回答
Baoming ROSE
1楼-- · 2020-09-04 04:01

ALV中只有一个列标题,例如在Excel中执行多行标题是不可行的。 在SCN上已多次问过此问题。 Google->" alv标头多行"

"页面顶部"是整个ALV的单独标头,它根本不与列对齐。

一周热门 更多>