在REUSE_ALV_GRID_DISPLAY上不存在选择行

2020-08-26 05:11发布

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

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


嗨,请问当我使用REUSE_ALV_GRID_DISPLAY函数时,我在显示表上找不到选择行,

这是我的脚本:

TYPES:ty_002的开头,ydt_bd002-in_pegawai的类型中的
,d d中的
*,
kp ydt_bd002-kode_pegawai的类型,
np ydt_bd002-nama_pegawai的类型, END 。
DATA:带有标题行的ty_002的it_table类型表,
lt_fcat类型slis_t_fieldcat_alv,
wa_fcat像lt_fcat的行,
lt_lay类型slis_layout_alv。 选择开始。
PERFORM获取数据。
PERFORM alv_build_fieldcat。
PERFORM alv_report_layout。
PERFORM alv_grid_display。 *&------------------------------------------------ --------------------- *
*&表格GET_DATA
*&---------------- -------------------------------------------------- --- *
*文字
* ------------------------------------- --------------------------------- *
FORM get_data。
刷新:it_table。
从ydt_bd002 SELECT in_pegawai kode_pegawai nama_pegawai插入表it_table。
ENDFORM。 " GET_DATA *&---------------------------------------------- ----------------------- *
*&表格ALV_BUILD_FIELDCAT
*&-------------- -------------------------------------------------- ----- *
*文字
* ----------------------------------- ----------------------------------- *
FORM alv_build_fieldcat。清除wa_fcat。
wa_fcat-
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='KEHADIRAN'。
wa_fcat-just ='C'。
将wa_fcat附加到lt_fcat。清除wa_fcat。
wa_fcat-fieldname ='KP'。
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='KODE PEGAWAI'。
wa_fcat-just ='C'。
APPEND wa_fcat TO lt_fcat。清除wa_fcat。
wa_fcat-fieldname ='NP'。
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='NAMA PEGAWAI'。
wa_fcat-just ='C' 。
APPEND wa_fcat TO lt_fcat。ENDFORM。" ALV_BUILD_FIELDCAT *&----------------------------------- ---------------------------------- *
*&表格ALV_REPORT_LAYOUT
*&--- --------------------------------------- --------------------------- *
*文字
* ------------- -------------------------------------------------- ------- *
FORM alv_report_layout。
lt_lay-box_fieldname ='SEL'。
"设置字段名称以存储行选择
lt_lay-edit ='X'。 "使整个ALV表可编辑
lt_lay-zebra ='X'。
ENDFORM。" ALV_REPORT_LAYOUT *&------------------------ --------------------------------------------- *
* &表格ALV_GRID_DISPLAY
*&------------------------------------------ --------------------------- *
*文字
* ------------- -------------------------------------------------- ------- *
FORM alv_grid_display。 呼叫功能'REUSE_ALV_GRID_DISPLAY'
导出
* I_INTERFACE_CHECK =''
* I_BYPASSING_BUFFER =''
* I_BUFFER_ACTIVE =''
I_CALLBACK_PROGRAM = SY-REPID_ I_CALLBACK_USER_COMMAND ='UCOMM'
* I_CALLBACK_TOP_OF_PAGE =''
* I_CALLBACK_HTML_TOP_OF_PAGE =''
* I_CALLBACK_HTML_END_OF_LIST =''
* I_STRUCTURE_NAME ='br ID =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = LT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE = < br> * I_DEFAULT ='X'
I_SAVE ='X'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_HV_GRAPH
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV _FULLSCREEN_ADAPTER =
*导入
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
表格
t_outtab = IT_TABLE
* EXCEPTIONS
*程序错误= 1
*其他 >。
IF SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。 ENDFORM。 "使用RT_EXTAB类型SLIS_T_EXTAB的ALV_GRID_DISPLAY表单MY_STATUS。
SET PF-STATUS'STANDARD'。
ENDFORM。使用P_UCOM SY-UCOMM
PS_SELFIELD类型SLIS_SELFIELD形式的UCOMM形式。
数据:A。CALL。 POPUP_TO_CONFIRM'
导出
TITLEBAR ='请确认'
text_question ='确认出席?'
DISPLAY_CANCEL_BUTTON ='X'
导入
答案= a
例外
> TEXT_NOT_FOUND = 1
其他=2。如果A ='1'。
UPDATE ydt_bd002设置in_pegawai = sy-datum。
消息'HADIR'类型'S'。
刷新IT_TABLE。
> ELSEIF A ='2'。
UPDATE ydt_bd002设置in_pegawai = 0。
消息'TIDAK HADIR'类型'W'。ENDIF。
ps_selfield-refresh = abap_true。
ENDFORM。

