10-09-2007 6:06 AM
hi in alvs i have to swith over to one transaction based on selection on one field so how we can program it can u help me this
10-09-2007 6:10 AM
hi Chaaya.,
try this sample code .
FORM user_command USING r_ucomm LIKE syst-ucomm
rs_selfield TYPE slis_selfield.
CONSTANTS:
lc_x(1) TYPE c VALUE 'X'.
IF r_ucomm = '&IC1'.
CASE rs_selfield-fieldname.
WHEN 'VBELN'.
When Sales Order Document is selected...
SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN .
ENDCASE.
ENDIF.
rs_selfield-refresh = lc_x.
ENDFORM. "USER_COMMAND
and populate this form 'USER_COMMAND' in event catelog of ALV.
<b><i>Reward points if useful</i></b>
Chandra
10-09-2007 6:11 AM
Chaaya,
Interactive ALV's functionality will help u achieve it. Follow the sample code below
report z_alv_interactive.
tables : lfa1,ekko,ekpo.
select-options : vendor for lfa1-lifnr.
data : begin of itab occurs 0,
lifnr like lfa1-lifnr,
name1 like lfa1-name1,
end of itab.
data : begin of jtab occurs 0,
ebeln like ekko-ebeln,
aedat like ekko-aedat,
end of jtab.
data : begin of ktab occurs 0,
ebelp like ekpo-ebelp,
matnr like ekpo-matnr,
end of ktab.
type-pools : slis.
data : repid like sy-repid.
data :lfa1_b type slis_t_fieldcat_alv,
lfa1_w type slis_fieldcat_alv,
ekko_b type slis_t_fieldcat_alv,
ekko_w type slis_fieldcat_alv,
ekpo_b type slis_t_fieldcat_alv,
ekpo_w type slis_fieldcat_alv,
events_b type slis_t_event,
events_w type slis_alv_event.
perform get_val.
repid = sy-repid.
select lifnr name1 from lfa1 into table itab where lifnr in vendor.
*perform val USING USER_COMMAND sel.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
it_fieldcat = lfa1_b
it_events = events_b
tables
t_outtab = itab.
&----
*& Form GET_VAL
&----
text this is to put column headings
----
form get_val.
lfa1_w-fieldname = 'LIFNR'.
lfa1_w-ref_tabname = 'LFA1'.
lfa1_w-ref_fieldname = 'LIFNR'.
append lfa1_w to lfa1_b.
lfa1_w-fieldname = 'NAME1'.
lfa1_w-ref_tabname = 'LFA1'.
lfa1_w-ref_fieldname = 'NAME1'.
append lfa1_w to lfa1_b.
ekko_w-fieldname = 'EBELN'.
ekko_w-ref_tabname = 'EKKO'.
ekko_w-ref_fieldname = 'EBELN'.
append ekko_w to ekko_b.
ekko_w-fieldname = 'AEDAT'.
ekko_w-ref_tabname = 'EKKO'.
ekko_w-ref_fieldname = 'AEDAT'.
append ekko_w to ekko_b.
ekpo_w-fieldname = 'EBELP'.
ekpo_w-ref_tabname = 'EKPO'.
ekpo_w-ref_fieldname = 'EBELP'.
append ekpo_w to ekpo_b.
ekpo_w-fieldname = 'MATNR'.
ekpo_w-ref_tabname = 'EKPO'.
ekpo_w-ref_fieldname = 'MATNR'.
append ekpo_w to ekpo_b.
events_w-name = 'USER_COMMAND'.
events_w-form = 'VAL'.
append events_w to events_b.
endform. "GET_VAL
&----
*& Form VAL
&----
text
----
-->USER_COMMANtext
-->SEL text for retrieving data
----
form val using user_command like sy-ucomm sel type slis_selfield.
data : ven(10) type n,
po(10) type n.
data : mat(10) type c.
if sel-fieldname = 'LIFNR'.
ven = sel-value.
select ebeln aedat from ekko into table jtab where lifnr = ven.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repid
I_STRUCTURE_NAME = EKKO_B
it_fieldcat = ekko_b
it_events = events_b
tables
t_outtab = jtab.
endif.
if sel-fieldname = 'EBELN'.
po = sel-value.
select ebelp matnr from ekpo into table ktab where ebeln = po.
call function 'REUSE_ALV_POPUP_TO_SELECT'
exporting
i_title = 'ITEM DETAILS'
i_tabname = 'EKPO'
it_fieldcat = ekpo_b
i_callback_program = repid
importing
es_selfield = sel
tables
t_outtab = ktab.
endif.
logic to select a record
if sel-fieldname = 'MATNR'.
mat = sel-value.
set parameter id 'MAT' field mat.
call transaction 'MM02' and skip first screen.
endif.
endform. "VAL
Reward if helpful,
Karthik
10-09-2007 6:13 AM
check below code calling two T codes
METHODS: handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_column
es_row_no.
ENDCLASS. "lcl_event_receiver DEFINITION
----
METHOD handle_double_click.
----
To set call transaction for VD03 and VF03
----
METHOD handle_double_click.
DATA: ls_final_table TYPE gty_final,
lv_vbeln TYPE bsid-vbeln.
To set Jump target with call transaction for VD03 and VF03
READ TABLE gt_final
INTO ls_final_table
INDEX es_row_no-row_id.
IF sy-subrc EQ 0.
CLEAR gs_bsid.
READ TABLE gt_bsid INTO gs_bsid
WITH KEY vbeln = ls_final_table-vbeln.
IF sy-subrc EQ 0.
CLEAR: lv_vbeln.
MOVE gs_bsid-vbeln TO lv_vbeln.
ELSE.
READ TABLE gt_bsid INTO gs_bsid
WITH KEY belnr = ls_final_table-vbeln.
IF sy-subrc EQ 0.
CLEAR: lv_vbeln.
MOVE gs_bsid-belnr TO lv_vbeln.
ENDIF.
ENDIF. " READ TABLE gt_bsid
IF lv_vbeln IS NOT INITIAL.
IF e_column EQ 'KUNNR'.
READ TABLE gt_vbrp INTO gs_vbrp WITH KEY vbeln = lv_vbeln BINARY SEARCH.
IF sy-subrc = 0 .
Call Transaction VD03
SET PARAMETER ID 'KUN' FIELD gs_bsid-kunnr.
SET PARAMETER ID 'VKO' FIELD gs_vbrp-vkorg_auft.
SET PARAMETER ID 'VTW' FIELD gs_vbrp-vtweg_auft.
SET PARAMETER ID 'SPA' FIELD gs_vbrp-spart.
CALL TRANSACTION 'VD03' AND SKIP FIRST SCREEN.
ENDIF.
ELSEIF e_column EQ 'VBELN'.
Call Transaction VF03
SET PARAMETER ID 'VF' FIELD lv_vbeln.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
ENDIF. " e_column EQ 'KUNNR'.
ENDIF. " IF lv_vbeln IS NOT INITIAL.
ENDIF. " READ TABLE gt_final
ENDMETHOD. "handle_data_changed_finished
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
Rewards if useful...............
Minal