不使用Screen的ALV GRID。

2020-08-21 08:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 大家好, 我已经开发了一份...

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

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



大家好,

我已经开发了一份报告,其中我正在使用ALV OOPS概念来分散报告

数据。

我正在使用以下代码:

调用全局类的方法如下:

方法:

创建对象o_alv
导出
i_appl_events ='X'
i_parent = v_custom_container。



如果i_fieldcat不初始。

v_variant = sy-repid。

调用方法o_alv-> set_table_for_first_display
*导出
* is_layout = v_layout
* i_default ='X'
* i_save ='U'
* is_variant = v_variant
更改
it_outtab = i_inventory []
it_fieldcatalog = i_fieldcat []
例外
invalid_parameter_combination = 1
程序错误= 2
too_many_lines = 3
其他= 4。

I_inventory []和i_fieldcat []包含数据,但未显示网格。我不希望报表中有任何屏幕。

谢谢

Arpita

6条回答
奄奄一息的小鱼
2020-08-21 09:18

嗨Arpita,

您在哪里调用了SET_TABLE_FOR_FIRST_DISPLAY方法?

应该在以下位置调用此方法 屏幕的PBO。 甚至您已经创建了一个容器并将该容器包含在ALV对象(CL_GUI_ALV_GRID)中。

如果您要创建ALV网格而不使用屏幕和容器,则需要使用CL_SALV_TABLE。

下面给出了使用CL_GUI_ALV_GRID构建ALV_GRID的示例代码,请参考:

*&------------------------ --------------------------------------------- *

*&选择开始

*&------------------------------- -------------------------------------- *

开始- 选择。

*从数据库中提取数据到内部表中以显示

从MAKT中选择MATNR MAKTX

进入表GT_OUTPUT

S_MATNR中的MATNR

并且SPRAS ='EN'。

*&---------------------- ----------------------------------------------- *

*&选择结束

*&----------------------------- ---------------------------------------- *

END-

*调用屏幕以显示ALV网格

CALL 屏幕100。

*&-------------------------------------- ------------------------------- *

*&模块STATUS_0100输出

*&----------------------------------------------- ---------------------- *

*文字

* ---------- -------------------------------------------------- ---------- *

MODULE STATUS_0100 OUTPUT。

设置PF-STATUS'ZGVK_TEST'。 " PF状态

SET TITLEBAR'ZGVK_TEST'。"标题栏

ENDMODULE。 " STATUS_0100输出

*&-------------------------------------- ------------------------------- *

*&模块DISPLAY_ALV_0100输出

*&----------------------------------------------- ---------------------- *

*文字

* ---------- -------------------------------------------------- ---------- *

MODULE DISPLAY_ALV_0100输出。

*本地内部表* fieldcatalog的工作区

数据:LT_FLDCAT类型LVC_T_FCAT,

LS_FLDCAT类型LVC_S_FCAT。

*网格输出的填充字段目录

*在屏幕中为容器(CL_GUI_CUSTOM_CONTAINER)创建对象

创建对象GR_CONTAINER

导出

CONTAINER_NAME ='CONTAINER'。

" CONTAINER是屏幕上的容器名称

*为以下对象创建对象 ALV网格(CL_GUI_ALV_GRID)来设置显示

创建对象GR_GRID

导出

I_PARENT = GR_CONTAINER。 "在容器对象上方传递

*设置输出表以ALV GRID格式显示

GR_GRID-> SET_TABLE_FOR_FIRST_DISPLAY(

导出

I_STRUCTURE_NAME ='ZGVK_TEST'

"用于构建输出布局的全局选项卡/结构

更改

IT_OUTTAB = GT_OUTPUT"输出表

IT_FIELDCATALOG = LT_FLDCAT" Fieldcatalog表

例外情况

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

其他 = 4)。

如果SY-SUBRC <> 0。

消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO

带SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。

ENDIF。

ENDMODULE。 " DISPLAY_ALV_0100输出

致谢,

维杰

一周热门 更多>