(10.0 kB)

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

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


嗨,请问当我使用REUSE_ALV_GRID_DISPLAY函数时,我在显示表上找不到选择行,

这是我的脚本:

TYPES:ty_002的开头,ydt_bd002-in_pegawai的类型中的
,d d中的
*,
kp ydt_bd002-kode_pegawai的类型,
np ydt_bd002-nama_pegawai的类型, END 。
DATA:带有标题行的ty_002的it_table类型表,
lt_fcat类型slis_t_fieldcat_alv,
wa_fcat像lt_fcat的行,
lt_lay类型slis_layout_alv。 选择开始。
PERFORM获取数据。
PERFORM alv_build_fieldcat。
PERFORM alv_report_layout。
PERFORM alv_grid_display。 *&------------------------------------------------ --------------------- *
*&表格GET_DATA
*&---------------- -------------------------------------------------- --- *
*文字
* ------------------------------------- --------------------------------- *
FORM get_data。
刷新:it_table。
从ydt_bd002 SELECT in_pegawai kode_pegawai nama_pegawai插入表it_table。
ENDFORM。 " GET_DATA *&---------------------------------------------- ----------------------- *
*&表格ALV_BUILD_FIELDCAT
*&-------------- -------------------------------------------------- ----- *
*文字
* ----------------------------------- ----------------------------------- *
FORM alv_build_fieldcat。清除wa_fcat。
wa_fcat-
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='KEHADIRAN'。
wa_fcat-just ='C'。
将wa_fcat附加到lt_fcat。清除wa_fcat。
wa_fcat-fieldname ='KP'。
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='KODE PEGAWAI'。
wa_fcat-just ='C'。
APPEND wa_fcat TO lt_fcat。清除wa_fcat。
wa_fcat-fieldname ='NP'。
wa_fcat-tabname ='IT_TABLE'。
wa_fcat-seltext_m ='NAMA PEGAWAI'。
wa_fcat-just ='C' 。
APPEND wa_fcat TO lt_fcat。ENDFORM。" ALV_BUILD_FIELDCAT *&----------------------------------- ---------------------------------- *
*&表格ALV_REPORT_LAYOUT
*&--- --------------------------------------- --------------------------- *
*文字
* ------------- -------------------------------------------------- ------- *
FORM alv_report_layout。
lt_lay-box_fieldname ='SEL'。
"设置字段名称以存储行选择
lt_lay-edit ='X'。 "使整个ALV表可编辑
lt_lay-zebra ='X'。
ENDFORM。" ALV_REPORT_LAYOUT *&------------------------ --------------------------------------------- *
* &表格ALV_GRID_DISPLAY
*&------------------------------------------ --------------------------- *
*文字
* ------------- -------------------------------------------------- ------- *
FORM alv_grid_display。 呼叫功能'REUSE_ALV_GRID_DISPLAY'
导出
* I_INTERFACE_CHECK =''
* I_BYPASSING_BUFFER =''
* I_BUFFER_ACTIVE =''
I_CALLBACK_PROGRAM = SY-REPID_ I_CALLBACK_USER_COMMAND ='UCOMM'
* I_CALLBACK_TOP_OF_PAGE =''
* I_CALLBACK_HTML_TOP_OF_PAGE =''
* I_CALLBACK_HTML_END_OF_LIST =''
* I_STRUCTURE_NAME ='br ID =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = LT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE = < br> * I_DEFAULT ='X'
I_SAVE ='X'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_HV_GRAPH
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV _FULLSCREEN_ADAPTER =
*导入
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
表格
t_outtab = IT_TABLE
* EXCEPTIONS
*程序错误= 1
*其他 >。
IF SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。 ENDFORM。 "使用RT_EXTAB类型SLIS_T_EXTAB的ALV_GRID_DISPLAY表单MY_STATUS。
SET PF-STATUS'STANDARD'。
ENDFORM。使用P_UCOM SY-UCOMM
PS_SELFIELD类型SLIS_SELFIELD形式的UCOMM形式。
数据:A。CALL。 POPUP_TO_CONFIRM'
导出
TITLEBAR ='请确认'
text_question ='确认出席?'
DISPLAY_CANCEL_BUTTON ='X'
导入
答案= a
例外
> TEXT_NOT_FOUND = 1
其他=2。如果A ='1'。
UPDATE ydt_bd002设置in_pegawai = sy-datum。
消息'HADIR'类型'S'。
刷新IT_TABLE。
> ELSEIF A ='2'。
UPDATE ydt_bd002设置in_pegawai = 0。
消息'TIDAK HADIR'类型'W'。ENDIF。
ps_selfield-refresh = abap_true。
ENDFORM。

