03-31-2008 3:36 PM
1.I WANT TO DISPLAY DATE ON HEADER OF THE REPORT IN FORMAT JULY-06,APRIL-05,MAY-99.
BY USING ALV WITH FUNCTION MODULES.
2. I WANT TO SUBTOTAL NUMERICAL FIELDS IN THE REPORT BY USING ALV WITH FUNCTION MODULES
3.I WANT TO DISPLAY MAIN HEADING BY GIVING 20 CHARATER
SPACE FROM EXTERM LEFTSIDE ON THE HEADER OF THE REPORT BY USING ALV WITH FM.
KINDLY HELP ME IT IS URGENT.
03-31-2008 3:42 PM
Hi,
You can use the CL_DD_DOCUMENT Class to Design the TOP_OF_PAGE
Check this Blog.
/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
Also check this blog
/people/community.user/blog/2007/05/07/alignment-of-data-in-top-of-page-in-alv-grid
Thanks,
Suman.
03-31-2008 3:56 PM
Hi,
Please refer below:
1) Refer code below:
REPORT ZTEST_REPORT.
parameter : date like sy-datum default sy-datum.
data : gt_date like t247 occurs 0 WITH HEADER LINE.
data : gv_date(30) type c,
gv_month(10) type c,
gv_year(4) type c,
gv_day(2) type c.
CALL FUNCTION 'MONTH_NAMES_GET'
* EXPORTING
* LANGUAGE = SY-LANGU
* IMPORTING
* RETURN_CODE =
TABLES
month_names = gt_date
* EXCEPTIONS
* MONTH_NAMES_NOT_FOUND = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
loop at gt_date.
if gt_date-mnr eq date+4(2).
gv_month = gt_date-KTX.
endif.
endloop.
CONCATENATE date+6(2) gv_month date(4) into gv_date.
write : gv_date
And please refer the link below:
http://www.sapdev.co.uk/reporting/alv/alvgrid_enhanced.htm
Thanks,
Sriram Ponna.
04-01-2008 3:49 AM
Hi,
Follw the code to print the date in top-of-page
TABLES VBAK.
TYPE-POOLS SLIS.
Data Declaration
TYPES: BEGIN OF T_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
VKGRP TYPE VBAK-VKGRP,
RN TYPE I,
END OF T_VBAK.
DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0 WITH HEADER LINE.
ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FLDCAT TYPE SLIS_FIELDCAT_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID TYPE SY-REPID.
SELECT-OPTIONS: VBELN FOR VBAK-VBELN.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
END-OF-SELECTION.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
Build Field Catalog for ALV Report
FORM BLD_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBELN'.
W_FLDCAT-SELTEXT_M = 'Sales_Document'.
W_FLDCAT-COL_POS = 1.
*W_FLDCAT-EMPHASIZE = 'C411'.
*CXYZ: C=COLOR,X=COLOR NUMBER(1-9),Y=BOLD(0/1),Z=INVERSE(0/1)
W_FLDCAT-OUTPUTLEN = 15.
W_FLDCAT-KEY = 'X'.
W_FLDCAT-ICON = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERDAT'.
W_FLDCAT-SELTEXT_L = 'Record_Date_created'.
W_FLDCAT-COL_POS = 2.
W_FLDCAT-KEY = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERNAM'.
W_FLDCAT-SELTEXT_L = 'Cteated_Person_Name'.
W_FLDCAT-COL_POS = 3.
W_FLDCAT-EMPHASIZE = 'C011'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'AUDAT'.
W_FLDCAT-SELTEXT_M = 'Document_Date'.
W_FLDCAT-COL_POS = 4.
W_FLDCAT-EMPHASIZE = 'C110'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBTYP'.
W_FLDCAT-SELTEXT_L = 'SDDocument_category'.
W_FLDCAT-COL_POS = 5.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'NETWR'.
W_FLDCAT-SELTEXT_L = 'Net_Value'.
W_FLDCAT-COL_POS = 6.
W_FLDCAT-OUTPUTLEN = 10.
W_FLDCAT-DO_SUM = 'X'.
W_FLDCAT-DATATYPE = 'CURR'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKORG'.
W_FLDCAT-SELTEXT_L = 'Sales_Organization'.
W_FLDCAT-COL_POS = 7.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKGRP'.
W_FLDCAT-SELTEXT_M = 'Sales_Group'.
W_FLDCAT-COL_POS = 8.
W_FLDCAT-EMPHASIZE = 'C801'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'RN'.
W_FLDCAT-SELTEXT_S = 'RN'.
W_FLDCAT-COL_POS = 0.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
ENDFORM.
Build Layout for ALV Grid Report
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
*GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*GD_LAYOUT-NO_SCROLLING = 'X'.
*GD_LAYOUT-BOX_FIELDNAME = 'VBELN'.
ENDFORM.
Display report using ALV grid
FORM DISPLAY_ALV_REPORT.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
IS_LAYOUT = GD_LAYOUT
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IT_FIELDCAT = FLDCAT[]
I_SAVE = 'X'
TABLES
T_OUTTAB = IT_VBAK
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
Retrieve data from VBAK table and populate itab IT_VBAK
FORM DATA_RETRIEVAL.
SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN VBELN.
LOOP AT IT_VBAK.
IT_VBAK-RN = SY-TABIX.
MODIFY IT_VBAK INDEX SY-TABIX.
ENDLOOP.
ENDFORM.
FORM TOP_OF_PAGE_SPLIT USING R_TOP TYPE REF TO CL_DD_DOCUMENT.
DATA: S_TAB TYPE SDYDO_TEXT_TABLE,
C_AREA TYPE REF TO CL_DD_AREA,
TEXT TYPE SDYDO_TEXT_ELEMENT.
TYPES: BEGIN OF TAB_TEXT,
TEXT TYPE SDYDO_TEXT_ELEMENT,
END OF TAB_TEXT.
DATA: I_TEXT TYPE TABLE OF TAB_TEXT.
DATA: W_TEXT TYPE TAB_TEXT.
CALL METHOD R_TOP->INITIALIZE_DOCUMENT.
CALL METHOD R_TOP->VERTICAL_SPLIT
EXPORTING
SPLIT_AREA = R_TOP
SPLIT_WIDTH = '70%'
IMPORTING
RIGHT_AREA = C_AREA.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO DATE1.
*CONCATENATE 'DATE' DATE1 INTO W_TEXT-TEXT SEPARATED BY ':'.
W_TEXT-TEXT = 'GEMS TECHNO SOLUTIONS PVT LIMITED'.
APPEND W_TEXT TO I_TEXT.
W_TEXT-TEXT = 'PLOT NO.100,SECTOR 1'.
APPEND W_TEXT TO I_TEXT.
W_TEXT-TEXT = 'MVP DOUBLE ROAD'.
APPEND W_TEXT TO I_TEXT.
W_TEXT-TEXT = 'MVP COLONY,VIZAG'.
APPEND W_TEXT TO I_TEXT.
S_TAB[] = I_TEXT[].
CALL METHOD C_AREA->ADD_TEXT
EXPORTING
TEXT_TABLE = S_TAB
FIX_LINES = 'X'
SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM
SAP_EMPHASIS = CL_DD_DOCUMENT=>STRONG.
*CALL METHOD R_TOP->ADD_GAP
EXPORTING
WIDTH = 60.
TEXT = 'REPORT:'.
CALL METHOD R_TOP->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_EMPHASIS = 'STRONG'.
CALL METHOD R_TOP->ADD_GAP
EXPORTING
WIDTH = 2.
TEXT = SY-REPID.
CALL METHOD R_TOP->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_STYLE = 'KEY'.
CALL METHOD R_TOP->NEW_LINE.
TEXT = 'DATE:'.
CALL METHOD R_TOP->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_EMPHASIS = 'STRONG'.
CALL METHOD R_TOP->ADD_GAP
EXPORTING
WIDTH = 8.
TEXT = Datevar.
CALL METHOD R_TOP->ADD_TEXT
EXPORTING
TEXT = TEXT
SAP_STYLE = 'KEY'.
CALL METHOD R_TOP->NEW_LINE.
ENDFORM.
Replace the variable from above post to display the date in your required format to the bold variable in this code.
Reward,if it is useful.
Thanks,
Chandu
04-01-2008 5:38 AM
Hi Saritha,
Check this sample program. This will solve 1 and 3 .
REPORT zvenkat_alv_test.
To get Subtotal and Total check the following procedure.
1.Define SORT table and FIELDCATALOG table .
*&---------------------------------------------------------------------*
" Declaration
"types
TYPES:
BEGIN OF t_pa0001,
pernr TYPE pa0001-pernr,
ename TYPE pa0001-ename,
END OF t_pa0001.
"Work area
DATA:
w_pa0001 TYPE t_pa0001.
"Internal tables
DATA:
i_pa0001 TYPE STANDARD TABLE OF t_pa0001.
*&---------------------------------------------------------------------*
* ALV Declarations
*----------------------------------------------------------------------*
* Types Pools
TYPE-POOLS:
slis.
* Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
*&---------------------------------------------------------------------*
*&START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM get_data.
*&---------------------------------------------------------------------*
*&END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM fieldcat.
PERFORM layout_build.
PERFORM dispaly .
*&---------------------------------------------------------------------*
" Form fieldcat
*&---------------------------------------------------------------------*
FORM fieldcat .
CLEAR :
w_fieldcat,i_fieldcat[].
w_fieldcat-fieldname = 'PERNR'.
w_fieldcat-tabname = 'I_PA0001'.
w_fieldcat-seltext_m = 'Employee No'.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-fieldname = 'ENAME'.
w_fieldcat-tabname = 'I_PA0001'.
w_fieldcat-seltext_m = 'ENAME'.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " fieldcat
*&---------------------------------------------------------------------*
*& Form dispaly
*&---------------------------------------------------------------------*
FORM dispaly .
DATA :l_program TYPE sy-repid.
l_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_program
i_callback_html_top_of_page = 'TOP_OF_PAGE'
is_layout = w_layout
it_events = i_events
it_fieldcat = i_fieldcat
TABLES
t_outtab = i_pa0001.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " dispaly
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
DO 20 TIMES.
SELECT pernr ename
FROM pa0001
APPENDING CORRESPONDING FIELDS OF TABLE i_pa0001
UP TO 10 ROWS.
ENDDO.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
FORM layout_build .
w_layout-zebra = 'X'. "Pass COLOR field name like this.
ENDFORM. " layout_build
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
FORM top_of_page USING document TYPE REF TO cl_dd_document.
DATA:
l_text TYPE sdydo_text_element,
l_ltx TYPE t247-ltx,
l_date TYPE sdydo_text_element.
" Adding 20 char width from Extreme Left
CALL METHOD document->add_gap
EXPORTING
width = 20.
l_text = 'XYZ Pvt Ltd'.
"Displaying text
CALL METHOD document->add_text
EXPORTING
text = l_text
sap_emphasis = cl_dd_document=>strong
sap_style = cl_dd_document=>key.
" Getting Date format.
SELECT SINGLE ltx
FROM t247
INTO l_ltx
WHERE spras = sy-langu
AND mnr = sy-datum+4(2).
CONCATENATE l_ltx sy-datum+0(4) INTO l_date SEPARATED BY '-'.
"Adding new line
CALL METHOD document->new_line.
"Giving Width at Leftside
CALL METHOD document->add_gap
EXPORTING
width = 20.
"Displaying text
CALL METHOD document->add_text
EXPORTING
text = l_date
sap_fontsize = cl_dd_document=>medium
sap_color = cl_dd_document=>list_positive
sap_style = cl_dd_document=>key.
CALL METHOD document->underline.
ENDFORM. "top_of_page
2.While buildingfieldcatalog,We have to set DO_SUM = 'X' for quantity field .
ex.
Data :i_field type slis_t_fieldcat_alv,
w_field like line of i_field,
i_sort type slis_t_sortinfo_alv,
w_sort like line of i_sort.
3.Build sort table .
w_field-fieldname = 'MENGE'.
w_field-tabname = 'I_TAB'.
w_field-DO_SUM = 'X'. "total
append w_field to i_field.
clear w_field.
4.Pass this I_SORT table thru REUSE_ALV_LIST_DISPLAY function module ..like fieldcatalog table.
I hope that it helps u .
Regards,
Venkat.O
Clear: w_sort,i_sort[].
w_sort-spos = 1.
w_sort-fieldname = 'WERKS'.
w_sort-up = 'X'.
w_sort-subtot = 'X'.
append w_sort to i_sort.
clear w_sort.