Function ALV 简单实现HTML抬头的方法 网上转载的稍微加了一点修改内容
2007-12-18 10:59
976 查看
HTML的表头虽然比较方便,还可以设置高度,但是打印预览不显示表头,且导出到EXCEL,WORD,HTML都没有表头的.
![](http://blogimg.chinaunix.net/blog/upfile2/071213171001.jpg)
REPORT Z_BARRY_ALV_HEADER .
TABLES : t001.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
TYPES : BEGIN OF ty_comp.
INCLUDE STRUCTURE t001.
TYPES : END OF ty_comp.
DATA: wa_layout TYPE slis_layout_alv.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA : it_comp TYPE TABLE OF ty_comp.
INITIALIZATION.
w_repid = sy-repid.
START-OF-SELECTION.
SELECT * FROM t001 INTO TABLE it_comp.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = w_repid
i_internal_tabname = 'IT_COMP'
I_STRUCTURE_NAME = 'T001'
i_inclname = w_repid
CHANGING
ct_fieldcat = it_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_html_height_top= 20. "这句话加上表头的高度,要不然会自动出现滚动条
is_layout = wa_layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_comp
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form html_top_of_page
*&---------------------------------------------------------------------*
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
text = 'Company Code Data'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 10.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 10.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE
方法二:
REPORT z_barry_alv_toolbar .
CONSTANTS: gc_grid_title(20) TYPE c VALUE '带自定义工具栏的ALV GRID模版'.
TYPE-POOLS: slis.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
ivariant LIKE disvariant,
i_repid LIKE sy-repid .
DATA : gt_events TYPE slis_t_event.
DATA: itab_event TYPE slis_t_event,
fld_event TYPE slis_alv_event,
fld_head TYPE slis_listheader,
itab_listhead TYPE slis_t_listheader.
DATA: BEGIN OF itab OCCURS 0,
f(10) TYPE c,
END OF itab.
*PARAMETERS: P_ .
*SELECT-OPTIONS: S_ .
START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.
PERFORM outdata.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata.
itab-f = 'Test data'.
APPEND itab.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form FIXDATA
*&---------------------------------------------------------------------*
FORM fixdata.
ENDFORM. " FIXDATA
*&---------------------------------------------------------------------*
*& Form outdata
*&---------------------------------------------------------------------*
FORM outdata.
PERFORM fieldcat_init .
sla-colwidth_optimize = 'X'.
sla-zebra = 'X'.
i_repid = sy-repid.
SET TITLEBAR '100' WITH gc_grid_title.
PERFORM frm_alv_header.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = gd_fieldcat[]
i_save = 'A'
is_variant = ivariant
is_layout = sla
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_STATUS'
it_events = gt_events
TABLES
t_outtab = itab[].
ENDFORM. " outdata
*---------------------------------------------------------------------*
* FORM fieldcat_init *
*---------------------------------------------------------------------*
FORM fieldcat_init .
PERFORM frm_catlg_set USING: 'F' 'Test Filed' .
ENDFORM. "fieldcat_init
*---------------------------------------------------------------------*
* FORM frm_catlg_set *
*---------------------------------------------------------------------*
FORM frm_catlg_set USING p_field
p_text.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
ls_fieldcat-fieldname = p_field.
ls_fieldcat-seltext_l = p_text.
APPEND ls_fieldcat TO gd_fieldcat .
CLEAR ls_fieldcat .
ENDFORM. "frm_catlg_set
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE itab INDEX rs_selfield-tabindex.
CASE r_ucomm.
WHEN '&IC1'. "双击
WHEN 'EXIT'.
LE***E PROGRAM.
ENDCASE.
ENDFORM. "user_com
*&--------------------------------------------------------------------*
*& Form set_status
*&--------------------------------------------------------------------*
FORM set_status USING rt_extab TYPE slis_t_extab.
CLEAR rt_extab.
REFRESH rt_extab.
* APPEND '&ALL' TO rt_extab .
* APPEND '&SAL' TO rt_extab .
SET PF-STATUS 'STANDARD' EXCLUDING rt_extab . "copy from "SAPLKKBL" STANDARD GUI status
ENDFORM. "set_status
**********************************************
FORM frm_alv_header.
*Title
fld_head-typ = 'H'.
fld_head-info = 'HEIHEI'.
APPEND fld_head TO itab_listhead.
CLEAR fld_head.
*PROGRAM ID:
fld_head-typ = 'S'.
fld_head-key = 'KEY'.
fld_head-info = 'INFO '.
APPEND fld_head TO itab_listhead.
CLEAR fld_head.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events
EXCEPTIONS
list_type_wrong = 1.
IF sy-subrc <>0.
MESSAGE 'ERROR' TYPE 'E' .
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
INTO fld_event.
IF sy-subrc = 0.
fld_event-form = 'FRM_TOP_OF_PAGE'.
APPEND fld_event TO gt_events .
ENDIF.
ENDFORM. " FRM_ALV_HEADER
*&--------------------------------------------------------------------*
*& Form FRM_TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM frm_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = itab_listhead
i_logo = 'TEST_BTZ' "SE78
i_end_of_list_grid = '.
ENDFORM. " FRM_TOP_OF_PAGE
本文转自
http://blog.chinaunix.net/u1/40527/showart_441167.html
![](http://blogimg.chinaunix.net/blog/upfile2/071213171001.jpg)
REPORT Z_BARRY_ALV_HEADER .
TABLES : t001.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
TYPES : BEGIN OF ty_comp.
INCLUDE STRUCTURE t001.
TYPES : END OF ty_comp.
DATA: wa_layout TYPE slis_layout_alv.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA : it_comp TYPE TABLE OF ty_comp.
INITIALIZATION.
w_repid = sy-repid.
START-OF-SELECTION.
SELECT * FROM t001 INTO TABLE it_comp.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = w_repid
i_internal_tabname = 'IT_COMP'
I_STRUCTURE_NAME = 'T001'
i_inclname = w_repid
CHANGING
ct_fieldcat = it_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_html_height_top= 20. "这句话加上表头的高度,要不然会自动出现滚动条
is_layout = wa_layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_comp
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form html_top_of_page
*&---------------------------------------------------------------------*
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
text = 'Company Code Data'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 10.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 10.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 2.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->new_line.
ENDFORM. "HTML_TOP_OF_PAGE
方法二:
REPORT z_barry_alv_toolbar .
CONSTANTS: gc_grid_title(20) TYPE c VALUE '带自定义工具栏的ALV GRID模版'.
TYPE-POOLS: slis.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
ivariant LIKE disvariant,
i_repid LIKE sy-repid .
DATA : gt_events TYPE slis_t_event.
DATA: itab_event TYPE slis_t_event,
fld_event TYPE slis_alv_event,
fld_head TYPE slis_listheader,
itab_listhead TYPE slis_t_listheader.
DATA: BEGIN OF itab OCCURS 0,
f(10) TYPE c,
END OF itab.
*PARAMETERS: P_ .
*SELECT-OPTIONS: S_ .
START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.
PERFORM outdata.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata.
itab-f = 'Test data'.
APPEND itab.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form FIXDATA
*&---------------------------------------------------------------------*
FORM fixdata.
ENDFORM. " FIXDATA
*&---------------------------------------------------------------------*
*& Form outdata
*&---------------------------------------------------------------------*
FORM outdata.
PERFORM fieldcat_init .
sla-colwidth_optimize = 'X'.
sla-zebra = 'X'.
i_repid = sy-repid.
SET TITLEBAR '100' WITH gc_grid_title.
PERFORM frm_alv_header.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = gd_fieldcat[]
i_save = 'A'
is_variant = ivariant
is_layout = sla
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_STATUS'
it_events = gt_events
TABLES
t_outtab = itab[].
ENDFORM. " outdata
*---------------------------------------------------------------------*
* FORM fieldcat_init *
*---------------------------------------------------------------------*
FORM fieldcat_init .
PERFORM frm_catlg_set USING: 'F' 'Test Filed' .
ENDFORM. "fieldcat_init
*---------------------------------------------------------------------*
* FORM frm_catlg_set *
*---------------------------------------------------------------------*
FORM frm_catlg_set USING p_field
p_text.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
ls_fieldcat-fieldname = p_field.
ls_fieldcat-seltext_l = p_text.
APPEND ls_fieldcat TO gd_fieldcat .
CLEAR ls_fieldcat .
ENDFORM. "frm_catlg_set
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE itab INDEX rs_selfield-tabindex.
CASE r_ucomm.
WHEN '&IC1'. "双击
WHEN 'EXIT'.
LE***E PROGRAM.
ENDCASE.
ENDFORM. "user_com
*&--------------------------------------------------------------------*
*& Form set_status
*&--------------------------------------------------------------------*
FORM set_status USING rt_extab TYPE slis_t_extab.
CLEAR rt_extab.
REFRESH rt_extab.
* APPEND '&ALL' TO rt_extab .
* APPEND '&SAL' TO rt_extab .
SET PF-STATUS 'STANDARD' EXCLUDING rt_extab . "copy from "SAPLKKBL" STANDARD GUI status
ENDFORM. "set_status
**********************************************
FORM frm_alv_header.
*Title
fld_head-typ = 'H'.
fld_head-info = 'HEIHEI'.
APPEND fld_head TO itab_listhead.
CLEAR fld_head.
*PROGRAM ID:
fld_head-typ = 'S'.
fld_head-key = 'KEY'.
fld_head-info = 'INFO '.
APPEND fld_head TO itab_listhead.
CLEAR fld_head.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events
EXCEPTIONS
list_type_wrong = 1.
IF sy-subrc <>0.
MESSAGE 'ERROR' TYPE 'E' .
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
INTO fld_event.
IF sy-subrc = 0.
fld_event-form = 'FRM_TOP_OF_PAGE'.
APPEND fld_event TO gt_events .
ENDIF.
ENDFORM. " FRM_ALV_HEADER
*&--------------------------------------------------------------------*
*& Form FRM_TOP_OF_PAGE
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM frm_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = itab_listhead
i_logo = 'TEST_BTZ' "SE78
i_end_of_list_grid = '.
ENDFORM. " FRM_TOP_OF_PAGE
本文转自
http://blog.chinaunix.net/u1/40527/showart_441167.html
相关文章推荐
- ALV 简单实现HTML抬头的方法 (介绍 一)
- ALV 简单实现HTML抬头的方法 (介绍 二)
- Android实现类似execel的表格 能回显并能修改表格内容的方法
- 转载自网上的即时通讯 稍微修改了一下bug
- 看着网上有进制转换的计算器,想做着试试(只需一个简单的方法即可实现)
- Vue中使用Froala Editor时,外部方法调用html.insert()插入内容到光标最后停留位置功能实现
- Vue中使用Froala Editor时,外部方法调用html.insert()插入内容到光标最后停留位置功能实现
- 页面抬头浮动广告简单实现方法
- 网页设计,本页面内左侧菜单导航右侧显示内容简单实现方法
- jQuery+ajax实现鼠标单击修改内容的方法
- 【使用JSOUP实现网络爬虫】修改数据-设置一个元素的HTML内容
- jsp页面离开时,揭示是否保存页面修改内容,最简单的方法
- jsp转html,工具类,网站静态化的一种简单实现方法!
- Python实现简单HTML表格解析的方法
- 在ArcEngine下实现图层属性过滤的两种方法 转载http://www.gisall.com/html/72/124272-2990.html
- 母版页调用内容页的方法的简单实现
- Python实现批量将word转html并将html内容发布至网站的方法
- 母版页调用内容页的方法的简单实现
- Vue中使用Froala Editor时,外部方法调用html.insert()插入内容到光标最后停留位置功能实现
- jQuery简单实现iframe的高度根据页面内容自适应的方法