Report coding
Interactive Report that list purchase order details of a vendor. When the user double clicks on material number it shows detail list with fields matkl, meins, brgew, ntgew, gewei.The selection screen consist of sales organisation, distribution channel and material number. plz mention the detail coding
Hi,
TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW <> 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT user-command.
IF SY-UCOMM = 'IONE'.
PERFORM SALES_ORD.
ENDIF.
IF SY-UCOMM = 'ITWO'.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-UCOMM = 'IONE'.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-UCOMM = 'ITWO'.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
*& Form SALES_ORD
*& FIRST SECONDARY LIST FORM
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
*& Form ITEM_DET
*& SECOND SECONDARY LIST FORM
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
REPORT demo_list_at_pf.
START-OF-SELECTION.
WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
AT pf5.
PERFORM out.
AT pf6.
PERFORM out.
AT pf7.
PERFORM out.
AT pf8.
PERFORM out.
FORM out.
WRITE: 'Secondary List by PF-Key Selection',
/ 'SY-LSIND =', sy-lsind,
/ 'SY-UCOMM =', sy-ucomm.
ENDFORM.
After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
Secondary List by PF-Key Selection
SY-LSIND = 14
SY-UCOMM = PF06
Example for AT USER-COMMAND.
REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
START-OF-SELECTION.
WRITE: 'Basic List',
/ 'SY-LSIND:', sy-lsind.
TOP-OF-PAGE.
WRITE 'Top-of-Page'.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-pfkey.
WHEN 'TEST'.
WRITE 'Self-defined GUI for Function Codes'.
ULINE.
ENDCASE.
AT LINE-SELECTION.
SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
PERFORM out.
sy-lsind = sy-lsind - 1.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'FC1'.
PERFORM out.
WRITE / 'Button FUN 1 was pressed'.
WHEN 'FC2'.
PERFORM out.
WRITE / 'Button FUN 2 was pressed'.
WHEN 'FC3'.
PERFORM out.
WRITE / 'Button FUN 3 was pressed'.
WHEN 'FC4'.
PERFORM out.
WRITE / 'Button FUN 4 was pressed'.
WHEN 'FC5'.
PERFORM out.
WRITE / 'Button FUN 5 was pressed'.
ENDCASE.
sy-lsind = sy-lsind - 1.
FORM out.
WRITE: 'Secondary List',
/ 'SY-LSIND:', sy-lsind,
/ 'SY-PFKEY:', sy-pfkey.
ENDFORM.
Similar Messages
-
How will i create ALV Report that will show the details of order like order no, order date, customer, product code & description, order quantity and value along with the details of dispatch of those orders like invoice no, invoice date, invoice quantity and pending order quantity.
plz mention the detail coding
Tahnks,
Priya RanjanHi,
See the following example and change it according to ur requirement.
*INTERACTIVE ALV REPORTS***
*& Report ZJE_ALV_INTRACTIVE1
REPORT zje_alv_intractive2.
TYPE-POOLS: slis.
TABLES: kna1, vbak ,vbap.
*Type Declerations*****************************
TYPES: BEGIN OF ty_kna1,
xcpdk LIKE kna1-xcpdk,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
END OF ty_kna1.
TYPES: BEGIN OF ty_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
END OF ty_vbak.
TYPES: BEGIN OF ty_vbap,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
END OF ty_vbap.
TYPES: BEGIN OF ty_mara,
matnr LIKE mara-matnr,
mtart LIKE mara-mtart,
matkl LIKE mara-matkl,
meins LIKE mara-meins,
END OF ty_mara.
*Data Declerations*****************************
DATA: it_kna1 TYPE STANDARD TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1.
DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
DATA: it_vbap TYPE STANDARD TABLE OF ty_vbap,
wa_vbap TYPE ty_vbap.
DATA: it_mara TYPE STANDARD TABLE OF ty_mara,
wa_mara TYPE ty_mara.
DATA: list1 TYPE i VALUE 0.
DATA: list(5) TYPE c .
DATA: page(5) TYPE c.
DATA: wa_layout TYPE slis_layout_alv,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_event_kna1 TYPE slis_t_event,
wa_event_kna1 TYPE slis_alv_event,
it_event_vbak TYPE slis_t_event,
wa_event_vbak TYPE slis_alv_event,
it_event_vbap TYPE slis_t_event,
wa_event_vbap TYPE slis_alv_event,
it_listheader TYPE slis_t_listheader,
wa_listheader TYPE slis_listheader,
it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
DATA: i_title_kna1 TYPE lvc_title VALUE 'FIRST LIST DISPLAYED',
i_title_vbak TYPE lvc_title VALUE 'SECONDRY LIST DISPLAYED',
i_title_vbap TYPE lvc_title VALUE 'TERTIARY LIST DISPLAYED'.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1000 TO 1500.
*Initialization********************************
INITIALIZATION.
PERFORM layout.
PERFORM fieldcat_kna1.
PERFORM event_kna1.
PERFORM eventpopulate_kna1.
*START OF SELECTION****************************
START-OF-SELECTION.
PERFORM datafetch_kna1.
PERFORM displaygrid_kna1.
*& Form layout
text
--> p1 text
<-- p2 text
FORM layout .
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-totals_text = 'GRAND_TOTAL'.
wa_layout-subtotals_text = 'SUB_TOTAL'.
wa_layout-edit = 'X'.
wa_layout-Box_fieldname = 'X'.
ENDFORM. " layout
*FIELD CATALOUGE*******************************
*& Form fieldcat_kna1
text
--> p1 text
<-- p2 text
FORM fieldcat_kna1 .
REFRESH it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-fieldname = 'XCPDK'.
wa_fieldcat-seltext_l = 'CHECK'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 5.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-seltext_l = 'CUSTOMER NUMBER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C21'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LAND1'.
wa_fieldcat-seltext_l = 'COUNTRY CODE'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 5.
wa_fieldcat-emphasize = 'C31'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_l = 'CUSTOMER NAME'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 35.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C71'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ORT01'.
wa_fieldcat-seltext_l = 'COUNTRY '.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " fieldcat_kna1
*& Form FIELDCAT_VBAK
text
--> p1 text
<-- p2 text
FORM fieldcat_vbak .
REFRESH it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_l = 'SALES ORDER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C71'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-seltext_l = 'CREATED ON'.
wa_fieldcat-datatype = 'DATS'.
wa_fieldcat-outputlen = 35.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_l = 'CREATED BY'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 35.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-seltext_l = 'NET VALUE'.
wa_fieldcat-datatype = 'CURR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-emphasize = 'C91'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " FIELDCAT_VBAK
*& Form fieldcat_vbap
text
--> p1 text
<-- p2 text
FORM fieldcat_vbap .
REFRESH it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_l = 'SALES ORDER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 25.
wa_fieldcat-tabname = 'IT_VBAP'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'POSNR'.
wa_fieldcat-seltext_l = 'ITEM NUMBER'.
wa_fieldcat-datatype = 'NUMC'.
wa_fieldcat-outputlen = 25.
wa_fieldcat-tabname = 'IT_VBAP'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_l = 'MATERIAL NUMBER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 30.
wa_fieldcat-tabname = 'IT_VBAP'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATWA'.
wa_fieldcat-seltext_l = 'MATERIAL ENTERED'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 25.
wa_fieldcat-tabname = 'IT_VBAP'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C71'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_l = 'MATERIAL GROUP'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 25.
wa_fieldcat-tabname = 'IT_VBAP'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C81'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " fieldcat_vbap
*& Form fieldcat_MARA
text
--> p1 text
<-- p2 text
FORM fieldcat_mara .
REFRESH it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_l = 'MATERIAL NUMBER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_MARA'.
wa_fieldcat-key = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MTART'.
wa_fieldcat-seltext_l = 'MATERIAL TYPE'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_MARA'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_l = 'MATERIAL GROUP'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_MARA'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_l = 'UNITS OF MEASUREMENT'.
wa_fieldcat-datatype = 'UNIT'.
wa_fieldcat-outputlen = 22.
wa_fieldcat-tabname = 'IT_MARA'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " fieldcat_MARA
*END OF FIELD CATLOUGE*************************
*EVENT CALLS***********************************
*& Form event
text
--> p1 text
<-- p2 text
FORM event_kna1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event_kna1
EXCEPTIONS
list_type_wrong = 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. " event
*& Form event_vbak
text
--> p1 text
<-- p2 text
FORM event_vbak .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event_vbak
EXCEPTIONS
list_type_wrong = 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. " event_vbak
*& Form event_vbaP
text
--> p1 text
<-- p2 text
FORM event_vbap .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event_vbap
EXCEPTIONS
list_type_wrong = 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. " event_vbaP
*END OF EVENT CALLS****************************
*EVENT POPULATE********************************
*& Form eventpopulate
text
--> p1 text
<-- p2 text
FORM eventpopulate_kna1.
READ TABLE it_event_kna1 INTO wa_event_kna1 WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_event_kna1-form = 'TOP_OF_PAGE'.
MODIFY it_event_kna1 FROM wa_event_kna1 TRANSPORTING form WHERE name = wa_event_kna1-name.
ENDIF.
READ TABLE it_event_kna1 INTO wa_event_kna1 WITH KEY name = 'END_OF_LIST'.
IF sy-subrc = 0.
wa_event_kna1-form = 'END_OF_LIST'.
MODIFY it_event_kna1 FROM wa_event_kna1 TRANSPORTING form WHERE name = wa_event_kna1-name.
ENDIF.
READ TABLE it_event_kna1 INTO wa_event_kna1 WITH KEY name = 'USER_COMMAND'.
IF sy-subrc EQ 0.
wa_event_kna1-form = 'USER_COMMAND'.
MODIFY it_event_kna1 FROM wa_event_kna1 TRANSPORTING form WHERE name = wa_event_kna1-name.
ENDIF.
ENDFORM. " eventpopulate
*& Form eventpopulate_vbak
text
--> p1 text
<-- p2 text
FORM eventpopulate_vbak .
READ TABLE it_event_vbak INTO wa_event_vbak WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_event_vbak-form = 'TOP_OF_PAGE_1'.
MODIFY it_event_vbak FROM wa_event_vbak TRANSPORTING form WHERE name = wa_event_vbak-name.
ENDIF.
READ TABLE it_event_vbak INTO wa_event_vbak WITH KEY name = 'USER_COMMAND'.
IF sy-subrc EQ 0.
wa_event_vbak-form = 'USER_COMMAND_1'.
MODIFY it_event_vbak FROM wa_event_vbak TRANSPORTING form WHERE name = wa_event_vbak-name.
ENDIF.
ENDFORM. " eventpopulate_vbak
*& Form eventpopulate_vbap
text
--> p1 text
<-- p2 text
FORM eventpopulate_vbap .
READ TABLE it_event_vbap INTO wa_event_vbap WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_event_vbap-form = 'TOP_OF_PAGE_2'.
MODIFY it_event_vbap FROM wa_event_vbap TRANSPORTING form WHERE name = wa_event_vbap-name.
ENDIF.
READ TABLE it_event_vbap INTO wa_event_vbap WITH KEY name = 'USER_COMMAND_3'.
IF sy-subrc = 0.
wa_event_vbap-form = 'USER_COMMAND_3'.
MODIFY it_event_vbap FROM wa_event_vbap TRANSPORTING form WHERE name = wa_event_vbap-name.
ENDIF.
ENDFORM. " eventpopulate_vbap
*END OF EVENT POPULATE*************************
**SUBROUTINE FOR PAGE **************************
*& Form TOP_OF_PAGE
text
FORM top_of_page.
wa_listheader-typ = 'H'.
wa_listheader-info = 'Customer Details' .
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_listheader-info. "todays date
APPEND wa_listheader TO it_listheader.
CLEAR: wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'No of Records'.
wa_listheader-info = list.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Page No '.
wa_listheader-info = page.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'JELOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
REFRESH it_listheader.
ENDFORM. "TOP_OF_PAGE
*& Form TOP_OF_PAGE1
text
FORM top_of_page_1.
wa_listheader-typ = 'H'.
wa_listheader-info = 'Sales Details'.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_listheader-info. "todays date
APPEND wa_listheader TO it_listheader.
CLEAR: wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'No of Records'.
wa_listheader-info = list.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Page No '.
wa_listheader-info = page.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'JELOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
REFRESH it_listheader.
ENDFORM. "TOP_OF_PAGE1
*& Form TOP_OF_PAGE_2
text
FORM top_of_page_2.
wa_listheader-typ = 'H'.
wa_listheader-info = 'Item Details' .
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_listheader-info. "todays date
APPEND wa_listheader TO it_listheader.
CLEAR: wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'No of Records'.
wa_listheader-info = list.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Page No '.
wa_listheader-info = page.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
REFRESH it_listheader.
ENDFORM. "TOP_OF_PAGE_2
**END FOR SUBROUTINES OF TOP OF PAGE ***********
*SUBROUTINE FOR END OF LIST*******************
*& Form END_OF_LIST
text
FORM end_of_list.
wa_listheader-typ = 'S'.
wa_listheader-key = 'Page No '.
wa_listheader-info = page.
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'JELOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
REFRESH it_listheader.
REFRESH it_listheader.
ENDFORM. "END_OF_LIST
*& Form datafetch_kna1
text
--> p1 text
<-- p2 text
FORM datafetch_kna1 .
SELECT xcpdk kunnr land1 name1 ort01
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN s_kunnr.
DESCRIBE TABLE it_kna1 LINES list1.
list = list1.
ENDFORM. " datafetch_kna1
*& Form displaygrid_kna1
text
--> p1 text
<-- p2 text
FORM displaygrid_kna1 .
page = sy-pagno.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ''
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = i_title_kna1
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event_kna1
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_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_kna1
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. " displaygrid_kna1
*& Form USER_COMMAND
text
-->UCOMM text
-->R_SELFIELD text
FORM user_command
USING ucomm TYPE sy-ucomm
r_selfield TYPE slis_selfield.
SELECT kunnr vbeln erdat ernam netwr
FROM vbak
INTO CORRESPONDING FIELDS OF TABLE it_vbak
WHERE kunnr = r_selfield-value.
PERFORM fieldcat_vbak.
PERFORM event_vbak.
PERFORM eventpopulate_vbak.
PERFORM sort.
PERFORM displaygrid_vbak.
ENDFORM. "USER_COMMAND
*& Form sort
text
--> p1 text
<-- p2 text
FORM sort .
wa_sort-fieldname = 'ERNAM'.
wa_sort-tabname = 'IT_VBAK'.
wa_sort-subtot = 'X'.
wa_sort-up = 'X'.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
ENDFORM. " sort
*& Form DISPLAYGRID_VBAK
text
--> p1 text
<-- p2 text
FORM displaygrid_vbak .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND_1'
i_callback_top_of_page = 'TOP_OF_PAGE_1'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ''
i_grid_title = i_title_vbak
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = it_sort
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event_vbak
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_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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. " DISPLAYGRID_VBAK
*& Form USER_COMMAND1
text
FORM user_command_1
USING ucomm LIKE sy-ucomm
r_selfield1 TYPE slis_selfield.
SELECT vbeln posnr matnr
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = r_selfield1-value.
PERFORM fieldcat_vbap.
PERFORM displaygrid_vbap.
PERFORM event_vbap.
PERFORM eventpopulate_vbap.
ENDFORM. "USER_COMMAND1
*& Form displaygrid_vbap
text
--> p1 text
<-- p2 text
FORM displaygrid_vbap .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND_3 '
i_callback_top_of_page = 'TOP_OF_PAGE_2 '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = i_title_vbap
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event_vbap
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_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_vbap
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. " displaygrid_vbap
&---- -
Hi experts,
Is there any book or link which gives the description for coding in crystal reports.
I am using cube as my database. I am new in this. Is there any link which provides me some basics of grouping, OLAP etc. Please help me on this.
Thankx in Advance,
Rishit
Edited by: Rishit Kamdar on Apr 14, 2009 12:37 PMHi Rishit,
Try the following link for sample reports. You can get to understand the coding in reports by looking at the comments within the formula.
Crystal Reports Samples
http://www.crystalbook.com/crpr/program/book/samples.asp
Thanks,
Amogh -
Interactive report coding without using LVs
hi...can i get coding for interactive report without using ALVs?
Hi Rakkasi....
here i am pastina a Two levels Code for NON ALV Interactive report....
just copy and paste this code into your sample editor program and run it...
and see the code ...its simple...
<b>Reward points if helpful,</b>
Here is the code....
*& Report ZTEJ_INTAB1 *
REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
HEADING.
*TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT LINE-SELECTION.
IF SY-LSIND = 1.
PERFORM SALES_ORD.
ENDIF.
IF SY-LSIND = 2.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-LSIND = 1.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-LSIND = 2.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
*& Form SALES_ORD
*& FIRST SECONDARY LIST FORM
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
*& Form ITEM_DET
*& SECOND SECONDARY LIST FORM
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
Regards,
Tejas -
hi can i know the coding for interactive report
Hi ,
Have a look at this Interactive ALV report.
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
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. "display_alv_report
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Hope this resolves your query.
Reward all the helpful answers.
Regards -
can anybody send coding for classical report?
hi,
check the code below
*& Report ZWK12346
REPORT zwk12346 LINE-SIZE 160 LINE-COUNT 35(3) NO STANDARD PAGE HEADING.
...............DECLARATION OF TABLES..................................
TABLES: mkpf,
mseg,
makt.
.............AT SELECTION SCREEN.....................................*
SELECT-OPTIONS b FOR mkpf-mblnr. "Document no.
PARAMETERS: a TYPE mkpf-mjahr. "Document year.
DATA: am TYPE mseg-dmbtr VALUE 0.
.................DECLARATION OF WORK AREA.............................
DATA: BEGIN OF wa,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
budat TYPE mkpf-budat,
matnr TYPE mseg-matnr,
maktx TYPE makt-maktx,
werks TYPE mseg-werks,
dmbtr TYPE mseg-dmbtr,
END OF wa.
..............INTERNAL TABLE DELARATION..............................*
DATA: itab LIKE STANDARD TABLE OF wa.
...............CONSTANT...............................................
...............GLOBAL VARIABLES.......................................
..............TOP-OF-PAGE.............................................
TOP-OF-PAGE.
FORMAT COLOR COL_HEADING.
WRITE: / sy-uline(150).
WRITE:/ sy-vline,
3 'Document No.',
17 sy-vline,
20 'Document Year',
37 sy-vline,
38 'Posting Date',
54 sy-vline,
56 'Material No.',
72 sy-vline,
74 'Description',
118 sy-vline,
120 'Plant',
130 sy-vline,
132 'Amount',
150 sy-vline.
WRITE: / sy-uline(150).
FORMAT RESET.
.............END-OF-PAGE.............................................
END-OF-PAGE.
WRITE: / sy-uline(150).
FORMAT COLOR COL_TOTAL.
WRITE: /128 'Total', am.
......................START OF SELECTION.............................
START-OF-SELECTION.
SELECT mmblnr mmjahr mbudat qmatnr pmaktx qwerks q~dmbtr INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( mkpf AS m INNER JOIN mseg AS q ON mmblnr = qmblnr )
INNER JOIN makt AS p ON pmatnr = qmatnr )
WHERE m~mjahr = a.
..............Exit if Data is not fetched............................
IF sy-subrc NE 0.
WRITE: / 'No data selected'.
EXIT.
ENDIF.
.....................END OF SELECTION................................
LOOP AT itab INTO wa.
WRITE:/ sy-vline,
3 wa-mblnr COLOR COL_KEY,
17 sy-vline COLOR COL_KEY,
20 wa-mjahr COLOR COL_KEY,
37 sy-vline,
38 wa-budat,54 sy-vline,
56 wa-matnr COLOR COL_KEY,
72 sy-vline,
74 wa-maktx,
118 sy-vline,
120 wa-werks,
130 sy-vline,
132 wa-dmbtr,
150 sy-vline.
ENDLOOP.
WRITE: / sy-uline(150).
regards,
Navneeth.K -
How to create Reports with Radio Buttons, which gives sales information, Delivery information and Billing information. plz mention the detail coding
Thanks,
Priya Ranjanhi,,
*& Report Z50813_SD_REPT_SALESDATA1
REPORT Z50813_SD_REPT_SALESDATA1.
*-----TABLES DECLARATION
TABLES : KNA1, "Customer Master
vbak, "Sales Document Header
VBAP, "Sales Document Item
SSCRFIELDS. "Screen Field Table
& D A T A D E C L A R A T I O N &
DATA : BEGIN OF IT_KNA1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR, "Customer Number
LAND1 TYPE KNA1-LAND1, "Country Key
NAME1 TYPE KNA1-NAME1, "Name
ORT01 TYPE KNA1-ORT01, "City
END OF IT_KNA1.
DATA : BEGIN OF IT_KNA2 OCCURS 0,
KUNNR TYPE KNA1-KUNNR, "Customer Number
LAND1 TYPE KNA1-LAND1, "Country Key
NAME1 TYPE KNA1-NAME1, "Name
ORT01 TYPE KNA1-ORT01, "City
END OF IT_KNA2.
DATA: BEGIN OF IT_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN, "Sales Document
ERDAT TYPE VBAK-ERDAT, "Date
ERNAM TYPE VBAK-ERNAM, "Name of Person
AUART TYPE VBAK-AUART, "Sales Document Type
END OF IT_VBAK.
DATA: BEGIN OF IT_VBAP OCCURS 0,
VBELN TYPE VBAP-VBELN, "Sales Document
POSNR TYPE VBAP-POSNR, "Sales Document Item
MATNR TYPE VBAP-MATNR, "Material Number
MATKL TYPE VBAP-MATKL, "Material group
END OF IT_VBAP.
DATA: V_COUNT TYPE INT4, "Current Row Index
V_LINE LIKE SY-LISEL, "Contents of selected line
V_KUNNR LIKE KNA1-KUNNR.
& S E L E C T I O N S C R E E N &
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : RB1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD RB1.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS : SO_KUNNR FOR KNA1-KUNNR OBLIGATORY.
PARAMETERS : P_HITS(3) TYPE C.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : RB2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD RB2.
SELECTION-SCREEN END OF LINE.
PARAMETERS : P_FILE LIKE RLGRAP-FILENAME DEFAULT 'c:\test'.
SELECTION-SCREEN PUSHBUTTON /33(10) CUSTL USER-COMMAND PUSH1.
SELECTION-SCREEN PUSHBUTTON 58(10) CUSTD USER-COMMAND PUSH2.
SELECTION-SCREEN END OF BLOCK B1.
& I N I T I A L I Z A T I O N &
INITIALIZATION.
MOVE 'LOAD' TO CUSTL.
MOVE 'DISP' TO CUSTD.
& A T L I N E S E L E C T I O N &
AT SELECTION-SCREEN.
PERFORM VALIDATE_KUNNR.
& A T S E L E C T I O N S C R E E N O N V A L U E-R E Q U E S T &
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
& S T A R T O F S E L E C T I O N &
START-OF-SELECTION.
PERFORM CUST_DETAILS.
& S T A R T O F S E L E C T I O N &
TOP-OF-PAGE.
FORMAT COLOR 3 INTENSIFIED OFF.
WRITE :/02(25) SY-REPID.
WRITE : 39(15) 'Page'(010), SY-PAGNO.
FORMAT COLOR OFF.
FORMAT COLOR 6 INTENSIFIED OFF.
FORMAT COLOR COL_HEADING.
ULINE AT :/1(60).
WRITE: /1 SY-VLINE,
2 'Cust Number'(000),
14 SY-VLINE,
16 'Country'(007),
25 SY-VLINE,
26 'City'(008),
42 SY-VLINE,
43 'Region'(009),
60 SY-VLINE.
ULINE AT :/1(60).
FORMAT COLOR COL_HEADING OFF.
& T O P O F P A G E D U R I N G L I N E S E L E C T I O N &
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND EQ 1 OR SY-UCOMM EQ 'VBAK'.
FORMAT COLOR COL_HEADING.
ULINE AT :/1(60).
WRITE : /1 SY-VLINE,
2 'Docu No.'(011),
14 SY-VLINE,
16 'Date'(012),
26 SY-VLINE,
27 'Name'(013),
42 SY-VLINE,
43 'DType'(014),
60 SY-VLINE.
ULINE AT :/1(60).
ELSEIF SY-LSIND EQ 2 OR SY-UCOMM EQ 'VBAK'.
SET PF-STATUS SPACE.
ULINE AT :/1(60).
WRITE : /1 SY-VLINE,
2 'Docu No.'(015),
14 SY-VLINE,
16 'Sales Item'(016),
25 SY-VLINE,
26 'Mat No'(017),
42 SY-VLINE,
43 VBAP-MATKL,
50 'Mat Grp'(018),
60 SY-VLINE.
ULINE AT :/1(60).
ENDIF.
& AT USER-COMMAND &
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'VBAK'.
PERFORM SALES_ITEM.
WHEN 'DELIVERY'.
CLEAR IT_VBAK-VBELN.
GET CURSOR VALUE IT_VBAK-VBELN.
SET PARAMETER ID 'AUN' FIELD IT_VBAK-VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'DISP'.
PERFORM DISPLAY_BASIC.
ENDCASE.
& AT LINE SELECTION &
AT LINE-SELECTION.
IF SY-LSIND = 1.
SET PF-STATUS 'DDDD'.
PERFORM SALES_HEADER.
ELSEIF SY-LSIND = 2.
CASE SY-UCOMM.
WHEN 'PICK'.
SET PF-STATUS SPACE.
PERFORM SALES_ITEM.
WHEN 'DELIVERY'.
CLEAR IT_VBAK-VBELN.
GET CURSOR VALUE IT_VBAK-VBELN.
SET PARAMETER ID 'AUN' FIELD IT_VBAK-VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'DISP'.
PERFORM DISPLAY_BASIC.
ENDCASE.
PERFORM sales_item.
ENDIF.
& AT USER-COMMAND &
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'VBAK'.
PERFORM SALES_ITEM.
WHEN 'DELIVERY'.
CLEAR IT_VBAK-VBELN.
GET CURSOR VALUE IT_VBAK-VBELN.
SET PARAMETER ID 'AUN' FIELD IT_VBAK-VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN 'DISP'.
PERFORM DISPLAY_BASIC.
ENDCASE.
& Form CUST_DETAILS &
FORM CUST_DETAILS .
SELECT KUNNR
LAND1
NAME1
ORT01
FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SO_KUNNR.
IF SY-SUBRC 0.
MESSAGE 'SELECT VALID CUST NO' TYPE 'I'.
ELSE.
LOOP AT IT_KNA1.
v_count = v_count + 1.
IF SY-TABIX < P_HITS.
IF v_count <= p_hits.
MOVE IT_KNA1 TO IT_KNA2.
APPEND IT_KNA2.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF NOT IT_KNA2[] IS INITIAL.
LOOP AT IT_KNA2.
WRITE : /1 SY-VLINE,
2 IT_KNA2-KUNNR,
14 SY-VLINE,
16 IT_KNA2-LAND1,
25 SY-VLINE,
26 IT_KNA2-NAME1,
42 SY-VLINE,
43 IT_KNA2-ORT01,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
ENDIF.
ENDFORM. " CUST_DETAILS
**& Form load_file
*form load_file .
*endform. " load_file
**& Form disp_file
*form disp_file .
*endform. " disp_file
*& Form VALIDATE_KUNNR
FORM VALIDATE_KUNNR .
SELECT SINGLE KUNNR
FROM KNA1
INTO KNA1
WHERE KUNNR = SO_KUNNR.
ENDFORM. " VALIDATE_KUNNR
*& Form SALES_HEADER
FORM SALES_HEADER .
DATA : V_KNA1(13).
V_KNA1 = 'IT_KNA2-KUNNR'.
*get cursor line sy-lilli value v_line
CLEAR V_KUNNR.
GET CURSOR FIELD V_KNA1 VALUE V_KUNNR.
v_kunnr = v_line+1(10).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_KUNNR
IMPORTING
OUTPUT = V_KUNNR.
SELECT VBELN
ERDAT
ERNAM
AUART
FROM VBAK
INTO TABLE IT_VBAK
WHERE KUNNR = V_KUNNR.
IF SY-SUBRC = 0.
LOOP AT IT_VBAK.
WRITE : /1 SY-VLINE,
2 IT_VBAK-VBELN,
14 SY-VLINE,
16 IT_VBAK-ERDAT,
26 SY-VLINE,
27 IT_VBAK-ERNAM,
42 SY-VLINE,
43 IT_VBAK-AUART,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
ENDIF.
ENDFORM. " SALES_HEADER
*& Form SALES_ITEM
FORM SALES_ITEM .
DATA : V_VBELN(13).
V_VBELN = 'IT_VBAK-VBELN'.
CLEAR IT_VBAK-VBELN.
GET CURSOR FIELD V_VBELN VALUE IT_VBAK-VBELN.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IT_VBAK-VBELN
IMPORTING
OUTPUT = IT_VBAK-VBELN.
SELECT VBELN
POSNR
MATNR
MATKL
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN = IT_VBAK-VBELN.
LOOP AT IT_VBAP .
WRITE : /1 SY-VLINE,
2 IT_VBAP-VBELN,
14 SY-VLINE,
16 IT_VBAP-POSNR,
25 SY-VLINE,
26 IT_VBAP-MATNR,
42 SY-VLINE,
43 IT_VBAP-MATKL,
60 SY-VLINE.
ULINE AT :/1(60).
ENDLOOP.
ENDFORM. " SALES_ITEM
*& Form DISP_DOCU
FORM DISPLAY_BASIC .
LOOP AT IT_KNA1 INTO IT_KNA1.
FORMAT HOTSPOT ON.
WRITE : /03 IT_KNA1-KUNNR,
24 IT_KNA1-NAME1.
HIDE IT_KNA1-KUNNR.
ENDLOOP.
ENDFORM. " display_basic
pls reward if useful
regards,
rekha -
Sales Order Information Report that lists information like sales order no, Item no, material no, Quantity, Quantity unit, Net value, Currency,Sub Total, Grand Total. plz mention the detail coding
Hi,
REPORT .
TABLES
TABLES:vbak,
vbap,
tvko,
tvak,
mara,
tvtw,
kna1,
vbpa.
TYPE-POOLS : slis.
GLOBAL TYPES
naming convention: "TY_name"
TYPES : BEGIN OF ty_vbak ,
vbeln TYPE vbak-vbeln ,
auart TYPE vbak-auart , " DRFK904686
vkorg TYPE vbak-vkorg ,
vtweg TYPE vbak-vtweg ,
vkgrp TYPE vbak-vkgrp ,
bstnk TYPE vbak-bstnk , "DRFK904686(+)
kunrsl TYPE vbak-kunnr ,
END OF ty_vbak .
TYPES: BEGIN OF ty_vbap ,
vbeln TYPE vbap-vbeln ,
posnr TYPE vbap-posnr ,
matnr TYPE vbap-matnr ,
matkl TYPE vbap-matkl ,
kwmeng TYPE vbap-kwmeng,
vrkme TYPE vbap-vrkme , "order unit
zmeng TYPE vbap-zmeng ,
zieme TYPE vbap-zieme , "order unit
netpr TYPE vbap-netpr , "price
netwr TYPE vbap-netwr , "DRFK904686(+)
END OF ty_vbap .
TYPES:BEGIN OF ty_vbuk ,
vbeln TYPE vbuk-vbeln,
Start of addition DRFK904686
lfstk TYPE statv ,
lfgsk TYPE statv ,
fkstk TYPE statv ,
End of addition DRFK904686
END OF ty_vbuk .
TYPES:BEGIN OF ty_vbpa ,
vbeln TYPE vbpa-vbeln,
kunrsh TYPE kunnr ,
END OF ty_vbpa .
TYPES:BEGIN OF ty_makt ,
matnr TYPE matnr,
maktx TYPE maktx,
END OF ty_makt.
TYPES:BEGIN OF ty_t023t,
matkl TYPE matkl,
wgbez TYPE wgbez,
END OF ty_t023t.
TYPES:BEGIN OF ty_kna1 ,
kunnr TYPE kunnr ,
name1 TYPE name1_gp,
END OF ty_kna1.
TYPES:BEGIN OF ty_final ,
vbeln TYPE vbak-vbeln ,
auart TYPE vbak-auart ,
vkorg TYPE vbak-vkorg ,
vtweg TYPE vbak-vtweg ,
vkgrp TYPE vbak-vkgrp ,
bstnk TYPE vbak-bstnk , "PO Number; DRFK904686(+)
kunrsl TYPE vbak-kunnr ,
name1 TYPE name1_gp ,
matnr TYPE vbap-matnr ,
maktx TYPE maktx ,
matkl TYPE vbap-matkl ,
wgbez TYPE wgbez ,
kwmeng TYPE vbap-kwmeng ,
vrkme TYPE vbap-vrkme , "order unit
zmenge TYPE vbap-kwmeng ,
netpr TYPE vbap-netpr , " price "vv
netwr TYPE vbap-netwr ,
zmein TYPE vbap-meins ,
kunrsh TYPE kunnr ,
name2 TYPE name1_gp ,
Start of addition DRFK904686
lfstk TYPE statv ,
lfgsk TYPE statv ,
fkstk TYPE statv ,
End of addition DRFK904686
END OF ty_final .
GLOBAL CONSTANTS
naming convention: "c_name"
CONSTANTS: c_sh TYPE vbpa-parvw VALUE 'WE' ,
c_formname_top_of_page TYPE slis_formname VALUE 'F_DISPLAY_TOP_OF_PAGE',
c_en(2) TYPE c VALUE 'EN' ,
c_a TYPE char1 VALUE 'A' .
GLOBAL ELEMENTARY VARIABLES
naming convention: "w_name"
DATA :w_list_top_of_page TYPE slis_t_listheader,
w_kwmeng TYPE vbap-kwmeng ,
w_meins TYPE t006-msehi ,
w_zmein TYPE t006-msehi ,
w_repid TYPE sy-repid ,
w_zmenge TYPE vbap-kwmeng ,
w_events TYPE slis_t_event ,
w_datum TYPE sy-datum ,
w_umrez1 TYPE marm-umrez ,
w_umren1 TYPE marm-umren ,
w_umrez2 TYPE marm-umrez ,
w_umren2 TYPE marm-umren ,
w_text(25) TYPE c .
GLOBAL STRUCTURES
naming convention: "st_name"
DATA:st_vbak TYPE ty_vbak ,
st_vbap TYPE ty_vbap ,
st_vbpa TYPE ty_vbpa ,
st_makt TYPE ty_makt ,
st_t023t TYPE ty_t023t ,
st_knasl TYPE ty_kna1 ,
st_knash TYPE ty_kna1 ,
st_vbuk TYPE ty_vbuk ,
st_final TYPE ty_final .
DATA:st_fieldcat TYPE slis_fieldcat_alv ,
st_layout TYPE slis_layout_alv .
GLOBAL INTERNAL TABLES
naming convention: "i_name"
DATA:i_vbak TYPE TABLE OF ty_vbak ,
i_vbap TYPE TABLE OF ty_vbap ,
i_vbuk TYPE TABLE OF ty_vbuk ,
i_vbpa TYPE TABLE OF ty_vbpa ,
i_makt TYPE TABLE OF ty_makt ,
i_t023t TYPE TABLE OF ty_t023t ,
i_knasl TYPE TABLE OF ty_kna1 ,
i_knash TYPE TABLE OF ty_kna1 ,
i_final TYPE TABLE OF ty_final .
DATA:i_fieldcat TYPE slis_t_fieldcat_alv ,
i_variant TYPE disvariant .
DEFINE m_fieldcat.
add 1 to st_fieldcat-col_pos.
st_fieldcat-fieldname = &1.
st_fieldcat-ref_tabname = &2.
st_fieldcat-seltext_s = &3.
st_fieldcat-seltext_l = &4.
st_fieldcat-datatype = &5.
append st_fieldcat to i_fieldcat.
END-OF-DEFINITION.
PARAMETERS & SELECT-OPTIONS
aming convention: "p_name" & "s_name"
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS : s_vkorg FOR vbak-vkorg OBLIGATORY,
s_vtweg FOR vbak-vtweg OBLIGATORY,
s_kunrsl FOR vbak-kunnr ,
s_kunrsh FOR vbpa-kunnr ,
s_matnr FOR vbap-matnr ,
s_auart for vbak-auart . "DRFK904686
s_datum FOR sy-datum OBLIGATORY DEFAULT sy-datum."DRFK904686
SELECT-OPTIONS : s_vkorg FOR tvko-vkorg OBLIGATORY,
s_vtweg FOR tvtw-vtweg OBLIGATORY,
s_kunrsl FOR kna1-kunnr ,
s_kunrsh FOR kna1-kunnr ,
s_matnr FOR mara-matnr ,
s_auart FOR tvak-auart . "DRFK904686
PARAMETERS: p_meins TYPE vbap-meins.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) text-006 FOR FIELD p_var.
PARAMETERS: p_var TYPE disvariant-variant.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b5.
INITIALIZATION
INITIALIZATION.
Report id assigned to Global variable
w_repid = sy-repid.
EVENTS TABLE BUILD
PERFORM f_eventtab_build USING w_events[].
Processing of listheader
PERFORM f_comment_build USING w_list_top_of_page[].
CLEAR i_variant.
i_variant-report = sy-repid.
Read default display variant (description only, w/o field catalog)
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = c_a
CHANGING
cs_variant = i_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc EQ 0.
p_var = i_variant-variant.
ENDIF.
Start of addition DRFK904686
AT SELECTION-SCREEN ON s_vkorg
Sales Organisation
AT SELECTION-SCREEN ON s_vkorg.
PERFORM f_validate_vkorg.
AT SELECTION-SCREEN ON s_vtweg
Distribution Channel
AT SELECTION-SCREEN ON s_vtweg.
PERFORM f_validate_vtweg.
AT SELECTION-SCREEN ON s_kunrsl
Sold-to-party
AT SELECTION-SCREEN ON s_kunrsl.
IF NOT s_kunrsl[] IS INITIAL.
PERFORM f_validate_cust.
ENDIF.
AT SELECTION-SCREEN ON s_kunrsh
Ship-to-party
AT SELECTION-SCREEN ON s_kunrsh.
IF NOT s_kunrsh[] IS INITIAL.
PERFORM f_validate_shipto.
ENDIF.
AT SELECTION-SCREEN ON s_matnr
Material Number
AT SELECTION-SCREEN ON s_matnr.
IF NOT s_matnr[] IS INITIAL.
PERFORM f_validate_matnr.
ENDIF.
AT SELECTION-SCREEN ON s_auart
Order Type
AT SELECTION-SCREEN ON s_auart.
IF NOT s_auart[] IS INITIAL.
PERFORM f_validate_auart.
ENDIF.
End of addition DRFK904686
AT SELECTION-SCREEN ON VALUE-REQUEST
F4 for Layout Variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
PERFORM f_get_alv_variant CHANGING p_var.
AT SELECTION-SCREEN ON
Validate Layout Variant
AT SELECTION-SCREEN ON p_var.
IF NOT p_var IS INITIAL.
PERFORM f_check_alv_variant USING p_var.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
begin of changes DRFK904686
PERFORM f_fetch_vbuk.
PERFORM f_fetch_vbak.
*perform to fetch the data from vbuk.
*perform to fetch the data from vbak.
PERFORM f_fetch_vbak.
*perform to fetch the data from vbuk.
PERFORM f_fetch_vbuk.
end of changes DRFK904686
*perform to fetch the data from vbpa.
PERFORM f_fetch_vbpa.
*perform to fetch the data from vbap.
PERFORM f_fetch_vbap.
*perform to fetch the material description.
PERFORM f_fetch_makt.
*perform to fetch the material group description.
PERFORM f_fetch_t023t.
*perform to fetch the customer name
PERFORM f_fetch_knasl.
*perform to fetch the customer name
PERFORM f_fetch_knash.
*perofrm to move the data into final table
PERFORM f_move_final.
Finding no of entries in Internal Table
IF LINES( i_final ) EQ 0.
MESSAGE s000 WITH 'No documents found for the selection criteria'(019).
EXIT.
ENDIF.
*perform for fieldcatalog building
PERFORM f_build_fieldcat.
*perform to display the list
PERFORM f_list_dispaly.
*& Form f_validate_vkorg
text
-->P_S_VKORG text
FORM f_validate_vkorg.
SELECT vkorg
FROM tvko
UP TO 1 ROWS
INTO tvko-vkorg
WHERE vkorg IN s_vkorg.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Sales Organization is invalid'(033).
ENDIF.
ENDFORM. " f_validate_vkorg
*& Form f_validate_vtweg
text : This form is used to validate the Distribution Channel
FORM f_validate_vtweg.
SELECT vtweg
FROM tvtw
UP TO 1 ROWS
INTO tvtw-vtweg
WHERE vtweg IN s_vtweg.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Distribution Channel is invalid'(032).
ENDIF.
ENDFORM. " f_validate_vtweg
*& Form f_validate_cust
text: This form is used to validate the Sold-to party .
FORM f_validate_cust.
SELECT kunnr
FROM kna1
UP TO 1 ROWS
INTO kna1-kunnr
WHERE kunnr IN s_kunrsl.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Customer is invalid'(034).
ENDIF.
ENDFORM. " f_validate_cust
*& Form f_validate_shipto
text: This form is used to validate the Ship-to party .
FORM f_validate_shipto.
SELECT kunnr
FROM kna1
UP TO 1 ROWS
INTO kna1-kunnr
WHERE kunnr IN s_kunrsh.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Ship-to party is invalid'(035).
ENDIF.
ENDFORM. " f_validate_shipto
*& Form f_validate_matnr
text: This form is used to validate material.
FORM f_validate_matnr .
SELECT matnr
FROM mara
UP TO 1 ROWS
INTO mara-matnr
WHERE matnr IN s_matnr.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Material is invalid'(036).
ENDIF.
ENDFORM. " f_validate_matnr
*& Form f_validate_auart
text: This form is used to validate Order Type
FORM f_validate_auart .
SELECT auart
FROM tvak
UP TO 1 ROWS
INTO tvak-auart
WHERE auart IN s_auart.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000 WITH 'Order Type is invalid'(037).
ENDIF.
ENDFORM. " f_validate_auart
*& Form sub_get_alv_variant
To display variant selection dialog box
FORM f_get_alv_variant CHANGING p_layvar TYPE disvariant-variant.
CLEAR i_variant.
DATA lw_exit(1) TYPE c.
i_variant-report = sy-repid.
i_variant-username = sy-uname.
Display variant selection dialog box
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = i_variant
i_save = c_a
IMPORTING
e_exit = lw_exit
es_variant = i_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc EQ 0.
IF lw_exit IS INITIAL.
p_layvar = i_variant-variant.
ENDIF.
ELSE.
MESSAGE i000 WITH 'No display variants found'(007).
ENDIF.
ENDFORM. " sub_get_alv_variant
*& Form sub_check_alv_variant
to check whether a display variant exists
FORM f_check_alv_variant USING p_layvar TYPE disvariant-variant.
CLEAR i_variant.
i_variant-report = sy-repid.
i_variant-username = sy-uname.
IF p_layvar NE space.
MOVE p_layvar TO i_variant-variant.
Checks whether a display variant exists
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = c_a
CHANGING
cs_variant = i_variant.
ENDIF.
ENDFORM. "f_check_alv_variant
" sub_check_alv_variant
*& Form f_fetch_vbak
from to fetch sales org, dis chanel,sales group sold to party from vbak
FORM f_fetch_vbak .
*{ begin of change DRFK904686
IF i_vbuk IS NOT INITIAL.
SELECT vbeln
vkorg
vtweg
vkgrp
kunnr
FROM vbak
INTO TABLE i_vbak
WHERE vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND kunnr IN s_kunrsl
AND audat IN s_datum.
SELECT vbeln
auart
vkorg
vtweg
vkgrp
bstnk
kunnr
FROM vbak
INTO TABLE i_vbak
FOR ALL ENTRIES IN i_vbuk
WHERE vbeln EQ i_vbuk-vbeln
AND auart IN s_auart
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND kunnr IN s_kunrsl .
end of change DRFK904686 }
IF sy-subrc EQ 0.
SORT i_vbak BY vbeln.
ELSE.
MESSAGE s000 WITH 'No documents found for the selection criteria'(019).
EXIT.
ENDIF.
ENDIF.
ENDFORM. " f_fetch_vbak
*& Form f_fetch_vbuk
from to fetch open sales doc from vbuk
FORM f_fetch_vbuk .
*{ begin of change BeDRFK904686
IF i_vbak IS NOT INITIAL.
SELECT vbeln
FROM vbuk
INTO TABLE i_vbuk
FOR ALL ENTRIES IN i_vbak
WHERE vbeln EQ i_vbak-vbeln
AND ( lfstk NE 'C'
OR fkstk NE 'C' ) .
SELECT vbeln
lfstk "DRFK904686(+)
lfgsk "DRFK904686(+)
fkstk "DRFK904686(+)
FROM vbuk
INTO TABLE i_vbuk
WHERE ( ( lfstk EQ 'A'
OR lfstk EQ 'B')
OR ( fkstk EQ 'A'
OR fkstk EQ 'B' ) ) .
end of change DRFK904686 }
ENDIF.
ENDFORM. " f_fetch_vbuk
*& Form f_fetch_vbpa
from to fetch ship to party from vbpa
FORM f_fetch_vbpa .
IF i_vbak IS NOT INITIAL.
SELECT vbeln
kunnr
FROM vbpa
INTO TABLE i_vbpa
FOR ALL ENTRIES IN i_vbak
WHERE vbeln EQ i_vbak-vbeln
AND kunnr IN s_kunrsh
AND parvw EQ c_sh.
ENDIF.
ENDFORM. " f_fetch_vbpa
*& Form f_fetch_vbap
from to fetch sales doc, mat no, mat group,order UOM from vbap
FORM f_fetch_vbap .
IF i_vbpa IS NOT INITIAL.
SELECT vbeln
posnr
matnr
matkl
kwmeng
vrkme
zmeng
zieme
netwr
netpr
FROM vbap
INTO TABLE i_vbap
FOR ALL ENTRIES IN i_vbpa
WHERE vbeln EQ i_vbpa-vbeln
AND matnr IN s_matnr.
ENDIF.
ENDFORM. " f_fetch_vbap
*& Form f_fetch_makt
form to fetch the material description
FORM f_fetch_makt .
IF i_vbap IS NOT INITIAL.
SELECT
matnr
maktx
FROM makt
INTO TABLE i_makt
FOR ALL ENTRIES IN i_vbap
WHERE matnr EQ i_vbap-matnr
AND spras EQ c_en.
ENDIF.
ENDFORM. " f_fetch_makt
*& Form f_fetch_t023t
form to fetch the material group description
FORM f_fetch_t023t .
IF i_vbap IS NOT INITIAL.
SELECT
matkl
wgbez
FROM t023t
INTO TABLE i_t023t
FOR ALL ENTRIES IN i_vbap
WHERE spras EQ c_en
AND matkl EQ i_vbap-matkl.
ENDIF.
ENDFORM. " f_fetch_t023t
*& Form f_fetch_kna1
form to fetch the sold to customer name
FORM f_fetch_knasl .
IF i_vbak IS NOT INITIAL.
SELECT
kunnr
name1
FROM kna1
INTO TABLE i_knasl
FOR ALL ENTRIES IN i_vbak
WHERE kunnr EQ i_vbak-kunrsl.
ENDIF.
ENDFORM. " f_fetch_kna1
*& Form f_fetch_knash
form to fetch the ship to customer name
FORM f_fetch_knash .
IF i_vbpa IS NOT INITIAL.
SELECT
kunnr
name1
FROM kna1
INTO TABLE i_knash
FOR ALL ENTRIES IN i_vbpa
WHERE kunnr EQ i_vbpa-kunrsh.
ENDIF.
ENDFORM. " f_fetch_knash
*& Form f_move_final
form for moving all the fields into the final internal table for
*dispalying the final output.
FORM f_move_final .
SORT : i_vbak BY vbeln,
i_vbpa BY vbeln,
i_makt BY matnr,
i_t023t BY matkl,
i_knasl BY kunnr,
i_vbuk BY vbeln,
i_knash BY kunnr.
*looping at i_vbap and moving mat no,mat group,quantity and
*UOM into final table.
LOOP AT i_vbap INTO st_vbap.
IF st_vbap-kwmeng IS INITIAL.
st_vbap-kwmeng = st_vbap-zmeng.
st_vbap-vrkme = st_vbap-zieme.
ENDIF.
MOVE: st_vbap-matnr TO st_final-matnr,
st_vbap-matkl TO st_final-matkl,
st_vbap-kwmeng TO st_final-kwmeng,
st_vbap-netwr TO st_final-netwr,
st_vbap-vrkme TO st_final-vrkme.
IF p_meins IS INITIAL.
MOVE:st_vbap-vrkme TO st_final-zmein ,
st_vbap-kwmeng TO st_final-zmenge.
ELSE.
CLEAR : w_kwmeng,
w_meins,
w_zmein.
*Order Quantity
w_kwmeng = st_vbap-kwmeng.
*Order Unit
w_meins = st_vbap-vrkme.
*Report Unit
w_zmein = p_meins.
CLEAR : w_umrez1,
w_umren1,
w_umrez2,
w_umren2.
SELECT SINGLE umrez
umren
INTO (w_umrez1,
w_umren1)
FROM marm
WHERE matnr EQ st_vbap-matnr
AND meinh EQ w_meins.
SELECT SINGLE umrez
umren
INTO (w_umrez2,
w_umren2)
FROM marm
WHERE matnr EQ st_vbap-matnr
AND meinh EQ w_zmein.
IF w_umrez1 IS NOT INITIAL AND w_umren2 IS NOT INITIAL.
w_zmenge = w_kwmeng * ( w_umren1 / w_umrez1 ) * ( w_umrez2 / w_umren2 ).
update new report unit and quantity
MOVE p_meins TO st_final-zmein.
MOVE w_zmenge TO st_final-zmenge.
ELSE.
if failed to convert update report unit and quantity with order values
MOVE st_vbap-vrkme TO st_final-zmein.
MOVE st_vbap-kwmeng TO st_final-zmenge.
ENDIF.
ENDIF.
Start of changes DRFK904686
To get the delivery, overall and billing status
CLEAR st_vbuk.
READ TABLE i_vbuk INTO st_vbuk
WITH KEY vbeln = st_vbap-vbeln
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE : st_vbuk-lfstk TO st_final-lfstk,
st_vbuk-lfgsk TO st_final-lfgsk,
st_vbuk-fkstk TO st_final-fkstk.
ENDIF.
End of changes DRFK904686
*reading i_vbak and moving sales doc,sales org,dist chanel,
*sales group,and sold to party into the final internal table
CLEAR st_vbak.
READ TABLE i_vbak
INTO st_vbak
WITH KEY vbeln = st_vbap-vbeln
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE: st_vbak-vbeln TO st_final-vbeln ,
st_vbak-vkorg TO st_final-vkorg ,
st_vbak-vtweg TO st_final-vtweg ,
st_vbak-vkgrp TO st_final-vkgrp ,
st_vbak-auart TO st_final-auart ,
st_vbak-bstnk TO st_final-bstnk , "DRFK904686(+)
st_vbak-kunrsl TO st_final-kunrsl.
ENDIF.
*reading i_vbpa and moving ship to party to the final internal table
CLEAR st_vbpa.
READ TABLE i_vbpa
INTO st_vbpa
WITH KEY vbeln = st_vbap-vbeln
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE st_vbpa-kunrsh TO st_final-kunrsh.
ENDIF.
*reading i_makt and moving material description to the final table
CLEAR st_makt.
READ TABLE i_makt
INTO st_makt
WITH KEY matnr = st_vbap-matnr
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE st_makt-maktx TO st_final-maktx.
ENDIF.
*reading i_t023t
CLEAR st_t023t.
READ TABLE i_t023t
INTO st_t023t
WITH KEY matkl = st_vbap-matkl
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE st_t023t-wgbez TO st_final-wgbez.
ENDIF.
*READINGI_KNASL
CLEAR st_knasl.
READ TABLE i_knasl
INTO st_knasl
WITH KEY kunnr = st_final-kunrsl
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE st_knasl-name1 TO st_final-name1.
ENDIF.
*READINGI_KNASH
CLEAR st_knash.
READ TABLE i_knash
INTO st_knash
WITH KEY kunnr = st_final-kunrsh
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE st_knash-name1 TO st_final-name2.
ENDIF.
APPEND st_final TO i_final.
CLEAR st_final.
ENDLOOP.
ENDFORM. " f_move_final
*& Form f_build_fieldcat
form for building the field catalog
FORM f_build_fieldcat .
m_fieldcat 'VKORG' 'VBAK' 'Sales Organisation'(004) 'Sales Organisation'(004) ' '.
m_fieldcat 'VTWEG' 'VBAK' 'Distribution Channel'(005) 'Distribution Channel'(005) ' '.
m_fieldcat 'VKGRP' 'VBAK' 'Sales Group'(008) 'Sales Group'(008) ' '.
m_fieldcat 'VBELN' 'VBAK' 'Sales Document'(009) 'Sales Document'(009) ' '.
m_fieldcat 'AUART' 'VBAK' 'Order Type'(026) 'Order Type'(026) ' '.
m_fieldcat 'BSTNK' 'VBAK' 'PO number'(031) 'PO number'(031) ' '.
m_fieldcat 'KUNRSL' 'VBAK' 'Sold to Party'(010) 'Sold to Party'(010) ' '.
m_fieldcat 'NAME1' 'KNA1' 'Name Sold to'(020) 'Name Sold to'(020) ' '.
m_fieldcat 'KUNRSH' 'VBPA' 'Ship to Party'(011) 'Ship to Party'(011) ' '.
m_fieldcat 'NAME2' 'KNA1' 'Name Ship to'(022) 'Name Ship to'(022) ' '.
m_fieldcat 'KWMENG' 'VBAP' 'Order Quantity'(012) 'Order Quantity'(012) 'QUAN '(014).
m_fieldcat 'VRKME' 'VBAP' 'Order UOM'(017) 'Order UOM'(017) ' '.
m_fieldcat 'ZMENGE' 'VBAP' 'Report Quantity'(013) 'Report Quantity'(013) 'QUAN '(014).
m_fieldcat 'ZMEIN' 'VBAP' 'Report UOM'(018) 'Report UOM'(018) ' '.
m_fieldcat 'NETWR' 'VBAP' 'Net value'(030) 'Net value'(030) ' '.
m_fieldcat 'MATKL' 'VBAP' 'Material Group Description'(023) 'Material Group Description'(023) ' '. "DRFK904686(-)
m_fieldcat 'WGBEZ' 'T023T' 'Material Group'(015) 'Material Group'(015) ' '. "DRFK904686(-)
m_fieldcat 'MATKL' 'VBAP' 'Material Group'(015) 'Material Group'(015) ' '. "DRFK904686(+)
m_fieldcat 'WGBEZ' 'T023T' 'Material Group Description'(023) 'Material Group Description'(023) ' '. "DRFK904686(+)
m_fieldcat 'MATNR' 'VBAP' 'Material Number'(016) 'Material Number'(016) ' '.
m_fieldcat 'MAKTX' 'MAKT' 'Materia Description'(024) 'Material Description'(025) ' '.
Begin of addition DRFK904686
m_fieldcat 'LFSTK' 'VBUK' 'Delivery status'(027) 'Delivery status'(027) 'DelStat' .
m_fieldcat 'LFGSK' 'VBUK' 'Overall delivery status'(028) 'Overall delivery status'(028) ' '.
m_fieldcat 'FKSTK' 'VBUK' 'Billing status'(029) 'Billing status'(029) ' '.
End of addition DRFK904686
ENDFORM. " f_build_fieldcat
*& Form f_list_dispaly
form for displaying the final output in the Alv grid
FORM f_list_dispaly .
st_layout-cell_merge = 'X'.
st_layout-colwidth_optimize = 'X'.
To display the required data
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_buffer_active = 'X'
i_callback_program = w_repid
is_layout = st_layout
it_fieldcat = i_fieldcat[]
i_save = 'A'
is_variant = i_variant
it_events = w_events[]
TABLES
t_outtab = i_final.
ENDFORM. " f_list_dispaly
" f_EVENTTAB_BUILD
FORM F_DISPLAY_TOP_OF_PAGE *
*form for providing the report heading *
event TOP_OF_PAGE *
FORM f_display_top_of_page. "#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = w_list_top_of_page.
ENDFORM. "DISPLAY_TOP_OF_PAGE
*& Form f_EVENTTAB_BUILD
Ereignistabelle Bilden
EVENTS TABLE BUILD
-->U_ER_EVENTS[] text
FORM f_eventtab_build USING p_u_er_events TYPE slis_t_event.
FIELD-SYMBOLS: <fs_event> TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_u_er_events.
READ TABLE p_u_er_events WITH KEY name = slis_ev_top_of_page
ASSIGNING <fs_event>.
IF sy-subrc = 0.
<fs_event>-form = c_formname_top_of_page.
ENDIF.
ENDFORM. " f_EVENTTAB_BUILD
*& Form F_COMMENT_BUILD
Bearbeitung des Listenkopfes
Processing of listheader
-->U_ER_LIST_TOP_OF_PAGE[] text
FORM f_comment_build USING u_er_list_top_of_page TYPE slis_t_listheader. -
my problem is:
at selection screen fields is vbrk-FKDAT & VBRK-KUNRG( NO. OF CUSTOMERS )
FOR THIS SELECTION SELECT BILLING DOCUMENT NO. FROM VBRK WHERE THE BILLING DOCUMENT TYPE
IS FP, ZFP, SI. THE SELECTION DATE SHALL BE EQUAL TO BILLING DATE. IF IN THE VBRK THE CANCELLATION INDICATOR IS
SET THEN IGNOR THIS DOCUMENT . SELECT THE NET VALUE FOR THESE BILLING DOCUMENTS & DISPLAY
AS
DATE STORE1 STOTE2 STOTE3 ..............................
FIELDS ARE AS
vbeln like vbrk-vbeln, " billing document
fkdat like vbrk-fkdat, " billing date
netwr like vbrk-netwr, " net value
fksto like vbrk-fksto, " cancelled indicator
kunag like vbrk-kunag, " sold to party (sale officereport zreport.
*define the table the way wish to sort the data.
data : begin of itab occurs 0,
vbeln like vbrk-vbeln, " billing document
fkdat like vbrk-fkdat, " billing date
netwr like vbrk-netwr, " net value
fksto like vbrk-fksto, " cancelled indicator
kunag like vbrk-kunag, " sold to party (sale office
end of itab.
parameters : pfkdat like vbrk-fkdat.
select-options : s_kunag for vbrk-kunag.
start-of-selection.
select vbeln fkdat netwr fksto kunag into table itab
from vbrk
where fksto = space and
billingtype in ('FP','ZFP','SI') and
fkdat = pfkdat and
kunag in s_kunag.
sort itab.
loop at itab.
write : / itab-fkdat, itab-kunag....
*writing all the fields as required.
endloop.
Regards
Anurag -
Export to Excel from Report region (pl/sql returning sql query)
Hello all,
I have encountered an interesting problem. I have an HTMLDB application with a lot of sql reports coded straight inside the report region. In order to better organize my reports, I decided to
1. make all my report regions of type "Pl/Sql function returning SQL query"
2. create a package inside my database schema which houses all reports as pl/sql functions returning VARCHAR2, the string returned being the report query
3. just calling "return package_name.function_name" from inside my report region of type "Pl/sql function returning SQL query".
This technique seemed to work perfectly. The reports were being returned as expected. I was then asked to provide the "Export to Excel" capability to all my reports. This seemed like a piece of cake using HTML DB's "Export to Excel" extension. However, the "export to excel" does not function correctly when my reports are inside a package in the database. HTML DB tries to export but inside the excel spreadsheet, instead of seeing row data, I see:
<pre>failed to parse SQL query:
ORA-00936: missing expression
<!-- select a.username, b.table_name, 'View Row Data' from schema_browser_user_list a, all_tables b where a.user_id = and a.username = b.owner order by b.table_name asc
--!>
</pre>
I am building my query string inside of my package functions by using a combination of literal strings and concatenating them with some parameter values being passed in. It seems that the HTML DB engine which exports the report to excel does not properly understand the concatenation of variables as can be seen by the empty space to the right of the equal sign in the "a.user_id = " clause. Does anybody have any input as to whether this is a known issue or if I am doing something wrong? Thanks a lot for your time.
- Kenny R.James,
Thanks for the quick reply. I think you mis-understood what I'm doing. All I'm doing is creating packaged functions which return VARCHAR2. The VARCHAR2 that they return is the report query. With this technique, I no longer have to type the query into the HTML DB report region. Instead, I make the report region a "Pl/sql function returning sql query" and make the following call: return package_name.function_name(some_application_items passed in as parameters)
This makes for a much more organized html db app. The problem is that the "export to excel" function does not correctly interpret the VARCHAR2 that my packaged functions are returning. Is this a better explanation? Thanks again for your time.
- Kenny R. -
How to call report rdf with parameter passing..
Hai
I am using 10g developer suite and 10 g report. I want to call some report in the when_button_pressed trigger. like c:\ report\ test.rdf file. we don't have separate application server.more than 10 users using forms and report. Without application server (dedicated application server ) we are using oracle.
How to call the report rdf file from form ? how to pass the parameters ? how to start the report server ? I tried many answers I am not getting correct coding plese help me to find out correct code .. run the report perfectly... from form.
digging here not get correct coding... please help me.. urgent
vasanth.Hai,
It seems same 6i reports coding, I am not aware of that.. Soon I will tell you..
Thanks a lot.
regards
vasanth -
why i cant open my report in JDeveloper tools but i can open in report builder ????
this is the error i get ...
Reports Error Page
Fri Oct 18 15:41:54 SGT 2002
javax.servlet.jsp.JspException: REP-51002: Bind to Reports Server reportserver failed
javax.servlet.jsp.JspException: REP-51002: Bind to Reports Server reportserver failed
int oracle.reports.jsp.ReportTag.doStartTag()
ReportTag.java:329
void MyReport.jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
MyReport.jsp:4
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
HttpJsp.java:119
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
JspPageTable.java:302
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
JspServlet.java:407
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
JspServlet.java:328
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
HttpServlet.java:336
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
ServletRequestDispatcher.java:684
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
ServletRequestDispatcher.java:269
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
HttpRequestHandler.java:735
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
HttpRequestHandler.java:243
void com.evermind.util.ThreadPoolThread.run()
ThreadPoolThread.java:64i still get the same error .. is it i need to set any environment variable or ... any setting ...??
login Oracle Database
user name = system
password = manager
services = dbhenry
setting JSP Report
Report Name = MyReport1
Reports Server = reportserver
Parameters = userid=system/manager@dbhenry
the cource code below is my JSP report coding :
<rw:report id="MyReport1" parameters="server=reportserver&userid=system/manager@dbhenry">
<rw:objects id="objects">
<?xml version="1.0" encoding="WINDOWS-1252" ?>
<report name="MyReport1" DTDVersion="9.0.2.0.0">
<xmlSettings xmlTag="MYREPORT1" xmlPrologType="text">
<![CDATA[<?xml version="1.0" encoding="&Encoding"?>]]>
</xmlSettings>
<data>
<dataSource name="Q_1">
<select>
<![CDATA[SELECT ALL HENRY.TEL, HENRY."ADD", HENRY.NAME, HENRY.ID
FROM HENRY ]]>
</select> -
Variant / or / parameter Tranaction for a report
I want to create a transaction code for a report .
This transaction code should load a variant ( Protect a parameter field ( Value = xyz & user can not change it ) .
Can someone tell me how to proceed ?
Thanks> Sandra Rossi wrote:
> Maybe I am not clear.
Perhaps I should have been more direct as well - this whole requirement sounds like a nonsense idea and the post which has been awarded the correct answer is questionable.
> Even with the protection, I just wanted to warn that the user could change the value by creating a new variant. Thank you Julius for telling about the authorization object S_PROGRAM + field P_ACTION = 'VARIANT', without it we can't use the SAVE button.
Yes, that is what S_PROGRAM does to prevent the SUBMIT of the program, or protect it using groups of programs for which the authorized users (P_ACTION = 'VARIANT') can both maintain and copy the variants of that program group and also submit the reports via their variants (SM37, SA38, shortcuts, etc), but not from the workbench (for that P_ACTION = 'SUBMIT' is required).
> Another preferrable solution, according to me, is to setup a gui status without the SAVE button.
I don't agree. The bigger problem here is that the report coding is not making the correct checks to determine whether the user can run it for what ever they are requesting. Hidding the selection screen or forcing it is mostly an indicator that the quality of the programming is questionable.
A well designed program should validate any input, return or process only the authorized output and provide messages or logs of that which was not returned or processed (or simply not proceed).
> I agree that we may hide programmatically the parameter with LOOP AT SCREEN, but do it in the AT SELECTION-SCREEN OUTPUT event, not in the INITIALIZATION, because the user may also unhide the field by saving to a new variant (by initializing it from a TVARV(C) variable).
Good comment. The user can be expected to influence or maintain directly their own user variables used in variants which are controlled by PIDs. That is also why variant values in selection screens etc.. should not be used for security purposes when they can be controlled by PIDs - they are not intended for that. They are intended for preferences, reusing the last criteria, etc. The user can influence their PIDs in many transactions and nagivation paths, or directly via transaction SU3.
> What do you mean exactly?
> >
Julius Bussche wrote:
> > - The sy-uname protection for the last person to choose the option.
>
In transaction VARCH (but also via SA38 etc) there is a flag called "User Protection" or similar. This will protect the variant from modifications from anyone other than the user (sy-uname) who last flagged it and saved. Others with access to S_PROGRAM for that variant, will not be able to change the variant.
There is a way of unlocking these though... see OSS notes relating to RSVARENT.
This is a way of personalizing variants. It does not protect the program from being executed by others (also with the same selection criteria - if authorized) but prevents others from changing that specific variant. This can be usefull for variants used in periodic background jobs which should not be changed by someone who is not aware that this will create a potential mess.
There are a number of different designs and approaches one can take, depending on how the batch job administration responsibilities are defined and use of variants is intended.
But missing authority-checks in the necessary places is still a "no-brainer"...
Cheers,
Julius -
Need Report for gross profit anaylsis for the month
Hi gurus,
i need this report coding as the client has not provided me much information regarding this.selection screen.Company code ,plant code,materialcode,material type,period,fiscal year.this report format should be in alv .
Sp pls send me the coding for this.
Urs
pradeepCheck below transaction codes and it may be useful
Customer Analysis- Sales - MC+E
Customer Analysis- Cr. Memo - MC+I
Deliveries-Due list - VL04
Billing due list - VF04
Incomplete Billing documents - MCV9
Customer Analysis-Basic List - MCTA
Material Analysis(SIS) - MCTC
Sales org analysis - MCTE
Sales org analysis-Invoiced sales - MC+2
Material Analysis-Incoming orders - MC(E
General- List of Outbound deliveries - VL06f
Material Returns-Analysis - MC+M
Material Analysis- Invoiced Sales - MC+Q
Thanks
Seshu -
Internal tables & select query for clasical report
hello all,
i am a novice in ABAP.i need to retrive data from 4 DB tables to do a classical report. i declared internal tables as below and then retrieved the data as per the below select statements. is there any other way in which i can do the same with a comparitively lesser amt of code.
data: begin of i_vbak occurs 0,
vbeln like vbak-vbeln,
kunnr like vbak-kunnr,
waerk like vbak-waerk,
end of i_vbak.
data: begin of i_vbap occurs 0,
vbeln like vbap-vbeln,
kwmeng like vbap-kwmeng,
posnr like vbap-posnr,
vrkme like vbap-vrkme,
netpr like vbap-netpr,
end of i_vbap.
data: begin of i_lips occurs 0,
vbeln like lips-vbeln,
vgpos like lips-vgpos,
vrkme like lips-vrkme,
lfimg like lips-lfimg,
end of i_lips.
data: begin of i_vbep occurs 0,
vbeln like vbep-vbeln,
posnr like vbep-posnr,
edatu like vbep-edatu,
end of i_vbep.
data: begin of i_out occurs 0,
kunnr like vbak-kunnr,
vbeln like vbak-vbeln,
kwmeng like vbap-kwmeng,
netpr like vbap-netpr,
waerk like vbak-waerk,
vrkme like vbap-vrkme,
lfimg like lips-lfimg,
posnr like vbep-posnr,
edatu like vbep-edatu,
end of i_out.
RETRIVING THE DATA INTO INTERNAL TABLE *
select vbeln kunnr waerk from vbak into table i_vbak where kunnr in
s_kunnr and vbeln in s_vbeln.
select vbeln kwmeng posnr vrkme netpr from vbap into table i_vbap for
all entries in i_vbak where vbeln = i_vbak-vbeln.
select vbeln vgpos vrkme lfimg from lips into table i_lips for all
entries in i_vbak where vbeln = i_vbak-vbeln and vgpos in s_vgpos.
select vbeln posnr edatu from vbep into table i_vbep for all entries in
i_vbak where vbeln = i_vbak-vbeln.
<b>Points are guaranteed for good answers.</b>
Thanks in advance
seenuHi,
If u will use in ALV means how many tables u want u can put it. After that u can maintain one internal table that's enough. Afterthat put select queries after that display the internal table fileds.
If u will ALV report means u have to code same coding for every report slight changes only there.
Herewith i am sending sample ALV REPORT it is useful for u.
REPORT CODING:
REPORT YMS_COLOURALV NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS, ICON.
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: BEGIN OF IMARA OCCURS 0,
LIGHT(4) TYPE C,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKT-MAKTX,
COLOR_LINE(4) TYPE C,
TCOLOR TYPE SLIS_T_SPECIALCOL_ALV, "cell
END OF IMARA.
DATA: XCOLOR TYPE SLIS_SPECIALCOL_ALV.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM WRITE_REPORT.
Get_Data
FORM GET_DATA.
WRITE ICON_GREEN_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'ABC'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for ABC'.
APPEND IMARA.
WRITE ICON_YELLOW_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'DEF'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for DEF'.
APPEND IMARA.
WRITE ICON_RED_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'GHI'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for GHI'.
APPEND IMARA.
LOOP AT IMARA.
IF SY-TABIX = 1.
IMARA-COLOR_LINE = 'C410'. " color line
ENDIF.
IF SY-TABIX = 2. " color CELL
CLEAR XCOLOR.
XCOLOR-FIELDNAME = 'MTART'.
XCOLOR-COLOR-COL = '3'.
XCOLOR-COLOR-INT = '1'. " Intensified on/off
XCOLOR-COLOR-INV = '0'.
APPEND XCOLOR TO IMARA-TCOLOR.
ENDIF.
MODIFY IMARA.
ENDLOOP.
ENDFORM. "get_data
WRITE_REPORT
FORM WRITE_REPORT.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV.
LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.
LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.
PERFORM BUILD_FIELD_CATALOG.
CALL ABAP LIST VIEWER (ALV)
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDCAT
TABLES
T_OUTTAB = IMARA.
ENDFORM. "write_report
BUILD_FIELD_CATALOG
FORM BUILD_FIELD_CATALOG.
DATA: FC_TMP TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
CLEAR: FIELDCAT. REFRESH: FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Status'.
FC_TMP-FIELDNAME = 'LIGHT'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '4'.
FC_TMP-ICON = 'X'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material Number'.
FC_TMP-FIELDNAME = 'MATNR'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '18'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material Type'.
FC_TMP-FIELDNAME = 'MTART'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '10'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material'.
FC_TMP-FIELDNAME = 'MAKTX'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '40'.
FC_TMP-EMPHASIZE = 'C610'. " color column
APPEND FC_TMP TO FIELDCAT.
ENDFORM. "build_field_catalog
Thanks,
Shankar
Maybe you are looking for
-
Excise Item TAB not showing in MIRO
Hi Expert, While doing Miro, Excise Item Tab not showing we have check the details Like Tax code, Chapter ID, and excise rate Material. Kindly help me , Thanks Pranav
-
I am fed up of Z 10... i need to get back to my BB Bold 4/5.. Can you tell me how do i do that.. Also how can i sync my contacts from Z10 with MS Outlook or Mac Address book..
-
Message SR 053 when i send idoc from SAp R/3 4.6C to PI 7
Hi, I try to send idoc from SAP r/3 4.6C to PI 7. I had made ALE configuration in my sender system ( SAP 4.6C) but idocs are not sent to PI. In SM58 i have message "Name or password is incorrect (repeat logon)". Yet i'm sure that user and password a
-
Add calculated field (Query - SQ01)
Hi to all, I would know how can i add a calculated field to a Query (SQ01) ? Can you give me an example of abap code to insert in CODING section ? thks
-
LabVIEW Driver Support for an Agilent 4263B LCR Meter?
Hello All, Has anyone interfaced with an Agilent 4263B LCR meter in LabVIEW? I can interface with the GPIB port using an NI USB-to-GPIB converter, but are there any support VIs out there to make the programatic interface easier? Any help would be m