Hi Everyone,
When i click on sales order number it has to go to transaction code Va02 for that i wrote code as like this....
&----
*& Report ZOPEN_SALES_ORDER
*&
&----
*&
*&
&----
Report ZOPEN_SALES_ORDER1.
TYPE-POOLs : slis.
tables:kna1,mara.
DATA : FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : IMPORT_VARIANT LIKE DISVARIANT.
DATA : XREPID LIKE SY-REPID.
DATA : LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : P_SORT TYPE STANDARD TABLE OF SLIS_SORTINFO_ALV.
DATA : I_EVENTS TYPE SLIS_T_EVENT,
I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
T_REPID LIKE SY-REPID.
TYPES: BEGIN OF ty_report.
INCLUDE STRUCTURE BAPIORDERS.
TYPES: KDMAT TYPE VBAP-KDMAT,
aedat TYPE sy-datum,
MENGE TYPE BAPIORDERS-DLV_QTY,
END OF ty_report.
DATA: it_report TYPE STANDARD TABLE OF ty_report with HEADER LINE,
wa_report TYPE ty_report.
data: cust type BAPI1007-CUSTOMER,
p_sales type BAPIORDERS-SALES_ORG,
vbeln type vbap-vbeln.
selection-screen begin of block bk1 with frame title text-001.
PARAMETERS :p_cust type BAPI1007-CUSTOMER .
*PARAMETERS p_sales type BAPIORDERS-SALES_ORG .
PARAMETERS: p_matnr type mara-matnr.
parameters: p_sd_doc type BAPIORDERS-SD_DOC.
PARAMETERS: p_date type BAPIORDERS-REQ_DATE.
PARAMETERS: p_plant type vbap-werks.
*PARAMETERS P_KDMAT TYPE VBAP-KDMAT.
*PARAMETERS P_WERKS TYPE VBAP-WERKS.
*PARAMETERS P_PO TYPE EKKO-ebeln.
selection-screen end of block bk1.
at SELECTION-SCREEN .
if P_cust is INITIAL and p_matnr is INITIAL and P_sd_doc is INITIAL
and P_date is INITIAL and p_plant is INITIAL. .
message e000(0) with 'Please Fill At Least One Field '.
endif.
If p_cust is not INITIAL .
select single VKORG from vbak into p_sales where kunnr eq p_cust.
message 'Execute The Repport' Type 'E'.
elseif p_matnr is not INITIAL .
clear p_cust.
clear p_sales.
select single VBELN from vbap into vbeln where matnr eq p_matnr.
if vbeln is not INITIAL.
SELECT single kunnr vkorg from vbak into (cust,p_sales) where vbeln eq vbeln.
p_cust = cust.
p_sales = p_sales.
endif.
elseif P_sd_doc is not INITIAL.
clear p_cust.
clear p_sales.
SELECT single kunnr vkorg from vbak into (cust,p_sales) where vbeln eq P_SD_DOC.
p_cust = cust.
p_sales = p_sales.
elseif p_date is not initial.
clear vbeln.
clear p_cust.
clear p_sales.
select single VBELN from vbep into vbeln where EDATU eq p_date and POSNR = '10' and etenr = '0001'.
if vbeln is not INITIAL.
SELECT single kunnr vkorg from vbak into (cust,p_sales) where vbeln eq vbeln.
p_cust = cust.
p_sales = p_sales.
endif.
elseif p_plant is not INITIAL.
clear vbeln.
clear p_cust.
clear p_sales.
select single VBELN from vbap into vbeln where werks eq p_plant.
if vbeln is not INITIAL.
SELECT single kunnr vkorg from vbak into (cust,p_sales) where vbeln eq vbeln.
p_cust = cust.
p_sales = p_sales.
endif.
endif.
INITIALIZATION.
T_REPID = SY-REPID.
CONSTANTS:C_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
START-OF-SELECTION.
CALL FUNCTION 'BAPI_SALESORDER_GETLIST'
EXPORTING
CUSTOMER_NUMBER = p_cust
SALES_ORGANIZATION = p_sales
MATERIAL = p_matnr
DOCUMENT_DATE = p_date
DOCUMENT_DATE_TO =
PURCHASE_ORDER =
TRANSACTION_GROUP = 0
PURCHASE_ORDER_NUMBER =
MATERIAL_EVG =
IMPORTING
RETURN =
TABLES
SALES_ORDERS = it_report
.
LOOP AT it_report INTO wa_report.
SELECT SINGLE KDMAT INTO wa_report-KDMAT FROM VBAP
WHERE VBELN = wa_report-SD_DOC AND POSNR = wa_report-ITM_NUMBER.
SELECT SINGLE aedat FROM ekko Into wa_report-aedat
where ebeln = wa_report-PURCH_NO.
wa_report-menge = wa_report-REQ_QTY - wa_report-dlv_qty.
select single edatu from vbep into wa_
MODIFY it_report FROM wa_report INDEX SY-TABIX.
ENDLOOP.
PERFORM DISPLAY.
FORM DISPLAY .
PERFORM FIELDCAT_INIT USING FIELDCAT[].
PERFORM LAYOUT_BUILD USING LAYOUT.
PERFORM EVENTTAB_BUILD USING I_EVENTS.
PERFORM COMMENT_BUILD USING I_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = T_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = FIELDCAT
IS_LAYOUT = LAYOUT
IT_EVENTS = I_EVENTS[]
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = it_report
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
FORM FIELDCAT_INIT USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : CNTR TYPE I.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'SD_DOC'.
LS_FIELDCAT-SELTEXT_L = 'Sales Order'.
LS_FIELDCAT-HOTSPOT = 'X'. " HAND APPEARS.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'ITM_NUMBER'.
LS_FIELDCAT-SELTEXT_L = 'Item Number'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'SOLD_TO'.
LS_FIELDCAT-SELTEXT_L = 'Customer Number'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'NAME'.
LS_FIELDCAT-SELTEXT_L = 'Customer NAME'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'MATERIAL'.
LS_FIELDCAT-SELTEXT_L = 'Material'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'SHORT_TEXT'.
LS_FIELDCAT-SELTEXT_L = 'Material Short Text'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'KDMAT'.
LS_FIELDCAT-SELTEXT_L = 'Customer Material'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'PLANT'.
LS_FIELDCAT-SELTEXT_L = 'Plant'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'PURCH_NO'.
LS_FIELDCAT-SELTEXT_L = 'Purchase Order Nuber'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'AEDAT'.
LS_FIELDCAT-SELTEXT_L = 'PO Date'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'REQ_QTY'.
LS_FIELDCAT-SELTEXT_L = 'Sales Order Quantity'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'REQ_DATE'.
LS_FIELDCAT-SELTEXT_L = 'Required Date'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'DLV_QTY'.
LS_FIELDCAT-SELTEXT_L = 'Delivered Quantity'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'MENGE'.
LS_FIELDCAT-SELTEXT_L = 'Open Quantity'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'CREATION_DATE'.
LS_FIELDCAT-SELTEXT_L = 'Creation Date'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'DOC_STATUS'.
LS_FIELDCAT-SELTEXT_L = 'Sales Document Status'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'NET_PRICE'.
LS_FIELDCAT-SELTEXT_L = 'Net Price'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'COND_P_UNT'.
LS_FIELDCAT-SELTEXT_L = 'Condition Pricing Unit'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'COND_UNIT'.
LS_FIELDCAT-SELTEXT_L = 'Condition Unit'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
CLEAR LS_FIELDCAT.
CNTR = CNTR + 1.
LS_FIELDCAT-COL_POS = CNTR.
LS_FIELDCAT-FIELDNAME = 'NET_VALUE'.
LS_FIELDCAT-SELTEXT_L = 'Net Value in Document Currency'.
LS_FIELDCAT-OUTPUTLEN = 15.
APPEND LS_FIELDCAT TO FIELDCAT.
endform.
FORM LAYOUT_BUILD USING LAYOUT TYPE SLIS_LAYOUT_ALV.
LAYOUT-ZEBRA = 'X'.
LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
LAYOUT-BOX_TABNAME = 'ITAB'.
LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " layout_build
&----
*& Form eventtab_build
&----
Initialize events
----
-->L_EVENTS Table used to store the events
----
FORM EVENTTAB_BUILD USING L_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = L_EVENTS.
READ TABLE L_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE C_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO L_EVENTS.
ENDIF.
ENDFORM. "eventtab_build
&----
*& Form comment_build
&----
----
-->L_LIST_TOP_OF_PAGE Table used to store the list header
----
FORM COMMENT_BUILD USING L_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
DATA: DATE1(200) TYPE C.
DATA: DATE2(4) TYPE C.
DATA: DATE3(12) TYPE C.
DATA: DATE4(12) TYPE C.
DATA: TIME1(200) TYPE C.
DATA: TIME2(4) TYPE C.
DATA: VALUE1(100).
DATA: VALUE2(50).
CONCATENATE SY-UZEIT+0(2) ':'
SY-UZEIT+2(2) ':'
SY-UZEIT+4(2) INTO TIME1.
DATE2 = SY-DATUM+6(2).
CONCATENATE DATE2 '/' INTO DATE1." separated by space.
DATE2 = SY-DATUM+4(2).
CONCATENATE DATE1 DATE2 '/' INTO DATE1.
DATE2 = SY-DATUM+0(4).
CONCATENATE DATE1 DATE2 INTO DATE1.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'Open Sales Report'.
APPEND LS_LINE TO L_LIST_TOP_OF_PAGE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'User Name :'.
LS_LINE-INFO = SY-UNAME.
APPEND LS_LINE TO L_LIST_TOP_OF_PAGE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'Execution Date :'.
LS_LINE-INFO = DATE1.
APPEND LS_LINE TO L_LIST_TOP_OF_PAGE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'Execution Time :'.
LS_LINE-INFO = TIME1.
APPEND LS_LINE TO L_LIST_TOP_OF_PAGE.
ENDFORM. "comment_build
&----
*& Form top_of_page
&----
SAP Logo on top of page
----
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LIST_TOP_OF_PAGE.
ENDFORM. "top_of_page
*FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM
*RS_SELFIELD TYPE SLIS_SELFIELD.
FORM USER_COMMAND USING r_ucomm like sy-ucomm
ls_selfield TYPE slis_selfield.
READ TABLE it_report ."into it_report INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
CASE r_UCOMM.
WHEN 'SD_DOC'.
SET PARAMETER ID 'AUN' FIELD IT_REPORT-SD_DOC.
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
clear IT_report-SD_DOC.
endcase.
ENDIF.
endform.
Pls correct me .....