点击此处---> 群内免费提供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
REUSE_ALV_GRID_DISPLAY和CL_SALV_TABLE都同时在调用屏幕,调用只是封装在内部,因此您不必显式地进行操作。
可以 不要在没有屏幕的情况下执行此操作。
您可以按照此操作进行操作。 此处无需在屏幕100中创建任何自定义容器。只需调用它即可。
数据lr_alv类型引用至cl_gui_alv_grid。
数据lt_table类型表t529a。
选择*从t529a到表lt_table。
创建对象lr_alv
导出
i_parent = cl_gui_container => screen0。 导出
i_structure_name ='T529A'
更改
it_outtab = lt_t529a
调用屏幕100。
注意事项
Sreekanth
您是最好的。 WRITE语句有效。
亲爱的Arpita,
有一个叫做SALV的概念!
请复制上面的代码并进行调试,然后您就会知道! 希望能帮助到你!
此致
Dhruvin
嗨Arpita,
尝试我的代码。请注意最后一行中的write语句。
您可以使用write激活标准屏幕,而无需创建新屏幕。
谢谢
Sam
嗨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'。
*&---------------------- ----------------------------------------------- * p>
*&选择结束
*&----------------------------- ---------------------------------------- *
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输出
致谢,
维杰
嗨Arpita。
您可以尝试使用此代码生成简单而快速的ALV报告。
此致。
一周热门 更多>