(10.0 kB)
付费偷看设置
发送
3条回答
蓋茨
1楼-- · 2020-08-26 05:29

嗨,

通过FM中的布局结构,如下所示。 在下面找到示例代码。

 DATA:lt_fld TYPE slis_t_fieldcat_alv,
        ls_fld TYPE slis_fieldcat_alv,
        ls_layout类型slis_layout_alv。


 SELECT matnr,mtart从mara到表@DATA(lt_mara)
   哪里mtart ='FERT'。


 ls_fld-fieldname ='MATNR'。
 ls_fld-tabname ='LT_MARA'。
 ls_fld-seltext_m ='材料'。
 追加ls_fld至lt_fld。


 ls_fld-fieldname ='MTART'。
 ls_fld-tabname ='LT_MARA'。
 ls_fld-seltext_m ='材料类型'。
 追加ls_fld至lt_fld。

 ls_layout-box_fieldname ='SEL'。

 通话功能'REUSE_ALV_GRID_DISPLAY'
   出口
     is_layout = ls_layout
     it_fieldcat = lt_fld
   桌子
     t_outtab = lt_mara
   例外情况
     程序错误= 1
     其他= 2。
 如果sy-subrc <> 0。
 *在这里实施适当的错误处理
 万一。
 

是什么意思? 您是否只想知道行选择的工作方式,还是想添加可视指示器以选择带有复选框的列(如列)?默认情况下,没有可视指示器,但是您只需选择一个单元格即可。 如果要在左侧添加带有复选框的列,则必须使用您提到的参数IS_LAYOUT,它是一个结构,需要设置组件SEL_MODE ='A'(或'D')。 请参阅功能模块REUSE_ALV_GRID_DISPLAY的文档。

请注意,此功能模块已在15年前被类CL_SALV_TABLE取代...

愤怒的猪头君
3楼-- · 2020-08-26 05:33

+1至 桑德拉的评论。 问题尚不清楚。 并且代码不可读。 请使用"代码"按钮设置其格式,并仅在问题中包含相关代码。 例如。 无需复制粘贴所有注释掉的行。

据我所见,这也不是"脚本",而是ABAP报告。 当我们希望被其他人正确理解时,使用标准的SAP术语很重要。

请参考此博客以获取有关如何发布更好的问题的建议: https://blogs.sap.com/2019/11/25/help-us-to-help-you-good-questions-beget-good-answers /

一周热门 更多>