如下图所示,需要在ALV表头实现下列样式
所以,在ALV function 中设置 I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE':
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = C_PF_STATUS
I_CALLBACK_USER_COMMAND = C_COMMAND
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
* I_HTML_HEIGHT_TOP = 10 " 设置抬头宽度
* I_HTML_HEIGHT_END = 10 " 设置抬头宽度
I_DEFAULT = C_X
IT_FIELDCAT = T_FIELDCAT
*{ insert by damon at 2015.4.17 to add colum to display 2
IS_LAYOUT = LS_LAYOUT
IS_VARIANT = LS_VARIANT
*} INSERT
* IT_EVENTS = IT_EVENT
TABLES
T_OUTTAB = T_HEAD
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 DISPLAY LIKE 'E'.
ENDIF.
然后在form:HTML_TOP_OF_PAGE 中写如下代码:
FORM HTML_TOP_OF_PAGE USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT.
DATA: TEXT TYPE SDYDO_TEXT_ELEMENT.
DATA: M_P TYPE I,
M_BUFFER TYPE STRING.
data l_bukrs TYPE t001.
SELECT SINGLE *
FROM t001
INTO l_bukrs
WHERE bukrs = p_bukrs.
data l_mon TYPE char2.
CONCATENATE '<HTML><CENTER><H1>' '利润表' '</H1></CENTER></HTML>' INTO M_BUFFER. " 居中 <H1>设置字体格式
CALL METHOD DOCUMENT->HTML_INSERT
EXPORTING
CONTENTS = M_BUFFER
CHANGING
POSITION = M_P.
l_mon = P_MONATT .
CONCATENATE '<P ALIGN = RIGHT >会企' '02表' INTO m_buffer .
CALL METHOD DOCUMENT->HTML_INSERT
EXPORTING
CONTENTS = M_BUFFER
CHANGING
POSITION = M_P.
text = l_BUKRS-BUTXT.
DATA area1 TYPE REF TO cl_dd_area.
DATA area2 TYPE REF TO cl_dd_area.
“输出公司名称
CALL METHOD DOCUMENT->add_text EXPORTING text = text.
”把区域一分为二
CALL METHOD DOCUMENT->vertical_split EXPORTING split_area = DOCUMENT
split_width = '50%'
IMPORTING right_area = area2.
“在区域2中输出文本:日期、单位
CONCATENATE '<P ALIGN = RIGHT >' P_GJAHR P_MONATT ' ' ' 单位: 人民币' INTO m_buffer .
CALL METHOD area2->HTML_INSERT
EXPORTING
CONTENTS = M_BUFFER
CHANGING
POSITION = M_P.
ENDFORM.