‎2008 Mar 24 5:27 AM
hi,
if i have two lines on basic list than how can i get different different
secondary list for these two lines on double clicking ?
‎2008 Mar 24 5:32 AM
Hi,
Use AT-LINE-SELECTION.....
Example...
*&---------------------------------------------------------------------*
*& Report ZNAV_INTRACTIVE *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZNAV_INTRACTIVE .
TABLES: VBAP, LIPS, VBRP.
*PARAMETERS : V1 TYPE C RADIOBUTTON GROUP A1,
* V2 TYPE C RADIOBUTTON GROUP A1,
* V3 AS CHECKBOX ,
* V4 AS CHECKBOX .
SELECT-OPTIONS: S_VBELN FOR VBAP-VBELN.
DATA: BEGIN OF IT OCCURS 0,
VBELN LIKE VBAP-VBELN,
L_VBELN LIKE LIPS-VBELN,
B_VBELN LIKE VBRP-VBELN,
END OF IT.
DATA: BEGIN OF IT1 OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
KWMENG LIKE VBAP-KWMENG,
END OF IT1.
DATA: C(10).
START-OF-SELECTION.
SELECT
VBAP~VBELN
LIPS~VBELN
VBRP~VBELN FROM LIPS
INNER JOIN VBAP ON
VBAP~VBELN = LIPS~VGBEL AND
VBAP~POSNR = LIPS~VGPOS
INNER JOIN VBRP ON
VBRP~VGBEL = LIPS~VBELN AND
VBRP~VGPOS = LIPS~POSNR
INTO TABLE IT
WHERE VBAP~VBELN IN S_VBELN.
END-OF-SELECTION.
LOOP AT IT.
WRITE:/ IT-VBELN, IT-L_VBELN , IT-B_VBELN.
HIDE : IT-VBELN, IT-L_VBELN, IT-B_VBELN.
ENDLOOP.
AT LINE-SELECTION.
GET CURSOR FIELD C.
CASE C.
WHEN 'IT-VBELN'.
SELECT
VBELN
POSNR
KWMENG FROM VBAP INTO TABLE IT1
WHERE VBELN = IT-VBELN.
LOOP AT IT1.
WRITE:/ IT1-VBELN , IT1-POSNR, IT1-KWMENG.
ENDLOOP.
WHEN 'IT-L_VBELN'.
SELECT
VBELN
POSNR
LFIMG FROM LIPS INTO TABLE IT1
WHERE VBELN = IT-L_VBELN.
LOOP AT IT1.
WRITE:/ IT1-VBELN , IT1-POSNR, IT1-KWMENG.
ENDLOOP.
WHEN 'IT-B_VBELN'.
SELECT
VBELN
POSNR
FKIMG FROM VBRP INTO TABLE IT1
WHERE VBELN = IT-B_VBELN.
LOOP AT IT1.
WRITE:/ IT1-VBELN , IT1-POSNR, IT1-KWMENG.
ENDLOOP.
ENDCASE.
Reward points if useful....
Regards
AK
‎2008 Mar 24 5:44 AM
hi,
check this example.
REPORT ZALV_NAG.
TYPE-POOLS: SLIS.
tables: znagempl, znagemplsal.
types: begin of ty_znagempl,
eno type zeno,
ename type zename,
city type zename,
country type zename,
phone type zeno,
email type zename,
end of ty_znagempl.
types: begin of ty_znagemplsal,
eno type zeno,
ename type zename,
basic type zbasic,
hra type zhra,
ta type zta,
da type zda,
gross type zgross,
net type znet,
end of ty_znagemplsal.
types: tt_znagempl type STANDARD TABLE OF ty_znagempl,
tt_znagemplsal type STANDARD TABLE OF ty_znagemplsal.
data: it_znagempl type tt_znagempl,
it_znagemplsal type tt_znagemplsal,
wa_znagempl type ty_znagempl,
wa_znagemplsal type ty_znagemplsal.
selection-screen begin of block b1 with frame title text-001.
select-options: s_eno for znagempl-eno.
parameters: p_ename like znagempl-ename.
selection-screen end of block b1.
if not s_eno is initial.
perform get_empl_data.
else.
message e001(znagmsg).
endif.
data: it_events type SLIS_T_EVENT,
it_event type SLIS_T_EVENT,
wa_events type SLIS_alv_EVENT.
data: wa_selfield type SLIS_SELFIELD,
g_ucomm type sy-ucomm.
data: it_eve type SLIS_T_EVENT.
DATA : it_field TYPE slis_t_fieldcat_alv,
it_field1 type slis_t_fieldcat_alv,
wa_field TYPE slis_fieldcat_alv,
wa_field1 type slis_fieldcat_alv.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'ENO'.
wa_field-seltext_m = 'emp_num'.
*wa_field-key = 'x'.
append wa_field to it_field.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'ENAME'.
wa_field-seltext_m = 'empname'.
*wa_field-key = 'x'.
append wa_field to it_field.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'COUNTRY'.
wa_field-seltext_m = 'empcountry'.
*wa_field-key = 'x'.
append wa_field to it_field.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'CITY'.
wa_field-seltext_m = 'empcity'.
*wa_field-key = 'x'.
append wa_field to it_field.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'PHONE'.
WA_FIELD-EDIT = 'X'.
wa_field-seltext_m = 'empphone'.
*wa_field-key = 'x'.
append wa_field to it_field.
wa_field-tabname = 'it_znagempl'.
wa_field-fieldname = 'EMAIL'.
wa_field-seltext_m = 'empmail'.
*wa_field-key = 'x'.
append wa_field to it_field.
*CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = it_eve
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.
wa_events-name = 'USER_COMMAND'.
wa_events-form = 'SUB_SEC_LIST'.
append wa_events to it_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZALV_NAG'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'znagempl'
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = it_field
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = it_events
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_znagempl
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.
&----
*& Form SUB_SEC_LIST
&----
text
----
-->G_UCOMM text
-->WA_SELFIELD text
----
form SUB_SEC_LIST using g_ucomm type syucomm
wa_selfield type SLIS_SELFIELD.
if wa_selfield-fieldname = 'ENO'.
select eno basic hra ta da gross net from znagemplsal into table it_znagemplsal
where eno = wa_selfield-value.
endif.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'ENO'.
wa_field1-seltext_m = 'emp num'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
*wa_field1-tabname = 'it_znagemplsal'.
*wa_field1-fieldname = 'ename'.
*wa_field1-seltext_m = 'emp name'.
*wa_field1-key = 'x'.
*append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'BASIC'.
wa_field1-seltext_m = 'emp basic'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'HRA'.
wa_field1-seltext_m = 'emp hra'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'TA'.
wa_field1-seltext_m = 'emp ta'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'DA'.
wa_field1-seltext_m = 'emp da'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'GROSS'.
wa_field1-seltext_m = 'emp gross salary'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
wa_field1-tabname = 'znagemplsal'.
wa_field1-fieldname = 'NET'.
wa_field1-edit = 'X'.
wa_field1-seltext_m = 'emp netsalary'.
*wa_field1-key = 'x'.
append wa_field1 to it_field1.
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = it_field1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = it_znagemplsal
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.
*clear it_field1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_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_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = it_field1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = it_eve
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_znagemplsal
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.
clear it_field1.
endform. "SUB_SEC_LIST
&----
*& Form get_empl_data
&----
text
----
form get_empl_data.
select eno ename city country phone email from znagempl into table it_znagempl
where eno in s_eno." and ename = p_ename.
endform.
regards,
sreelakshmi
‎2008 Mar 24 5:50 AM
Hi,
We get the interactive list by hiding the the field values and can be used to select the data for the secondary list.
loop at itab.
write: / itab-field1,
itab-field2.
hide: itab-field1,
itab-field2.
endloop.
At line-selection.
select * from dbtable
into table it_detail
where field = itab-field1.
loop at it_detail.
write: it_detail-fld1,
it_detail-fld2.
endloop.
For example if itab contains only two records, and if the user selects a record it will be stored in the hide area with the name of the internal table. But The hide statement will be the after the write statement.
The values stored in the hide fields are from work area of the internal table.
If the record changes the secondary list changes.
Also we get different secondary lists by using command
get cursor field <fieldname> value <fieldvalue>
In this case the for field1 the fieldname is different and for field2 fieldname is different.
In this case according to the cursor position the the lists are defferent
ex: field1 is lifnr and the detail list is display vendor details,
field2 is ebeln and the detail list is PO details.
and also we get detail lists by selecting the pushbutton.
In the basic list there are buttons like vendor general details, banking details. If you select a vendor and select a button, then that vendor is stored in the so called hide area and detail list by checking the sy-ucomm field in the event at user-command.
Reward.
‎2008 Mar 24 5:58 AM
Hi,
Execute the following code and debugg, You can easily get some idea.
TABLES: KNA1,VBAK,VBAP,MARA,MAKT.
DATA: FLDNAME(15).
DATA: LEAD(10) VALUE '0000000000'.
DATA: CNO(10),DNO(10),MNO(18).
ULINE /(58).
SELECT * FROM KNA1.
WRITE:/ SY-VLINE,(15) KNA1-NAME1 COLOR 2,SY-VLINE,(15) KNA1-ORT01 COLOR 2,SY-VLINE,
KNA1-KUNNR COLOR 1,SY-VLINE,(5) KNA1-LAND1 COLOR 2,SY-VLINE.
ENDSELECT.
ULINE /(58).
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND = 1.
WRITE:(76) 'CUSTOMER TRANSACTIONS LIST' COLOR 7 CENTERED.
ULINE /(40).
WRITE:/ SY-VLINE,(10) 'VBELN' COLOR 4,SY-VLINE,(10) 'KUNNR' COLOR 4,SY-VLINE,
(10) 'ERDAT' COLOR 4,SY-VLINE.
ULINE /(40).
ENDIF.
IF SY-LSIND = 2.
WRITE:(76) 'MATERIAL INFO SALES DOC NUM' COLOR 7 CENTERED.
ULINE /(35).
WRITE:/ SY-VLINE,(10) 'VBELN' COLOR 4,SY-VLINE,(18) 'MATNR' COLOR 4,SY-VLINE.
ULINE /(35).
ENDIF.
IF SY-LSIND = 3.
WRITE:(76) 'MATERIAL MASTER DATA NUM' COLOR 7 CENTERED.
ULINE /(46).
WRITE:/ SY-VLINE,(18) 'MATNR' COLOR 4,SY-VLINE,'MBRSH' COLOR 4,SY-VLINE,
'MTART' COLOR 4,SY-VLINE,'MEINS' COLOR 4,SY-VLINE.
ULINE /(46).
ENDIF.
IF SY-LSIND = 4.
WRITE:(76) 'MATERIAL DESCRIPTION' COLOR 7 CENTERED.
ULINE /(65).
WRITE:/ SY-VLINE,(18) 'MATNR' COLOR 4,SY-VLINE,(40) 'MAKTX' COLOR 4,SY-VLINE.
ULINE /(65).
ENDIF.
AT LINE-SELECTION.
IF SY-LSIND = 1.
GET CURSOR FIELD FLDNAME.
IF FLDNAME = 'KNA1-KUNNR'.
CNO = SY-LISEL+38(10).
SHIFT CNO RIGHT DELETING TRAILING SPACE.
OVERLAY CNO WITH LEAD.
SELECT * FROM VBAK WHERE KUNNR = CNO.
WRITE:/ SY-VLINE,VBAK-VBELN COLOR 1,SY-VLINE,VBAK-KUNNR COLOR 2,SY-VLINE,VBAK-ERDAT COLOR 2,SY-VLINE.
ENDSELECT.
ULINE /(40).
ENDIF.
ENDIF.
IF SY-LSIND = 2.
GET CURSOR FIELD FLDNAME.
IF FLDNAME = 'VBAK-VBELN'.
DNO = SY-LISEL+2(10).
SHIFT DNO RIGHT DELETING TRAILING SPACE.
OVERLAY DNO WITH LEAD.
SELECT * FROM VBAP WHERE VBELN = DNO.
WRITE:/ SY-VLINE,VBAP-VBELN COLOR 1,SY-VLINE,VBAP-MATNR COLOR 1.
ENDSELECT.
ULINE /(35).
ENDIF.
ENDIF.
IF SY-LSIND = 3.
GET CURSOR FIELD FLDNAME.
IF FLDNAME = 'VBAP-MATNR'.
MNO = SY-LISEL+15(18).
SHIFT MNO RIGHT DELETING TRAILING SPACE.
OVERLAY MNO WITH LEAD.
SELECT * FROM MARA WHERE MATNR = MNO.
WRITE:/ SY-VLINE,MARA-MATNR COLOR 1,SY-VLINE,(5) MARA-MBRSH,SY-VLINE,(5) MARA-MTART,
SY-VLINE,(5) MARA-MEINS,SY-VLINE.
ENDSELECT.
ULINE /(46).
ENDIF.
ENDIF.
IF SY-LSIND = 4.
GET CURSOR FIELD FLDNAME.
IF FLDNAME = 'MARA-MATNR'.
SELECT * FROM MAKT WHERE MATNR = MNO AND SPRAS = 'E'.
WRITE:/ SY-VLINE,MAKT-MATNR,SY-VLINE,MAKT-MAKTX,SY-VLINE.
ENDSELECT.
ULINE /(65).
ENDIF.
ENDIF.
Reward,if it is useful.
Thanks,
Chandu
‎2008 Mar 24 6:00 AM
hi...
I L attach u a piece of code that will help u sure..
Here i am selecting a line and hold it By HIDE statement... after that In AT Line Selection i m doing one program with wat i ve selected...
LOOP AT it_ekko.
FORMAT COLOR 3.
FORMAT HOTSPOT ON.
WRITE:/ w_check AS CHECKBOX,
sy-vline,
it_ekko-ebeln,
23 sy-vline,
it_ekko-bukrs,
38 sy-vline,
it_ekko-bsart,
59 sy-vline,
it_ekko-lifnr,
76 sy-vline,
it_ekko-zterm,
96 sy-vline,
it_ekko-llief,
115 sy-vline.
HIDE it_ekko-ebeln. " Here i am Capturing a Row value.
FORMAT HOTSPOT OFF.
ENDLOOP.
ELSE.
MESSAGE text-004 TYPE 'E'.
ENDIF.
CLEAR it_ekko.
SET PF-STATUS 'DISPLAY'.
AT LINE-SELECTION. " Here i m doing with value captured with hide..
SELECT konnr
banfn
matnr
ktmng
werks
lgort
FROM ekpo
INTO TABLE it_ekpo
WHERE ebeln = it_ekko-ebeln.
IF sy-subrc EQ 0.
SORT it_ekpo BY matnr.
ENDIF.
PERFORM display USING: 'IT_EKPO-MATNR'.
‎2008 Mar 24 6:36 AM
Hi,
U can also do like below........
data : col like sy-cucol,
lin like sy-curow.
do 5 times.
write: / sy-index,'Hi' .
enddo.
AT LINE-SELECTION.
col = sy-cucol + 40.
lin = sy-curow + 2.
WINDOW STARTING AT sy-cucol sy-curow
ENDING AT col lin.
write: 'u hav selected-',sy-curow,'th line'.Cheers,
jose.