您的位置:首页 > 编程语言 > Lua

不用evaluation path情况下使用逻辑数据库PCH

2012-07-27 18:18 302 查看
测试程序来自标准报表:RHVAKRI0

界面显示为:



运行效果为:





技术亮点:
(1)不使用evaluation path的情况下使用逻辑数据库PCH

(2)ALV显示结果中使用checkbox(ALV checkbox)

测试程序:

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

*& Report ZTEST12

*&

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

*&

*&

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

REPORT ztest12.

TABLES: objec.

INFOTYPES: 1001,1007.

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

*& data define for get display data

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

DATA: BEGIN OF gty_itab_1007,

box(1) TYPE c,

text LIKE objec-stext,

i1007 LIKE p1007,

END OF gty_itab_1007.

DATA: gs_itab_1007 LIKE gty_itab_1007,

gt_itab_1007 LIKE TABLE OF gty_itab_1007,

gs_p1007 TYPE p1007.

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

*& data define for ALV

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

DATA: gt_itab_1007_fields TYPE slis_t_fieldcat_alv,

gt_itab_1007_layout TYPE slis_layout_alv.

INITIALIZATION.

pchotype = 'S'.

CLEAR: pchtimed, p1001,p1007.

GET objec.

LOOP AT p1007 INTO gs_p1007.

gs_itab_1007-text = objec-stext.

gs_itab_1007-i1007 = gs_p1007.

APPEND gs_itab_1007 TO gt_itab_1007.

ENDLOOP.

END-OF-SELECTION.

* fieldcat

PERFORM fill_gt_itab_1007_fields TABLES gt_itab_1007_fields.

CLEAR gt_itab_1007_layout.

gt_itab_1007_layout-box_fieldname = 'BOX'.

gt_itab_1007_layout-box_tabname = 'ITAB_1007'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-repid

* I_STRUCTURE_NAME =

is_layout = gt_itab_1007_layout

it_fieldcat = gt_itab_1007_fields[]

TABLES

t_outtab = gt_itab_1007

EXCEPTIONS

program_error = 1

OTHERS = 2.

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

*& Form FILL_GT_ITAB_1007_FIELDS

*& create alv field text

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

FORM fill_gt_itab_1007_fields TABLES it_field_tab TYPE slis_t_fieldcat_alv.

* head line for field table

DATA: field_head_struc TYPE slis_fieldcat_alv.

REFRESH it_field_tab.

CLEAR field_head_struc.

field_head_struc-col_pos = 1.

field_head_struc-fieldname = 'I1007-OTYPE'.

field_head_struc-ref_fieldname = 'OTYPE'.

field_head_struc-ref_tabname = 'P1001'.

APPEND field_head_struc TO it_field_tab.

CLEAR field_head_struc.

field_head_struc-col_pos = 2.

field_head_struc-fieldname = 'I1007-OBJID'.

field_head_struc-ref_fieldname = 'OBJID'.

field_head_struc-ref_tabname = 'P1007'.

APPEND field_head_struc TO it_field_tab.

CLEAR field_head_struc.

field_head_struc-col_pos = 3.

field_head_struc-fieldname = 'I1007-BEGDA'.

field_head_struc-ref_fieldname = 'BEGDA'.

field_head_struc-ref_tabname = 'P1007'.

APPEND field_head_struc TO it_field_tab.

ENDFORM. " FILL_GT_ITAB_1007_FIELDS

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: