on 10-31-2007 9:31 AM
I have a field GW_FINAL-DECISION of char1 in an internal table.
After executing the selection screen the data from internal table is displayed on the list using write statements.
WRITE : GW_FINAL-DECISION AS CHECKBOX.
when I select the check box from the list, the value of the internal table is to be updated as 'X'.
please help me in this regard ASAP.
If u want to display a check box in the report means u want to use a parameter
t_layout-box_fieldname = 'RSMARK'. in the ALV layout area..
Also plz declare this in the iinternal tableas a char field
REWARD if useful
try this
&----
*& Report YITRSDREP_SHPNG_END *
*& *
&----
*& Created By : A.Thuyavan
*
*& Created On : 16.07.2006
*
&----
REPORT ZITRSDREP_SHPNG_END.
TYPE-POOLS : slis.
DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
G_REPID LIKE SY-REPID,
G_EVENTS TYPE SLIS_T_EVENT,
G_EVENTWA TYPE SLIS_ALV_EVENT,
T_LAYOUT TYPE SLIS_LAYOUT_ALV.
Data:
Begin Of Intab Occurs 0.
INCLUDE STRUCTURE VTTK.
Data: VendName(40),
AdditionalText1(40),
AdditionalText2(40),
rsmark(1),
line_color(4) type c.
Data: End Of Intab.
DATA: BEGIN OF BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDCDATA.
Data : Begin Of VenTab Occurs 0,
Lifnr Like Lfa1-Lifnr,
Name1 Like Lfa1-Name1,
End Of VenTab.
TABLES : VTTK.
SELECT-OPTIONS :
TKNUM FOR VTTK-TKNUM,
TDLNR FOR VTTK-TDLNR,
TPLST FOR VTTK-TPLST,
DATBG FOR VTTK-DATBG NO-EXTENSION,
VSBED FOR VTTK-VSBED.
INITIALIZATION.
G_REPID = SY-REPID.
Start-of-selection.
PERFORM RETREIVE-DATA.
PERFORM GET-VENDOR-NAME.
PERFORM SET-LAYOUT.
PERFORM fieldcat_init USING gt_fieldcat[].
PERFORM FUNC_REUSE_ALV.
&----
*& Form SET-LAYOUT
&----
text
----
FORM SET-LAYOUT.
T_LAYOUT-ZEBRA = 'X'.
T_LAYOUT-GET_SELINFOS = 'X'.
T_LAYOUT-DETAIL_POPUP = 'X'.
T_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
G_EVENTWA-NAME = 'TOP_OF_PAGE'.
G_EVENTWA-FORM = 'TOP_OF_PAGE'.
t_layout-box_fieldname = 'RSMARK'.
T_layout-coltab_fieldname = 'CELL_COLOR'.
APPEND G_EVENTWA TO G_EVENTS.
ENDFORM. "SET-LAYOUT
&----
*& Form FIELDCAT_INIT
&----
text
----
-->RT_FIELDCAT text
----
FORM FIELDCAT_INIT USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: POS TYPE I VALUE 0.
clear: ls_fieldcat, rt_fieldcat[].
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'TKNUM'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'TKNUM'.
LS_FIELDCAT-REF_TABNAME = 'VTTK'.
LS_FIELDCAT-DO_SUM = 'X'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'TDLNR'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'TDLNR'.
LS_FIELDCAT-REF_TABNAME = 'VTTK'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'VENDNAME'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'NAME1'.
LS_FIELDCAT-REF_TABNAME = 'LFA1'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'SIGNI'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'SIGNI'.
LS_FIELDCAT-REF_TABNAME = 'VTTK'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'TEXT1'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'TEXT1'.
LS_FIELDCAT-REF_FIELDNAME = 'VTTK'.
ls_fieldcat-seltext_L = 'TEXT1'.
ls_fieldcat-seltext_l = 'Additional.Text1 '.
ls_fieldcat-outputlen = 40.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-Input = 'X'.
append ls_fieldcat to rt_fieldcat.
clear ls_fieldcat.
POS = POS + 1.
ls_fieldcat-col_pos = POS.
LS_FIELDCAT-FIELDNAME = 'TEXT2'.
LS_FIELDCAT-TABNAME = 'INTAB'.
LS_FIELDCAT-REF_FIELDNAME = 'TEXT1'.
LS_FIELDCAT-REF_FIELDNAME = 'VTTK'.
ls_fieldcat-seltext_L = 'TEXT1'.
ls_fieldcat-seltext_l = 'Additional.Text2 '.
ls_fieldcat-outputlen = 40.
ls_fieldcat-datatype = 'CHAR'.
ls_fieldcat-Input = 'X'.
ls_fieldcat-no_out = 'X'.
append ls_fieldcat to rt_fieldcat.
ENDFORM. "FIELDCAT_INIT
&----
*& Form FUNC_REUSE_ALV
&----
text
----
FORM FUNC_REUSE_ALV.
call function 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
i_callback_pf_status_set = 'SET_STANDARD'
i_callback_user_command = 'USER_COMMAND'
is_layout = t_layout
it_fieldcat = gt_fieldcat[]
I_SAVE = 'A'
IT_EVENTS = G_EVENTS[]
TABLES
T_OUTTAB = INTAB
EXCEPTIONS
program_error = 1
others = 2.
ENDFORM. "FUNC_REUSE_ALV
&----
*& Form RETREIVE-DATA
&----
text
----
FORM RETREIVE-DATA.
SELECT * INTO TABLE INTAB
FROM VTTK WHERE Tknum In Tknum
And TDLNR IN TDLNR
AND TPLST IN TPLST
AND DATBG IN DATBG
AND VSBED IN VSBED
AND STTEN = '' .
ENDFORM. "RETREIVE-DATA
&----
*& Form set_standard
&----
text
----
-->EXTAB text
----
Form set_standard using extab type slis_t_extab. "REUSE
set pf-status 'STANDARD'.
EndForm. "set_standard
&----
*& Form user_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELD text
----
Form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield. "REUSE
Case r_Ucomm.
When '&POST'.
Perform BDC-Close-Shipping.
Leave To Screen 0.
EndCase.
EndForm. "user_command
&----
*& Form BDC-Close-Shipping
&----
text
----
Form BDC-Close-Shipping.
Loop At Intab Where Rsmark = 'X'.
perform bdc_dynpro using 'SAPMV56A' '0011'.
perform bdc_field using 'BDC_CURSOR'
'VTTK-TKNUM'.
perform bdc_field using 'BDC_OKCODE'
'=UETP'.
perform bdc_field using 'VTTK-TKNUM'
Intab-Tknum. " '227634'.
To Select General Data Tab.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_OKCODE'
'=TKAL'.
perform bdc_dynpro using 'SAPMV56A' '0020'.
perform bdc_field using 'BDC_OKCODE'
'=ST07'.
perform bdc_field using 'BDC_CURSOR'
'VTTK-VSBED'.
To Close Shipping
perform bdc_dynpro using 'SAPMV56A' '0020'.
perform bdc_field using 'BDC_OKCODE'
'=H_AI'.
perform bdc_field using 'BDC_CURSOR'
'VTTK-VSBED'.
To Update Text1 & 2
perform bdc_dynpro using 'SAPMV56A' '0020'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
Perform bdc_field using 'BDC_CURSOR'
'VTTK-TEXT2'.
perform bdc_field using 'VTTK-TEXT1'
Intab-Text1. " 'Test1'.
perform bdc_field using 'VTTK-TEXT2'
Intab-Text2. " 'Test2 Test3'.
Call transaction 'VT02' using bdcdata mode 'E' update 'S'.
Refresh BdcData.
EndLoop.
EndForm. "BDC-Close-Shipping
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD
&----
*& Form Get-Vendor-Name
&----
text
----
Form Get-Vendor-Name.
Data : Currrow Type I.
If Not Intab[] is Initial.
Select Lifnr Name1 Into Table VenTab
From Lfa1
For All Entries In Intab
Where Lifnr = Intab-Tdlnr.
EndIf.
Loop At Intab.
Currrow = Sy-Tabix.
Read Table VenTab With Key Lifnr = Intab-Tdlnr.
If Sy-Subrc = 0.
Intab-VendName = Ventab-Name1.
Modify Intab Index Currrow..
EndIf.
EndLoop.
EndForm. "Get-Vendor-Name
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
i dont know therre may be a different way other ex[perts can suggest.
may be this may help
But what i had done was
this code was on user command on press of some button
LOOP AT itab ASSIGNING <fs_itab>.
READ LINE sy-tabix LINE VALUE INTO wa_itab.
*this will give you the complete record in the work area.
IF wa_itab-DECISION= 'X'.
*check if checkbox is ticked
<fs_itab>-DECISION = 'X'.
*update internal table and further processing if any
ENDIF.
ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
i dont know therre may be a different way other ex[perts can suggest.
may be this may help
But what i had done was
this code was on user command on press of some button
LOOP AT itab ASSIGNING <fs_itab>.
READ LINE sy-tabix LINE VALUE INTO wa_itab.
*this will give you the complete record in the work area.
IF wa_itab-DECISION= 'X'.
*check if checkbox is ticked
<fs_itab>-DECISION = 'X'.
*update internal table and further processing if any
ENDIF.
ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Reddy,
For this you have to use the handle_data_changed event.
eg :
&----
Event Handler Declarations
&----
----
CLASS lcl_event_receiver DEFINITION
----
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "lcl_event_receiver DEFINITION
----
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
----
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
PERFORM handle_data_changed USING er_data_changed.
ENDMETHOD. "handle_data_changed
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
FORM handle_data_changed USING ir_data_changed
TYPE REF TO cl_alv_changed_data_protocol.
DATA: lwa_mod_cell TYPE lvc_s_modi,
lwa_row_no TYPE lvc_s_roid,
lwa_column_id TYPE lvc_s_col.
LOOP AT ir_data_changed->mt_mod_cells
INTO lwa_mod_cell.
CASE lwa_mod_cell-fieldname.
WHEN c_status.
CLEAR wa_final.
READ TABLE i_final INTO wa_final
INDEX lwa_mod_cell-row_id.
IF sy-subrc = 0.
wa_final-status = lwa_mod_cell-value.
wa_final-mark = 'X'.
MODIFY i_final FROM wa_final
INDEX lwa_mod_cell-row_id
TRANSPORTING status mark.
IF sy-subrc NE 0.
ENDIF.
ENDIF.
ENDCASE.
ENDLOOP.
ENDFORM. " handle_data_changed
Dont forget to register the events.
Reward If Useful.
Regards,
Chitra
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
use alv.
refer this
TYPE-POOLS slis. " Global ALV types
DATA : cdhdr TYPE cdhdr. " Change document header
SELECT-OPTIONS :
s_objcls FOR cdhdr-objectclas OBLIGATORY,
s_objtid FOR cdhdr-objectid,
s_chngnr FOR cdhdr-changenr,
s_usrnam FOR cdhdr-username DEFAULT sy-uname,
s_udate FOR cdhdr-udate DEFAULT sy-datum,
s_time FOR cdhdr-utime,
s_tcode FOR cdhdr-tcode,
s_plncnr FOR cdhdr-planchngnr,
s_chngno FOR cdhdr-act_chngno,
s_wsplnd FOR cdhdr-was_plannd,
s_chngid FOR cdhdr-change_ind.
SELECTION-SCREEN SKIP.
PARAMETERS p_max TYPE numc3 OBLIGATORY DEFAULT '200'.
----
TYPES :
BEGIN OF ty_s_cdhdr.
INCLUDE STRUCTURE cdhdr.
TYPES : checkbox,
END OF ty_s_cdhdr,
BEGIN OF ty_s_cdpos.
INCLUDE STRUCTURE cdpos.
TYPES : checkbox,
END OF ty_s_cdpos.
----
DATA :
Layout for ALV
gs_layout TYPE slis_layout_alv,
Change document header
t_cdhdr TYPE TABLE OF ty_s_cdhdr.
----
START-OF-SELECTION.
Read Change document header
SELECT * INTO TABLE t_cdhdr
UP TO p_max ROWS
FROM cdhdr
WHERE objectclas IN s_objcls
and objectid in s_objtid
and changenr in s_chngnr
AND username IN s_usrnam
AND udate IN s_udate
AND utime IN s_time
AND tcode IN s_tcode
AND planchngnr IN s_plncnr
AND act_chngno IN s_chngno
AND was_plannd IN s_wsplnd
AND change_ind IN s_chngid.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-box_fieldname = 'CHECKBOX'.
Display ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'CDHDR'
is_layout = gs_layout
TABLES
t_outtab = t_cdhdr.
----
FORM USER_COMMAND *
----
FORM user_command USING u_ucomm TYPE syucomm
us_selfield TYPE slis_selfield. "#EC CALLED
Macro definition
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA :
ls_cdhdr TYPE ty_s_cdhdr,
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv,
Change document items
lt_cdpos TYPE TABLE OF ty_s_cdpos.
CASE u_ucomm.
WHEN '&IC1'.
PERFORM check_marked USING us_selfield.
Read Change document items
LOOP AT t_cdhdr INTO ls_cdhdr WHERE checkbox = 'X'.
SELECT * APPENDING TABLE lt_cdpos
FROM cdpos
WHERE objectclas = ls_cdhdr-objectclas
AND objectid = ls_cdhdr-objectid
AND changenr = ls_cdhdr-changenr.
ENDLOOP.
m_sort 'CHANGENR'.
Display ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'CDPOS'
is_layout = gs_layout
it_sort = lt_sort
TABLES
t_outtab = lt_cdpos.
ENDCASE.
ENDFORM. " USER_COMMAND
----
Form CHECK_MARKED
----
What has been marked in t_cdhdr
----
FORM check_marked USING us_selfield TYPE slis_selfield.
FIELD-SYMBOLS :
<cdhdr> TYPE ty_s_cdhdr.
READ TABLE t_cdhdr TRANSPORTING NO FIELDS WITH KEY checkbox = 'X'.
IF NOT sy-subrc IS INITIAL AND
NOT us_selfield-tabindex IS INITIAL.
READ TABLE t_cdhdr INDEX us_selfield-tabindex ASSIGNING <cdhdr>.
<cdhdr>-checkbox = 'X'.
ENDIF.
ENDFORM. " CHECK_MARKED
***************************
additional references:
REfer the program:
BCALV_EDIT_04
use code like this....
ElseiF w_fcat1-fieldname = 'CHEK_BOX'.
w_fcat1-col_pos = 1.
w_fcat1-seltext_l = 'EDIT'.
w_fcat1-Checkbox = 'X'.
w_fcat1-EDIT = 'X'.
MODIFY t_fcat1 FROM w_fcat1.
Regards
Vasu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
95 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.