2007 Oct 03 9:24 AM
hi,
how to read the particilar record and display it in a popup screen when u select it using checkbox and then press 'DISP' button in alv(normal alv not with oops concepts).
like i select a row which is checked (checkbox) it and i have to read that particular record and display (value of keyfield say vbeln) details in a popup screen.
hi,
how to read the particilar record and display it in a popup screen when u select it using checkbox and then press 'DISP' button in alv(normal alv not with oops concepts).
like i select a row which is checked (checkbox) it and i have to read that particular record and display (value of keyfield say vbeln) details in a popup screen.
2007 Oct 03 9:33 AM
Hi
In the DO..ENDDO loop read the line and from SY-LISEL select the records when the CHECKBOX = X and put those records into a sepearate int table and with them process the records further
see the sample code
DO.
CLEAR v_chk.
READ LINE sy-index FIELD VALUE v_chk.
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF v_chk = 'X'.
lv_prof = sy-lisel+5(12).
it_itab-role = sy-lisel+85(30).
it_itab-profi = lv_prof.
APPEND it_itab.
CLEAR it_itab.
ENDIF.
ENDDO.
Regards
Anji
2007 Oct 03 9:33 AM
hi,
go through the faloowing code.
this for normal popup.
*&---------------------------------------------------------------------*
*& Report ZGS_ALV_POPUP_2_SELECT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZGS_ALV_POPUP_2_SELECT.
TYPE-POOLS: slis.
PARAMETERS: p_title TYPE sy-title default 'Sales Document:item data'.
DATA: itab TYPE vbap OCCURS 0 WITH HEADER LINE,
selfield TYPE slis_selfield.
START-OF-SELECTION.
SELECT *
FROM vbap
INTO TABLE itab
UP TO 20 ROWS.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = p_title
* I_SELECTION = 'X'
I_ZEBRA = 'X '
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_CHECKBOX_FIELDNAME =
* I_LINEMARK_FIELDNAME =
* I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'ITAB'
i_structure_name = 'VBAP'
* IT_FIELDCAT =
* IT_EXCLUDING =
* I_CALLBACK_PROGRAM =
* I_CALLBACK_USER_COMMAND =
* is_private =
IMPORTING
es_selfield = selfield
* e_exit =
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000(8I) WITH sy-subrc.
ENDIF.
WRITE:
/ 'Table Index : ', 20 selfield-tabindex,
/ 'Table Name : ', 15 selfield-tabname,
/ 'Field Name : ', 15 selfield-fieldname,
/ 'Table-Field : ', 15 selfield-sel_tab_field,
/ 'Field Value : ', 15 selfield-value.
the falowing code is for how to put checkbox and how to display the selected recods.you combine both codes.
*&---------------------------------------------------------------------*
*& Report ZRP_SALES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZRP_SALES NO STANDARD PAGE HEADING.
DATA: TEMP_DATE_STR TYPE STRING.
*DATA: TEMP_NETP LIKE VBAK-NETWR.
DATA: TEMP_NETWR(10).
*DATA: TEMP_VBELN LIKE VBAK-VBELN.
DATA: CHECK TYPE C VALUE ' '.
*DATA: WA_VBELN LIKE VBAK-VBELN.
DATA: TEMP_DATE LIKE VBAK-ERDAT.
*DATA: TEMP_NETP_STR TYPE STRING.
DATA:FNAM(20), FVAL(20).
TYPES: BEGIN OF MY_VBAK,
VTWEG TYPE VTWEG,
VKORG TYPE VKORG,
SPART TYPE SPART,
NETWR TYPE NETWR_AK,
VBELN TYPE VBELN_VA,
ERDAT TYPE ERDAT,
END OF MY_VBAK.
DATA: IT_VBAK TYPE MY_VBAK OCCURS 0 WITH HEADER LINE.
DATA: WA_VBAK TYPE MY_VBAK.
DATA: V_VBELN TYPE VBELN,
V_ERDAT TYPE ERDAT.
SELECT-OPTIONS:S_VBELN FOR V_VBELN,
S_ERDAT FOR V_ERDAT.
AT SELECTION-SCREEN.
*Check for Sales Order number to be non-initial.
IF S_VBELN IS INITIAL.
*Checking for Date to be non-nitial.
IF S_ERDAT IS INITIAL.
MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.
ELSE.
*Validating the right low values for Date select option
SELECT SINGLE ERDAT
FROM VBAK INTO TEMP_DATE
WHERE VBELN EQ S_VBELN-LOW OR ERDAT EQ S_ERDAT-LOW.
IF SY-SUBRC NE 0.
MESSAGE E004(ZRP_MSG).
ENDIF.
*Validating the right high values for Date select option
SELECT SINGLE ERDAT
FROM VBAK INTO TEMP_DATE
WHERE ERDAT EQ S_ERDAT-HIGH OR VBELN EQ S_VBELN-HIGH.
IF SY-SUBRC NE 0.
MESSAGE E005(ZRP_MSG).
ENDIF.
ENDIF.
ELSE.
*Checking for Date to be non-nitial.
IF S_ERDAT IS NOT INITIAL.
MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.
ENDIF.
*Validating the right low values
SELECT SINGLE VBELN
FROM VBAK INTO S_VBELN
WHERE VBELN EQ S_VBELN-LOW.
IF SY-SUBRC NE 0.
MESSAGE E001(ZRP_MSG).
ENDIF.
*Validating the right high values
IF S_VBELN-HIGH IS NOT INITIAL.
SELECT SINGLE VBELN
FROM VBAK INTO S_VBELN
WHERE VBELN EQ S_VBELN-HIGH.
IF SY-SUBRC NE 0.
MESSAGE E002(ZRP_MSG).
ENDIF.
ENDIF.
ENDIF.
START-OF-SELECTION.
*First Screen.
SET PF-STATUS 'DISP'.
IF S_VBELN IS NOT INITIAL.
SELECT VTWEG VKORG SPART NETWR VBELN ERDAT
FROM VBAK
INTO TABLE IT_VBAK
WHERE VBELN IN S_VBELN.
ENDIF.
IF S_ERDAT IS NOT INITIAL.
SELECT VTWEG VKORG SPART NETWR VBELN ERDAT
FROM VBAK
INTO TABLE IT_VBAK
WHERE ERDAT IN S_ERDAT.
ENDIF.
SORT IT_VBAK BY VKORG VTWEG SPART.
END-OF-SELECTION.
LOOP AT IT_VBAK.
MOVE IT_VBAK-NETWR TO TEMP_NETWR.
MOVE IT_VBAK-ERDAT TO TEMP_DATE.
WRITE:/6 CHECK AS CHECKBOX.
FORMAT COLOR 1.
WRITE: IT_VBAK-VBELN UNDER 'SALES ORDER NO.' .
WRITE: IT_VBAK-ERDAT UNDER 'DATE'.
FORMAT COLOR OFF.
FORMAT COLOR 2.
WRITE: TEMP_NETWR UNDER 'NET PRICE'.
FORMAT COLOR OFF."TEMP_NETWR,
FORMAT COLOR 3.
WRITE:IT_VBAK-VKORG UNDER 'SALES ORG',
IT_VBAK-VTWEG UNDER 'DIST CHANNEL',
IT_VBAK-SPART UNDER 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
*FOR SUBTOTALS
AT END OF SPART.
SUM.
FORMAT COLOR 5.
WRITE:/6 'SUB TOTOAL OF NET PRICE IS : '.
WRITE: 32 IT_VBAK-NETWR CURRENCY 'INR'.
FORMAT COLOR OFF.
SKIP 2.
ENDAT.
*FOR GRAND TOTALS
AT LAST.
SUM.
FORMAT COLOR 6.
WRITE:/6 'GRAND TOTOAL OF NET PRICE IS : ',
32 IT_VBAK-NETWR CURRENCY 'INR'.
FORMAT COLOR 6.
ENDAT.
ENDLOOP.
TOP-OF-PAGE.
FORMAT COLOR 6.
WRITE:/8 'SALES ORDER NO.',
27 'DATE',
42 'NET PRICE',
57 'SALES ORG',
70 'DIST CHANNEL',
87 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
*WHEN SALES ORDER IS SELECTED
AT LINE-SELECTION.
CASE :SY-LSIND.
WHEN '2'.
GET CURSOR FIELD FNAM VALUE FVAL.
IF FNAM <> 'WA_VBAK-VBELN'.
MESSAGE E006(ZRP_MSG).
ELSE.
SET PARAMETER ID 'MAT' FIELD FVAL.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
*WHEN CLICKED ON PUSH BUTTON IN THE APPLICATION BAR
AT USER-COMMAND.
CASE:SY-UCOMM.
WHEN 'DISP'.
DO.
CLEAR CHECK.
CLEAR: WA_VBAK,TEMP_DATE_STR.
READ LINE SY-INDEX FIELD VALUE CHECK
IT_VBAK-VTWEG INTO WA_VBAK-VTWEG
* IT_VBAK-NETWR INTO TEMP_NETP_STR
IT_VBAK-VBELN INTO WA_VBAK-VBELN
IT_VBAK-ERDAT INTO TEMP_DATE_STR
IT_VBAK-VKORG INTO WA_VBAK-VKORG
IT_VBAK-SPART INTO WA_VBAK-SPART.
IF SY-SUBRC <> 0.
EXIT.
ELSEIF CHECK = 'X'.
FORMAT COLOR 1.
WRITE: 8 WA_VBAK-VBELN HOTSPOT. "UNDER 'SALES ORDER NO'
WRITE: 25 TEMP_DATE_STR." UNDER 'DATE'.
FORMAT COLOR OFF.
* FORMAT COLOR 2.
* WRITE: 44 TEMP_NETP_STR." UNDER 'NET PRICE'.
* FORMAT COLOR OFF.
FORMAT COLOR 3.
WRITE:44 WA_VBAK-VKORG," UNDER 'SALES ORG',
59 WA_VBAK-VTWEG," UNDER 'DIST CHANNEL',
72 WA_VBAK-SPART." UNDER 'DIVISION'.
FORMAT COLOR OFF.
SKIP 1.
ENDIF.
ENDDO.
ENDCASE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE:SY-LSIND.
WHEN 1.
FORMAT COLOR 6.
WRITE:/8 'SALES ORDER NO.',
25 'DATE',
* 44 'NET PRICE',
44 'SALES ORG',
58 'DIST CHANNEL',
72 'DIVISION'.
SKIP 1.
FORMAT COLOR OFF.
<b>if helpful reward some points.</b>
Message was edited by:
suredarreddy pulimamidi
2007 Oct 03 9:44 AM
hI..
Check this:
1. add one more field checkbox of length 1 to ur final internal tabel
2. in ur fieldcatalg add this line
wa_fcat-fieldname = 'CHECKBOx'.
wa_fcat-checkbox = 'X'.
wa_fcat-outputlen = '1'.
wa_fcat-col_pos = '1'.
append wa_fcat to it_fcat.
3.in ur layout , add this line
wa_layout-box_fieldname = 'CHECKBOX'.
4.In th USER_COMMAND subroutine of ur REUSE_ALV_GRID_DISpLAy FM
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFLD TYPE SLIS_SELFIELD.
case p_ucomm.
when 'DISP'.
write ur code her
Endform.
REWARD IF HELPFUL.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |