Problem in AT LINE SELECTION event
Hi All,
I have a problem in AT LINE SELECTION event.
I have an interactive report.
In the report after selection on Selection Screen
i have to show some totals.
Now when I click on the no wgich is shown against the total
the report should further drill down on the details
like showing Order No,Material Description etc.
Breakdown totaling qty of ASOu2019s against u2018Kit delivery areau2019 column
= 100
Breakdown totaling qty of ASOu2019s against u2018Kit req timeu2019 column = 100
Breakdown totaling qty of ASOu2019s against u2018delivered byu2019 column
KSINGH 1.
BJALLOS 5.
Breakdown totaling qty of ASOu2019s against u2018Kit req dateu2019 column
Now my problem is that first two breakdowns of total are constant.
But as you can see afainst Delivered By and against Date it can be dynamic.
In first two cases since i Knew there positioning in the screen i show them using sy-lilli.
But how to show for other two totals.
Please help me on this with some code example if you have.
Thanks in Advance,
Saket.
hello saket,
i m not really clear with ur problem,
still i can tell u hide the all the fields in
start-of-selection,that u gonna required in at line selection,
and then u can use them to total or for displaying corresponding data.
Similar Messages
-
Problem in triggering at line selection event in ooabap
hi ppl,
Below is the code i did so far using interactive reports,but its showing error "statement END METHOD is missing".
REPORT y_program_on_ooabap1.
CLASS CL DEFINITION
DATA: lf_matnr TYPE matnr.
INITIALIZATION.
PARAMETERS: pa_matnr TYPE matnr.
SELECT-OPTIONS: so_matnr FOR lf_matnr.
CLASS cl DEFINITION
CLASS cl DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF tw,
matnr TYPE matnr,
ernam TYPE ernam,
END OF tw,
tt TYPE STANDARD TABLE OF tw.
TYPES: BEGIN OF tw1,
matnr TYPE matnr,
maktx TYPE maktx,
END OF tw1.
DATA: itab TYPE tt,
wa TYPE tw,
wa1 TYPE tw1.
METHODS: retrive_data,
display_data.
ENDCLASS. "CL DEFINITION
CLASS CL IMPLEMENTATION
CLASS cl IMPLEMENTATION.
METHOD: retrive_data.
SELECT matnr ernam INTO TABLE itab FROM mara
WHERE matnr IN so_matnr.
"RETRIVE_DATA
ENDMETHOD. "retrive_data
METHOD: display_data.
LOOP AT itab INTO wa.
WRITE:/ wa-matnr,
wa-ernam.
ENDLOOP.
AT line-selecion.
CASE: sy-lsind.
WHEN 1.
SELECT SINGLE matnr maktx INTO CORRESPONDING FIELDS OF wa FROM makt WHERE matnr = wa-matnr.
WRITE:/ wa-matnr,
wa-maktx.
ENDMETHOD. "display_data
"DISPLAY_DATA
ENDCLASS. "CL IMPLEMENTATION
DATA: obj TYPE REF TO cl.
START-OF-SELECTION.
CREATE OBJECT: obj.
END-OF-SELECTION.
CALL METHOD obj->retrive_data.
CALL METHOD obj->display_data.hi,
you cannot put Events in methods. instead do as call the method in the event you want like below, or create a new method and call it in the At line selection Event.
CLASS cl IMPLEMENTATION.
METHOD: retrive_data.
SELECT matnr ernam INTO TABLE itab FROM mara
WHERE matnr IN so_matnr.
"RETRIVE_DATA
ENDMETHOD. "retrive_data
METHOD: display_data.
LOOP AT itab INTO wa.
WRITE:/ wa-matnr,
wa-ernam.
ENDLOOP.
ENDMETHOD. "display_data
METHOD: Drilldown
SELECT SINGLE matnr maktx INTO CORRESPONDING FIELDS OF wa FROM makt WHERE matnr = wa-matnr.
WRITE:/ wa-matnr,
wa-maktx.
ENDMETHOD. "Drilldown
ENDCLASS. "CL IMPLEMENTATION
DATA: obj TYPE REF TO cl.
START-OF-SELECTION.
CREATE OBJECT: obj.
END-OF-SELECTION.
CALL METHOD obj->retrive_data.
CALL METHOD obj->display_data.
AT line-selecion.
CASE: sy-lsind.
WHEN 1.
CALL METHOD obj->drilldown.
ENDCASE.
Hope this helps you
Raj
Edited by: Raj on Dec 5, 2008 9:57 AM -
Error in at line-selection event...
Hello experts,
In my report, I am hiding the values of BUKRS, ANLN1 and ANLN2 during my loop.
I am using field symbols as my work area for my itab which is it_output. The problem
is, when I try to do this in my at line-selection event:
at line-selection.
data: cursorfield(20) type c.
get cursor field cursorfield.
case cursorfield.
when '<FS_OUTPUT>-ASSET_SUBNUM'.
SET PARAMETER ID 'BUK' FIELD <FS_OUTPUT>-bukrs.
SET PARAMETER ID 'AN1' FIELD <FS_OUTPUT>-asset.
SET PARAMETER ID 'AN2' FIELD <FS_OUTPUT>-anln2.
endcase.
It says that it can't recognize the fields. What am I doing wrong? By the way, I am using
ABAP Objects in my report. Help would be greatly appreciated. Thanks again guys and take care!Hi Viraylab,
Have you assigned the fieldsymbols ?
ASSIGN IT_OUTPUT to <FS_OUTPUT>.
Cheers
VJ
Message was edited by: Vijayendra Rao -
"AT LINE-SELECTION" event in a Query (SQ01 or SQ02)
Hi there
I want to know if it's possible to put "AT LINE-SELECTION" event in an ABAP Query? I'm trying that in SQ02 - the infoset - but nothing happens when I double-click on the output lines. I cannot find any place to type codes in SQ01.
The purpose is to call a transaction VA03 when people double-click on the output field "sales order number" and here is the code I put in "Free coding" section of SQ02.
AT LINE-SELECTION.
DATA: w_cucol TYPE sy-cucol.
w_cucol = sy-cucol + sy-staco.
w_cucol = w_cucol - 2.
IF w_cucol BETWEEN 103 AND 119.
SET PARAMETER ID 'AUN' FIELD vbkd-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
yuHi ,
You must create infoset based on join VBKD with VBAK and LIPS.
Also you must put VBAK-VBELN and LIPS-VBELN as a column output.
There is no problem to use 2 report assignment ( there is no loss ).
There is no necessity to use " some ABAP code at line-selection ".
This works.
By the way is more correct from the beginning to formulate the issue including all the data about your problem and not include them by adding a little at a time.
Regards. -
AT LINE SELECTION EVENT IN BLOCKED ALV
hi friends,
i have developed blocked alv report.
i wanted to use at line selection event..
pls halp me if u know..
thanks and regards,
shridevi.lhi
there is no particulat at line selection event in REUSE_ALV_EVENTS_GET.
at line selection we get fct 'PICK' code for double click.
so using that fct code we do the operations using at user_command. which is other way of implemnting at line-selection
If any quieries revert, reward if helpful
Try this code
*& Report ZP_ALV8
REPORT zp_alv8.
TABLES: kna1, mara, vbak, mard.
TYPE-POOLS: slis.
**TYPE DECLERATION
TYPES: BEGIN OF ty_kna1,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
END OF ty_kna1.
TYPES: BEGIN OF ty_mara,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
END OF ty_mara.
TYPES: BEGIN OF ty_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
END OF ty_vbak.
TYPES: BEGIN OF ty_mard,
matnr LIKE mard-matnr,
werks LIKE mard-werks,
lgort LIKE mard-lgort,
END OF ty_mard.
**DATA DECLERATION
DATA: it_kna1 TYPE STANDARD TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1.
DATA: it_mara TYPE STANDARD TABLE OF ty_mara,
wa_mara TYPE ty_mara.
DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
DATA: it_mard TYPE STANDARD TABLE OF ty_mard,
wa_mard TYPE ty_mard.
DATA: it_fieldcat_kna1 TYPE slis_t_fieldcat_alv,
wa_fieldcat_kna1 TYPE slis_fieldcat_alv,
it_fieldcat_mara TYPE slis_t_fieldcat_alv,
wa_fieldcat_mara TYPE slis_fieldcat_alv,
it_fieldcat_vbak TYPE slis_t_fieldcat_alv,
wa_fieldcat_vbak TYPE slis_fieldcat_alv,
it_fieldcat_mard TYPE slis_t_fieldcat_alv,
wa_fieldcat_mard TYPE slis_fieldcat_alv.
DATA: it_event_kna1 TYPE slis_t_event,
wa_event_kna1 TYPE slis_alv_event,
it_event_mara TYPE slis_t_event,
wa_event_mara TYPE slis_alv_event,
it_event_vbak TYPE slis_t_event,
wa_event_vbak TYPE slis_alv_event,
it_event_mard TYPE slis_t_event,
wa_event_mard TYPE slis_alv_event.
DATA: wa_layout TYPE slis_layout_alv,
it_listheader TYPE slis_t_listheader,
wa_listheader TYPE slis_listheader.
selection-screen begin of block b1 with frame title text-001.
select-options: s_kunnr for kna1-kunnr default '1000' to '1050'.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-002.
select-options: s_matnr for mara-matnr default '1' to '100'.
selection-screen end of block b2.
**INITIALIZATION
INITIALIZATION.
PERFORM layout.
PERFORM fieldcat_kna1.
PERFORM fieldcat_mara.
PERFORM event_kna1.
PERFORM event_mara.
PERFORM eventpopulate_kna1.
PERFORM eventpopulate_mara.
**START OF SELECTION AND FIRST LIST DISPLAY
START-OF-SELECTION.
SELECT kunnr land1 name1 ort01
FROM kna1
INTO TABLE it_kna1
where kunnr in s_kunnr.
UP TO 10 ROWS.
SELECT matnr ersda ernam
FROM mara
INTO TABLE it_mara
where matnr in s_matnr.
UP TO 20 ROWS.
PERFORM display.
**FORM LAYOUT
*& Form layout
text
--> p1 text
<-- p2 text
FORM layout .
wa_layout-zebra ='X'.
wa_layout-get_selinfos = 'X'.
wa_layout-key_hotspot = 'X'.
ENDFORM. " layout
*FIELD CATALOUGE*******************************
*& Form fieldcat_kna1
text
--> p1 text
<-- p2 text
FORM fieldcat_kna1 .
REFRESH it_fieldcat_kna1.
CLEAR wa_fieldcat_kna1.
wa_fieldcat_kna1-fieldname = 'KUNNR'.
wa_fieldcat_kna1-seltext_l = 'CUSTOMER NUMBER'.
wa_fieldcat_kna1-datatype = 'CHAR'.
wa_fieldcat_kna1-outputlen = 30.
wa_fieldcat_kna1-tabname = 'IT_KNA1'.
wa_fieldcat_kna1-key = 'X'.
wa_fieldcat_kna1-hotspot = 'X'.
wa_fieldcat_kna1-col_pos = 1.
wa_fieldcat_kna1-emphasize = 'C21'.
APPEND wa_fieldcat_kna1 TO it_fieldcat_kna1.
CLEAR wa_fieldcat_kna1.
wa_fieldcat_kna1-fieldname = 'LAND1'.
wa_fieldcat_kna1-seltext_l = 'COUNTRY CODE'.
wa_fieldcat_kna1-datatype = 'CHAR'.
wa_fieldcat_kna1-outputlen = 30.
wa_fieldcat_kna1-tabname = 'IT_KNA1'.
wa_fieldcat_kna1-hotspot = 'X'.
wa_fieldcat_kna1-col_pos = 2.
wa_fieldcat_kna1-emphasize = 'C31'.
APPEND wa_fieldcat_kna1 TO it_fieldcat_kna1.
CLEAR wa_fieldcat_kna1.
wa_fieldcat_kna1-fieldname = 'NAME1'.
wa_fieldcat_kna1-seltext_l = 'CUSTOMER NAME'.
wa_fieldcat_kna1-datatype = 'CHAR'.
wa_fieldcat_kna1-outputlen = 30.
wa_fieldcat_kna1-tabname = 'IT_KNA1'.
wa_fieldcat_kna1-hotspot = 'X'.
wa_fieldcat_kna1-col_pos = 3.
wa_fieldcat_kna1-emphasize = 'C71'.
APPEND wa_fieldcat_kna1 TO it_fieldcat_kna1.
CLEAR wa_fieldcat_kna1.
wa_fieldcat_kna1-fieldname = 'ORT01'.
wa_fieldcat_kna1-seltext_l = 'COUNTRY '.
wa_fieldcat_kna1-datatype = 'CHAR'.
wa_fieldcat_kna1-outputlen = 30.
wa_fieldcat_kna1-tabname = 'IT_KNA1'.
wa_fieldcat_kna1-hotspot = 'X'.
wa_fieldcat_kna1-col_pos = 4.
wa_fieldcat_kna1-emphasize = 'C51'.
APPEND wa_fieldcat_kna1 TO it_fieldcat_kna1.
CLEAR wa_fieldcat_kna1.
ENDFORM. " fieldcat_kna1
*& Form fieldcat_kna2
text
FORM fieldcat_mara .
wa_fieldcat_mara-fieldname = 'MATNR'.
wa_fieldcat_mara-seltext_l = 'MATERIAL NUMBER'.
wa_fieldcat_mara-datatype = 'CHAR'.
wa_fieldcat_mara-outputlen = 30.
wa_fieldcat_mara-tabname = 'IT_MARA'.
wa_fieldcat_mara-key = 'X'.
wa_fieldcat_mara-hotspot = 'X'.
wa_fieldcat_mara-col_pos = 1.
wa_fieldcat_mara-emphasize = 'C21'.
APPEND wa_fieldcat_mara TO it_fieldcat_mara.
CLEAR wa_fieldcat_mara.
wa_fieldcat_mara-fieldname = 'ERSDA'.
wa_fieldcat_mara-seltext_l = 'CREATED ON'.
wa_fieldcat_mara-datatype = 'CHAR'.
wa_fieldcat_mara-outputlen = 30.
wa_fieldcat_mara-tabname = 'IT_MARA'.
wa_fieldcat_mara-hotspot = 'X'.
wa_fieldcat_mara-col_pos = 2.
wa_fieldcat_mara-emphasize = 'C41'.
APPEND wa_fieldcat_mara TO it_fieldcat_mara.
CLEAR wa_fieldcat_mara.
wa_fieldcat_mara-fieldname = 'ERNAM'.
wa_fieldcat_mara-seltext_l = 'CREATED BY'.
wa_fieldcat_mara-datatype = 'CHAR'.
wa_fieldcat_mara-outputlen = 30.
wa_fieldcat_mara-tabname = 'IT_MARA'.
wa_fieldcat_mara-hotspot = 'X'.
wa_fieldcat_mara-col_pos = 3.
wa_fieldcat_mara-emphasize = 'C61'.
APPEND wa_fieldcat_mara TO it_fieldcat_mara.
CLEAR wa_fieldcat_mara.
ENDFORM. "fieldcat_kna2
*& Form FIELDCAT_VBAK
text
FORM fieldcat_vbak.
wa_fieldcat_vbak-fieldname = 'VBELN'.
wa_fieldcat_vbak-seltext_l = 'SALES ORDER'.
wa_fieldcat_vbak-datatype = 'CHAR'.
wa_fieldcat_vbak-outputlen = 30.
wa_fieldcat_vbak-tabname = 'IT_VBAK'.
wa_fieldcat_vbak-hotspot = 'X'.
wa_fieldcat_vbak-col_pos = 3.
wa_fieldcat_vbak-emphasize = 'C31'.
APPEND wa_fieldcat_vbak TO it_fieldcat_vbak.
CLEAR wa_fieldcat_vbak.
wa_fieldcat_vbak-fieldname = 'ERDAT'.
wa_fieldcat_vbak-seltext_l = 'CREATED ON'.
wa_fieldcat_vbak-datatype = 'DATS'.
wa_fieldcat_vbak-outputlen = 30.
wa_fieldcat_vbak-tabname = 'IT_VBAK'.
wa_fieldcat_vbak-hotspot = 'X'.
wa_fieldcat_vbak-col_pos = 3.
wa_fieldcat_vbak-emphasize = 'C41'.
APPEND wa_fieldcat_vbak TO it_fieldcat_vbak.
CLEAR wa_fieldcat_vbak.
wa_fieldcat_vbak-fieldname = 'ERNAM'.
wa_fieldcat_vbak-seltext_l = 'CREATED BY'.
wa_fieldcat_vbak-datatype = 'CHAR'.
wa_fieldcat_vbak-outputlen = 30.
wa_fieldcat_vbak-tabname = 'IT_VBAK'.
wa_fieldcat_vbak-hotspot = 'X'.
wa_fieldcat_vbak-col_pos = 3.
wa_fieldcat_vbak-emphasize = 'C51'.
APPEND wa_fieldcat_vbak TO it_fieldcat_vbak.
CLEAR wa_fieldcat_vbak.
ENDFORM. "FIELDCAT_VBAK
*& Form fieldcat_mard
text
FORM fieldcat_mard.
wa_fieldcat_mard-fieldname = 'MATNR'.
wa_fieldcat_mard-seltext_l = 'MATERIAL NUMBER'.
wa_fieldcat_mard-datatype = 'CHAR'.
wa_fieldcat_mard-outputlen = 30.
wa_fieldcat_mard-tabname = 'IT_MARD'.
wa_fieldcat_mard-hotspot = 'X'.
wa_fieldcat_mard-col_pos = 1.
wa_fieldcat_mard-emphasize = 'C31'.
APPEND wa_fieldcat_mard TO it_fieldcat_mard.
CLEAR wa_fieldcat_mard.
wa_fieldcat_mard-fieldname = 'WERKS'.
wa_fieldcat_mard-seltext_l = 'PLANT'.
wa_fieldcat_mard-datatype = 'CHAR'.
wa_fieldcat_mard-outputlen = 30.
wa_fieldcat_mard-tabname = 'IT_MARD'.
wa_fieldcat_mard-hotspot = 'X'.
wa_fieldcat_mard-col_pos = 2.
wa_fieldcat_mard-emphasize = 'C61'.
APPEND wa_fieldcat_mard TO it_fieldcat_mard.
CLEAR wa_fieldcat_mard.
wa_fieldcat_mard-fieldname = 'LGORT'.
wa_fieldcat_mard-seltext_l = 'STORAGE LOCATION'.
wa_fieldcat_mard-datatype = 'CHAR'.
wa_fieldcat_mard-outputlen = 30.
wa_fieldcat_mard-tabname = 'IT_MARD'.
wa_fieldcat_mard-hotspot = 'X'.
wa_fieldcat_mard-col_pos = 3.
wa_fieldcat_mard-emphasize = 'C81'.
APPEND wa_fieldcat_mard TO it_fieldcat_mard.
CLEAR wa_fieldcat_mard.
ENDFORM . "fieldcat_mard
**FORM DISPLAY
*& Form Display
text
--> p1 text
<-- p2 text
FORM display .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'.
IT_EXCLUDING =
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_fieldcat_kna1
i_tabname = 'IT_KNA1'
it_events = it_event_kna1
IT_SORT =
I_TEXT = ' '
TABLES
t_outtab = it_kna1
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_fieldcat_mara
i_tabname = 'IT_MARA'
it_events = it_event_mara
IT_SORT =
I_TEXT = ' '
TABLES
t_outtab = it_mara
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
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
**EVENTS FOR KNA1 AND MARA
*& Form EVENT_KNA1
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_KNA1
*& Form EVENT_MARA
text
--> p1 text
<-- p2 text
FORM event_mara .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event_mara
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_MARA
**POPULATING EVENTS
*& Form eventpopulate_kna1
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_KNA1'.
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 = 0.
wa_event_kna1-form = 'USER_COMMAND_KNA1'.
MODIFY it_event_kna1 FROM wa_event_kna1 TRANSPORTING form WHERE name = wa_event_kna1-name.
ENDIF.
ENDFORM. " eventpopulate_kna1
*& Form eventpopulate_mara
text
--> p1 text
<-- p2 text
FORM eventpopulate_mara .
READ TABLE it_event_mara INTO wa_event_mara WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_event_mara-form = 'TOP_OF_PAGE_MARA'.
MODIFY it_event_mara FROM wa_event_mara TRANSPORTING form WHERE name = wa_event_mara-name.
ENDIF.
READ TABLE it_event_mara INTO wa_event_mara WITH KEY name = 'USER_COMMAND'.
IF sy-subrc = 0.
wa_event_mara-form = 'USER_COMMAND_MARA'.
MODIFY it_event_mara FROM wa_event_mara TRANSPORTING form WHERE name = wa_event_mara-name.
ENDIF.
ENDFORM. " eventpopulate_mara
**TOP OF PAGE
*& Form TOP_OF_PAGE_KNA1
text
FORM top_of_page_kna1.
wa_listheader-typ = 'H'.
wa_listheader-info = 'CUSTOMER DETAILS' .
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
WRITE:/ 'CUSTOMER DETAILS'.
ENDFORM. "TOP_OF_PAGE_KNA1
*& Form TOP_OF_PAGE_MARA
text
FORM top_of_page_mara.
wa_listheader-typ = 'H'.
wa_listheader-info = 'MATERIAL DETAILS' .
APPEND wa_listheader TO it_listheader.
CLEAR wa_listheader.
WRITE:/ 'MATERIAL DETAILS' .
ENDFORM. "TOP_OF_PAGE_KNA1
**CODE FOR SECOND LIST DISPLAY FOR VBAK
*& Form USER_COMMAND
text
-->UCOMM text
-->R_SELFIELD text
FORM user_command
USING ucomm LIKE sy-ucomm
r_selfield TYPE slis_selfield.
CASE UCOMM.
when '&IC1'.
CASE R_SELFIELD-TABNAME.
WHEN 'IT_KNA1'.
DATA: CUST(10) TYPE n.
CUST = r_selfield-value.
SELECT vbeln erdat ernam
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = cust.
PERFORM fieldcat_vbak.
PERFORM display_vbak.
WHEN 'IT_MARA'.
DATA: MAT(18) TYPE N.
MAT = R_selfield-value.
SELECT matnr werks lgort
FROM mard
INTO TABLE it_mard
WHERE matnr = mat.
PERFORM fieldcat_mard.
PERFORM display_mard.
ENDCASE.
ENDCASE.
ENDFORM. "USER_COMMAND
**& Form USER_COMMAND_MARA
text
-->UCOMM text
-->S_SELFIELD text
*FORM user_command_mara
USING ucomm LIKE sy-ucomm
s_selfield TYPE slis_selfield.
SELECT matnr werks lgort
FROM mard
INTO TABLE it_mard
WHERE matnr = s_selfield-value.
PERFORM fieldcat_mard.
PERFORM display_mard.
*ENDFORM. "USER_COMMAND_MARA
*& Form DISPLAY_VBAK
text
--> p1 text
<-- p2 text
FORM display_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 = ' '
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 = wa_layout
IT_FIELDCAT = it_fieldcat_vbak
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
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. " DISPLAY_VBAK
*& Form display_mard
text
FORM display_mard .
CALL FUNCTION 'REUSE_ALV_LIST_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_MARD'
I_STRUCTURE_NAME =
is_layout = wa_layout
it_fieldcat = it_fieldcat_mard
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event_mard
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_mard
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_mard
REGARDS
PRASANTH -
How to handle at line-selection event for 2 different fields
Hi,
The requirement is there are 2 fields in a report output.
One is Material number
and the other is Material document number.
On clicking the material number, the user should be taken to MM03 screen.
On clicking the Material document number, the user should be taken to MB03 screen.
I am able to take care of the first one by putting a HOTSPOT on material number and I am using at line-Selection event, call transaction MM03 and it is working fine
I want to know how can I handle similarly for the document number?
Thanks,
Kumar.Hi,
chk this sample code.
Some part of code is higlighted which meets ur rewuirement.
REPORT z50871sd_rept_interactiverept NO STANDARD PAGE HEADING.
STRUCTURE DECLARATIONS*
INTERNAL TABLE DECLARATIONS*
WORKAREA DECLARATIONS*
TYPES : BEGIN OF st_kna1,
kunnr TYPE kna1-kunnr, "CUSTOMER NUMBER
name1 TYPE kna1-name1, "CUSTOMER NAME
END OF st_kna1.
TYPES : BEGIN OF st_vbak,
kunnr TYPE kna1-kunnr,
vbeln TYPE vbak-vbeln, "SALES DOCUMENT NUMBER
erdat TYPE vbak-erdat, "DATE ON WHICH THE RECORD WAS CREATED
audat TYPE vbak-audat, "DOCUMENT DATE
auart TYPE vbak-auart, "SALES DOCUMENT TYPE
ernam TYPE vbak-ernam, "NAME OF PERSON WHO CREATED THE OBJECT.
augru TYPE vbak-augru, "ORDER REASON
END OF st_vbak.
TYPES : BEGIN OF st_vbap,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr, "SALES DOCUMENT ITEM
matnr TYPE vbap-matnr, "MATERIAL NUMBER
charg TYPE vbap-charg, "BATCH NUMBER
matkl TYPE vbap-matkl, "MATERIAL GROUP
posar TYPE vbap-posar, "ITEM TYPE
END OF st_vbap.
DATA : it_kna1 TYPE STANDARD TABLE OF st_kna1,
it_vbak TYPE STANDARD TABLE OF st_vbak,
it_vbap TYPE STANDARD TABLE OF st_vbap,
wa_kna1 TYPE st_kna1,
wa_vbak TYPE st_vbak,
wa_vbap TYPE st_vbap.
DATA : v_fld(15),
v_kunnr TYPE kna1-kunnr,
v_vbeln TYPE vbak-vbeln.
SELECT-OPTIONS*
PARAMETERS*
SELECT-OPTIONS so_kunnr FOR v_kunnr. "CUSTOMER NUMBER
PARAMETERS : p_max TYPE i. "NUMBER OF HITS
START-OF-SELECTION*
START-OF-SELECTION.
PERFORM get_customerdata.
SET PF-STATUS 'MENU1'.
AT LINE-SELECTION**
*AT LINE-SELECTION.*
*IF sy-lsind = 1.*
*PERFORM get_salesheader.*
*ELSEIF sy-lsind = 2.*
*PERFORM get_salesitemdata.*
*ENDIF.*
AT USER-COMMAND*
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'DISP'.
PERFORM get_salesheader.
WHEN 'ITEM'.
PERFORM get_salesitemdata.
WHEN 'VA03'.
SET PARAMETER ID 'AUN' FIELD wa_vbak-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
TOP-OF-PAGE*
TOP-OF-PAGE.
ULINE AT /1(56).
WRITE : /1 sy-vline ,
2(15) text-004 COLOR 1 ,
sy-vline ,
20(35) text-005 COLOR 1 ,
sy-vline.
ULINE AT /1(56).
TOP-OF-PAGE DURING LINE-SELECTION.*
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
PERFORM get_topofpage1.
WHEN 2.
PERFORM get_topofpage2.
ENDCASE.
FORM GET_CUSTOMERDATA*
FORM get_customerdata.
SELECT kunnr name1
FROM kna1
INTO TABLE it_kna1
UP TO p_max ROWS
WHERE kunnr IN so_kunnr.
IF sy-subrc EQ 0.
LOOP AT it_kna1 INTO wa_kna1.
WRITE : / sy-vline,
2(15) wa_kna1-kunnr ,
sy-vline ,
20 wa_kna1-name1,
sy-vline.
HIDE : wa_kna1-kunnr , wa_kna1-name1.
CLEAR wa_kna1.
ENDLOOP.
ULINE AT : /1(56).
ELSE.
MESSAGE w000(z50871msg).
ENDIF.
ENDFORM. "GET_CUSTOMERDATA
FORM GET_SALESHEADER*
FORM get_salesheader.
SET PF-STATUS 'MENU2'.
GET CURSOR FIELD v_fld VALUE v_kunnr.
IF v_fld = 'WA_KNA1-KUNNR'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kunnr
IMPORTING
output = v_kunnr.
SELECT kunnr vbeln erdat audat auart ernam augru
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = v_kunnr.
IF sy-subrc EQ 0.
LOOP AT it_vbak INTO wa_vbak.
WRITE : / sy-vline ,
2(22) wa_vbak-vbeln ,
sy-vline,
27(25) wa_vbak-erdat ,
sy-vline ,
55(15) wa_vbak-audat ,
sy-vline ,
73(15) wa_vbak-auart ,
sy-vline,
91(16) wa_vbak-ernam ,
sy-vline,
109(13) wa_vbak-augru,
123 sy-vline.
HIDE : wa_vbak-vbeln.
CLEAR wa_vbak.
ENDLOOP.
*ULINE AT : /1(123).*
ELSE.
MESSAGE i015(z50871msg).
ENDIF.
ELSE.
MESSAGE i013(z50871msg).
ENDIF.
ENDFORM. "GET_SALESHEADER
FORM GET_SALESITEMDATA
FORM get_salesitemdata.
SET PF-STATUS space.
GET CURSOR FIELD v_fld VALUE v_vbeln.
IF v_fld = 'WA_VBAK-VBELN'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vbeln
IMPORTING
output = v_vbeln.
SELECT vbeln posnr matnr charg matkl posar
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = v_vbeln.
LOOP AT it_vbap INTO wa_vbap.
WRITE : /1 sy-vline,
2(13) wa_vbap-posnr ,
sy-vline,
18(18) wa_vbap-matnr ,
sy-vline,
40(13) wa_vbap-charg ,
sy-vline,
56(16) wa_vbap-matkl ,
sy-vline,
75 wa_vbap-posar,
112 sy-vline.
CLEAR wa_vbap.
ENDLOOP.
ULINE AT : /1(112).
ELSE.
MESSAGE i014(z50871msg).
ENDIF.
ENDFORM. "GET_SALESITEMDATA
FORM GET_TOPOFPAGE1
FORM get_topofpage1.
ULINE AT : /1(123).
WRITE : / sy-vline ,
2 text-000 ,
wa_kna1-kunnr ,
75 text-001 ,
wa_kna1-name1,
123 sy-vline.
ULINE AT : /1(123).
WRITE : / sy-vline ,
2(22) text-006 COLOR 1,
sy-vline,
27(25) text-007 COLOR 1 ,
sy-vline ,
55(15) text-008 COLOR 1 ,
sy-vline ,
73(15) text-009 COLOR 1 ,
sy-vline,
91(16) text-010 COLOR 1 ,
sy-vline,
109(13) text-011 COLOR 1,
123 sy-vline.
ULINE AT : /1(123).
ENDFORM. "GET_TOPOFPAGE1
FORM GET_TOPOFPAGE2
FORM get_topofpage2.
ULINE AT : /1(112).
WRITE : / sy-vline ,
2 text-000 ,
wa_kna1-kunnr ,
35 text-001 ,
wa_kna1-name1 ,
85 text-003 ,
wa_vbak-vbeln ,
112 sy-vline.
ULINE AT : /1(112).
WRITE : /1 sy-vline,
2(13) text-012 COLOR 1,
sy-vline,
18(18) text-013 COLOR 1 ,
sy-vline,
40(13) text-014 COLOR 1 ,
sy-vline,
56(16) text-015 COLOR 1 ,
sy-vline,
75 text-016 COLOR 1 ,
112 sy-vline.
ULINE AT : /1(112).
ENDFORM. "GET_TOPOFPAGE2
Regards
Sandeep Reddy -
At line-selection event triggering issue?
hi,
I am working on a interactive report using at line-selection event, in that i have 3 list & now on 4 list i have to perform a BDC operation,for that I have used the PF-STATUS syntax, & at user command code.
but for this particular list my at user command is not working properly. if 1 clk on a record its move to nxt action,but it shd happen when i clk on a record & than press the icon for action set by PF STATUS.
Code is below:
WHEN '3'.
SET PF-STATUS 'Z203'.
LOOP AT itab4.
AT FIRST.
WRITE:/1 'Material' ,8 'Descp'.
ENDAT.
WRITE:/1 itab4-matnr,8 itab4-maktx.
ENDLOOP.
ELSE.
WRITE:/ 'No Data Found'.
ENDIF.
ENDCASE.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'CALL'.
PERFORM bdc_mm02.
pls tell how to use it.
reds
Vipinin your AT LINE-SELECTION event, add this code
CHECK sy-lsind NE 3.
(this is valid if your list is 4th list displayed as it begins with 0) -
AT LINE-SELECTION event and HIDE area
Hello ppl.
I've got a strange situation: at line-selection event in my program gets fired, but internal table work area doesn't get retained from hide area.
What can be the source of mistake?
Thanks in advance.Try this
REPORT zkb_test.
DATA: i_scarr TYPE TABLE OF scarr,
w_scarr TYPE scarr.
START-OF-SELECTION.
SELECT * FROM scarr INTO TABLE i_scarr UP TO 5 ROWS.
LOOP AT i_scarr INTO w_scarr.
WRITE:/ w_scarr-carrid,
w_scarr-carrname,
w_scarr-currcode.
HIDE w_scarr.
ENDLOOP.
AT LINE-SELECTION.
WRITE:/ w_scarr.
Just double click the list.
Cheers
Kathirvel -
At line-selection event in alv
Hi all......
I am creating an interractive alv.
Now waht I want is,
I want to display the details of only that particular field(ROW) as secondary out-put list, which i had dbl-clicked in the primary out-put list.
Like if I had dbl clicked on a pirticular Mat.No, than only the details of that Mat.No should be displayed in the secondary list.
I had used a statement like this...
DATA F(16).
GET CURSOR FIELD F.
but it seems like it is having error
Thanks...Hi Kiran,
I can solve your problem. I have made same type of report in whitch u can use only AT selection event instead of get cursor event to get desired output.
AT LINE-SELECTION.
CLEAR W_SYTABIX.
IF SY-LSIND = 1.
PERFORM SCREEN_1.
ELSEIF SY-LSIND = 2.
PERFORM SCREEN_2.
ELSEIF SY-LSIND = 3.
PERFORM SCREEN_3.
ENDIF.
*& Form SCREEN_1
text
FORM SCREEN_1 .
W_SYTABIX = SY-CUROW - 6.
IF W_SYTABIX >= 0.
READ TABLE I_SCARR INDEX W_SYTABIX INTO WA_SCARR.
IF WA_SCARR IS NOT INITIAL.
SELECT CARRID CONNID CITYFROM AIRPFROM CITYTO AIRPTO
FROM SPFLI
INTO CORRESPONDING FIELDS OF TABLE I_SPFLI
WHERE CARRID = WA_SCARR-CARRID.
IF SY-SUBRC NE 0.
MESSAGE 'NO RECORDS TO DISPLAY' TYPE 'E'.
ENDIF.
ELSE.
EXIT.
ENDIF.
WRITE : 'CARRID',(10)'CONNID',(20)'CITYFROM',(30)'AIRPORTFROM',(40)'CITYTO',(50)'AIRPORTTO'.
ULINE.
LOOP AT I_SPFLI INTO WA_SPFLI.
WRITE :/ WA_SPFLI-CARRID UNDER 'CARRID' ,
WA_SPFLI-CONNID UNDER 'CONNID',
WA_SPFLI-CITYFROM UNDER 'CITYFROM',
WA_SPFLI-AIRPFROM UNDER 'AIRPORTFROM',
WA_SPFLI-CITYTO UNDER 'CITYTO',
WA_SPFLI-AIRPTO UNDER 'AIRPORTTO'.
HIDE: WA_SPFLI-CARRID.
ENDLOOP.
CLEAR : WA_SCARR,
WA_SPFLI.
ELSE.
MESSAGE 'CURSOR IS NOT AT RIGHT PLACE' TYPE 'I'.
ENDIF.
ENDFORM. " SCREEN_1
*& Form SCREEN_2
text
FORM SCREEN_2 .
W_SYTABIX = SY-CUROW.
IF W_SYTABIX > 4.
READ TABLE I_SPFLI INDEX W_SYTABIX INTO WA_SCARR.
SELECT CARRID CONNID FLDATE PRICE CURRENCY
FROM SFLIGHT
INTO TABLE I_SFLIGHT
WHERE CARRID = WA_SPFLI-CARRID.
WRITE : 'CARRID',(10)'CONNID',(30)'FLDATE',(50)'PRICE',(70)'CURRENCY'.
ULINE.
LOOP AT I_SFLIGHT INTO WA_SFLIGHT.
WRITE :/ WA_SFLIGHT-CARRID UNDER 'CARRID',
WA_SFLIGHT-CONNID UNDER 'CONNID',
WA_SFLIGHT-FLDATE UNDER 'FLDATE',
WA_SFLIGHT-PRICE UNDER 'PRICE',
WA_SFLIGHT-CURRENCY UNDER 'CURRENCY'.
ENDLOOP.
ELSE.
MESSAGE 'CURSOR IS NOT AT RIGHT PLACE' TYPE 'I'.
ENDIF.
ENDFORM. " SCREEN_2
*& Form SCREEN_3
text
--> p1 text
<-- p2 text
FORM SCREEN_3.
W_SYTABIX = SY-CUROW.
IF W_SYTABIX > 4.
WRITE : 'THANKS FOR VISITING..HAPPY JOURNEY **LOKESH TAREY**'.
ENDIF.
ENDFORM. " SCREEN_3
You can easily use the same logic for your ALV report.
I hope i will help you.
Thanks & Regards,
Lokesh. -
At line Selection event, failed
I have created my own pf-status, and assigned 'PICK' to the F2 key in the pf-status.
When i am double clicking on a field in the report output, it is coming to the event 'AT LINE-SELECTION'.
in that event i am writing the statement.
read line sy-lilli field value <fieldname>.
the <fieldname> is holding a value in which all digits are zeroes, eventhough i am double clicking on a field which is non-zero.
please help me by solving the problem.
Thanks in advance for your faster response.Use of Hide statement is not required.
When you use Hide statement the value is automatically filled into the program variable that was written on that line.
But you can always use the READ LINE or READ CURRENT LINE to fetch the value.
Check if you are providing the right variable names.
Else go for the simple approach and use HIDE, now if the variable was V1 which you have written with a write statement, now if the user double clicks on the line V1 will automatically have that value.
Hope this helps,
Pavan -
Problem with at line-selection
hi mates
i have written a interactive report program, when i click the hotspot in the basic list the event at line-selection is not getting triggered insead my at user-command is geting executed. is there a sequence that i need to follow?. below is my code. thanks in advance.
tables: vbak.
selection-screen begin of block b1 with frame title t1.
select-options: salesdoc for vbak-vbeln.
selection-screen end of block b1.
types: begin of vbak_ty,
vbeln type vbak-vbeln,
erdat type vbak-erdat,
ernam type vbak-ernam,
end of vbak_ty.
types: begin of vbap_type,
vbeln type vbap-vbeln,
posnr type vbap-posnr,
matnr type vbap-matnr,
charg type vbap-charg,
end of vbap_type.
types: begin of vbap_ty,
posnr type vbap-posnr,
matwa type vbap-matwa,
arktx type vbap-arktx,
end of vbap_ty.
data: vbap_wa type vbap_type,
vbap_it type table of vbap_type,
vbak_wa type vbak_ty,
vbak_it type table of vbak_ty,
vbap_wa1 type vbap_ty,
vbap_it1 type table of vbap_type,
fname(20),fvalue(10).
initialization.
t1 = 'enter sales doc header'.
start-of-selection.
set pf-status 'VA01'.
SELECT vbeln
erdat
ernam
from vbak into table vbak_it
where vbeln in salesdoc.
if sy-subrc = 0.
loop at vbak_it into vbak_wa.
write: /25 vbak_wa-vbeln hotspot,
50 vbak_wa-erdat,
75 vbak_wa-ernam.
hide vbak_wa-vbeln.
clear vbak_wa-vbeln.
endloop.
ELSE.
message e000(01) with 'no records found '.
endif.
at line-selection.
case sy-lsind.
when '1'.
perform headerdata.
when '2'.
perform itemdata.
endcase.
at user-command.
case sy-ucomm.
when 'ITEMDATA'.
get cursor field fname value fvalue.
if fvalue = 'vbap_wa-vbeln'.
perform itemdata.
else.
message e000(03) with 'click only on hotspots'.
endif.
when 'SALEOR'.
get cursor field fname value fvalue.
if fvalue = 'vbak_wa-vbeln'.
set parameter id 'AUN' field fvalue.
call transaction 'VA01' and skip first screen.
else.
message e000(04) with 'click only on hotspots'.
endif.
endcase.
form headerdata.
set pf-status 'HEADER'.
select vbeln
posnr
matnr
charg
from vbap into table vbap_it
where vbeln = vbak_wa-vbeln.
if sy-subrc = 0.
loop at vbap_it into vbap_wa.
write: /25 vbap_wa-vbeln hotspot,
50 vbap_wa-posnr,
75 vbap_wa-matnr,
90 vbap_wa-charg.
hide vbap_wa-vbeln.
clear vbap_wa-vbeln.
endloop.
else.
message e000(02) with ' no data found'.
endif.
endform.
form itemdata.
select vbeln
posnr
matwa
arktx
from vbap into table vbap_it1
where vbeln = vbap_wa-vbeln.
if sy-subrc = 0.
loop at vbap_it1 into vbap_wa1.
write: /25 vbap_wa1-posnr,
75 vbap_wa1-matwa,
90 vbap_wa1-arktx.
endloop.
else.
message e000(02) with ' no data found'.
endif.
endform.
REGARDS
MANOAT LINE-SELECTION.
Effect
This statement defines an event block whose event is triggered by the ABAP runtime environment during the display of a screen list - provided the scren cursor is on a list line and you select a function using the function code PICK. Through the definition of this event block, the standard list status is automatically enhanced in such a way that the function code F2 and, with it, the double-click mouse function is linked up to the function code PICK.
Note
If the function key F2 is linked with a function code different than PICK, each double click will trigger its even, usually AT USER-COMMAND, and not AT LINE-SELECTION.
Example
This program works with the standard list status. A line selection with the left mouse key causes the event AT LINE-SELECTION and creates details lists.
REPORT demo_at_line_selection.
START-OF-SELECTION.
WRITE 'Click me!' COLOR = 5 HOTSPOT.
AT LINE-SELECTION.
WRITE: / 'You clicked list', sy-listi,
/ 'You are on list', sy-lsind.
IF sy-lsind < 20.
SKIP.
WRITE: 'More ...' COLOR = 5 HOTSPOT.
ENDIF.
The above sample program works with the standard list status Since your program has the PF-status set, i think AT LINE-SELECTION will not work. So do use AT USER-COMMAND to capture the "PICK" event.
Hope this helps.
Thanks
Balaji -
Help with at-line selection event...
Hello experts,
I am currently modifying my report to let the users click on either the asset number or
the equipment number and go to its respective transaction. If he clicks the asset number,
it would take him to transaction AW01N and if he otherwise clicks on the equipment number,
it would take him to transaction IE03. But there are couple of problems that I am facing.
First is, I have hotspotted my field which is named asset_subnum which contains the asset and
the asset subnumber. So it would look like this:
1234567879-0000
Now, can I split it at '-' then put those in 2 variables lets say lv_asset and lv_asset_sub
then I will hide those 2 variables?
Also, I am using field-symbols as my 'work area' of my internal table. How can I declare it in at
line-selection?
Anyway, below is my code guys:
LOOP AT it_output ASSIGNING <fs_output>.
IF <fs_output>-parent IS INITIAL.
WRITE: (17) <fs_output>-asset_subnum CENTERED.
ELSE.
WRITE: (17) <fs_output>-asset_subnum RIGHT-JUSTIFIED.
ENDIF.
FORMAT HOTSPOT OFF.
WRITE: (17) <fs_output>-parent_subnum CENTERED,
(30) <fs_output>-funcloc CENTERED,
(40) <fs_output>-description CENTERED.
IF p_equip = 'X'.
FORMAT HOTSPOT ON.
WRITE: (18) <fs_output>-equip_num CENTERED.
FORMAT HOTSPOT OFF.
ENDIF.
WRITE: (15) <fs_output>-asset_sub CENTERED,
(40) <fs_output>-location CENTERED,
(15) <fs_output>-accq_cost CENTERED,
(20) <fs_output>-acc_dep CENTERED,
(20) <fs_output>-asset_book_val CENTERED,
sy-vline.
endloop.
When I try to hide my fields like:
HIDE <fs_output>-equip_num.
it is giving me a dump saying:
HIDE is not allowed for lines of internal tables.
Help would be greatly appreciated.Thanks a lot guys and take care!Hi viraylab,
Minor Problem.
1. U are using field-symbols,
and the definition must be of this type
FIELD-SYMBOLS : <fs> <b>STRUCTURE</b> T001 DEFAULT T001.
(so that u are able to directly use the field names
<FS>-fieldname
2. Hence,
3. instead of
LOOP AT it_output ASSIGNING <fs_output>.
just use
LOOP AT it_output .
(The problem is coming bcos of ASSIGNING)
4. the field symbol will automatically have
the data of the internal table in the loop.
5. To verify this point,
just copy paste my small code.
6.
report abc.
data : t001 like t001 occurs 0 with header line.
FIELD-SYMBOLS : <fs> STRUCTURE T001 DEFAULT T001.
START-OF-SELECTION.
select * from t001 into table t001.
*------ UNCOMMENT TO GET ERROR / COMMENT 2ND LINE THEN
*loop at t001 ASSIGNING <fs>.
loop at t001 .
write :/ <fs>-bukrs.
hide <fs>-bukrs.
endloop.
AT LINE-SELECTION.
WRITE T001-BUKRS.
regards,
amit m. -
Need sample interactive ALV(At line selection event...)
Hello Experts,
I have a requirement that when I show the results, there will be 3 hotspots for
the sales order, delivery order and invoice number. So for example I click on
the sales order it will open a pop up window that will show additional information, etc.
So when the user clicks all 3 hotspots it will show 3 popup windows.
How do I do this guys? simple examples will be highly appreciated.Thank you guys and take care!Hi,
This is the sample report for INTERACTIVE REPORT.
REPORT YMS_INTERACTIVETEST LINE-SIZE 50 NO STANDARD PAGE HEADING.
TABLES: VBAP,KNA1,VBAK.
SELECT-OPTIONS: CUST FOR KNA1-KUNNR.
DATA: BEGIN OF ITAB OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
VBELN LIKE VBAK-VBELN,
AUDAT LIKE VBAK-AUDAT,
AUART LIKE VBAK-AUART,
POSNR LIKE VBAP-POSNR,
POSAR LIKE VBAP-POSAR,
END OF ITAB.
DATA: ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE.
INITIALIZATION.
START-OF-SELECTION.
SELECT KNA1KUNNR KNA1NAME1 INTO CORRESPONDING FIELDS OF TABLE ITAB1
FROM KNA1 WHERE KNA1~KUNNR IN CUST.
LOOP AT ITAB1.
WRITE:/10 ITAB1-KUNNR HOTSPOT, 30 ITAB1-NAME1.
HIDE: ITAB1-KUNNR.
ENDLOOP.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN '1'.
SELECT KNA1KUNNR VBAKVBELN VBAKAUDAT VBAKERDAT INTO CORRESPONDING FIELDS OF TABLE ITAB1
FROM KNA1 INNER JOIN VBAK ON KNA1KUNNR = VBAKKUNNR.
LOOP AT ITAB1.
WRITE:/ ITAB1-VBELN HOTSPOT, ITAB1-AUDAT, ITAB1-AUART.
HIDE: ITAB1-VBELN, ITAB1-AUDAT, ITAB1-AUART.
ENDLOOP.
WHEN '2'.
SELECT VBAKVBELN VBAPPOSNR VBAP~POSAR
INTO CORRESPONDING FIELDS OF TABLE ITAB1 FROM VBAK INNER JOIN VBAP ON VBAKVBELN = VBAPVBELN.
LOOP AT ITAB1.
WRITE:/ ITAB1-POSNR, ITAB1-POSAR.
ENDLOOP.
ENDCASE.
TOP-OF-PAGE.
WRITE:/ SY-VLINE,TEXT-001 COLOR COL_NEGATIVE.
ULINE.
Thanks,
Sankar M -
hello experts,
is there any way to obtain the value of the field by clicking on that particular field of the report.?hi
Check this
tables:zdr_fm.
types: begin of stru,
sn type zdr_fm-mandt,
sno type zdr_fm-rno,
sname type zdr_fm-rname1,
end of stru.
data :wa type stru,
itab type table of stru.
select mandt rno rname1 from zdr_fm into table itab.
loop at itab into wa.
write : / wa-sn.
hide : wa-sno,wa-sname.
endloop.
at line-selection.
select mandt rno rname1 from zdr_fm into table itab where rno = wa-sno .
loop at itab into wa.
write : / , 50 wa-sn,
wa-sno,wa-sname.
endloop.
thanks
Dharma -
AT Line selection event in ALV blocked list display
Hi Exparts,
I am using
REUSE_ALV_BLOCK_LIST_INIT,REUSE_ALV_BLOCK_LIST_APPEND,
REUSE_ALV_BLOCK_LIST_DISPLAY.
My question, In a field if user double click then a specific Transaction will execute.
please help me with relevant document.dear
this is very simple when u will call alv_grid_display FM :
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = *'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 = LS_LAYOUT
it_fieldcat = ls_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
i_default = 'X'
i_save = 'A'
* IS_VARIANT =
it_events = g_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
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_output
* 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.
PERFORM user_command USING r_ucomm
rs_selfield.
*FORM user_command USING p_r_ucomm*
*p_rs_selfield.*
*CASE p_r_ucomm.*
*WHEN '&IC1'.*
*READ TABLE t_output WITH KEY check = 'X'.*
*IF t_output-check IS INITIAL.*
*MESSAGE 'Plz select the checkbox' TYPE 'E'.*
*ENDIF.*
*READ LINE sy-index FIELD VALUE t_output-vbeln.*
*CHECK NOT t_output-vbeln IS INITIAL.*
*SET PARAMETER ID 'AUN' FIELD t_output-vbeln.*
*CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.*
*ENDCASE.*
*ENDFORM.
Maybe you are looking for
-
How can I purge all duplicates from my iTunes library at once?
Someone else asked this question: Hi For some reason when I deleted my duplicates it deleted them all from itunes so I had re import them all in and now I have 2-3 duplicates of EVERY song in EVERY album? I have 20GB of duplicates alone! How do I del
-
Hi! I am really a beginner in this technology and recently i am working on a project where i have to let the users to download files that are stored in a specified location in the server. Please suggest a way by which this can be accomplished. Sorry
-
White Lines on Live Traced Artwork in PDF from Illustrator CS3
Hi,<br /><br />I've recently been using the Live Trace feature in Adobe Illustrator CS3 on my artwork so that my artwork becomes a vector image instead of a raster (I'm told it's better for Web because it works better with varying resolutions - doesn
-
Hello I am trying to install GLEW on my Mac operating system for my computer graphics course. The instructions to get C++ working with OpenGL are below. I am having trouble installing GLEW. That link below does not seem to exist. What are some ways t
-
Complaint re: Customer Care
I purchased a V560 with Windows 7 64 bit in March of 2011. Shortly after purchasing the laptop, I noticed that there was a screw cover missing on the inside of the lid so that the screw is exposed. It is a minor cosmetic issue, but I decided to call