Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV

Former Member
0 Likes
655

Hi All,

I am using the ALV program. In the output list i am making one field as editable. After editing the particular value i want to save that value to the concerned DB table. I am able to edit the particular field on the output list but after that i am not getting how to save the edited entry in the DB table. So will you please help me out how to clear out this issue. If anyone sends the desired code for the same it will be more helpfull.

Points will be rewarded for the valuable answers.

Regards,

Santosh

7 REPLIES 7
Read only

Former Member
Read only

Former Member
0 Likes
620

Hi,

Below is the sample code

report ztest_alv_check message-id zz .

type-pools: slis.
data: x_fieldcat type slis_fieldcat_alv,
it_fieldcat type slis_t_fieldcat_alv,
l_layout type slis_layout_alv,
x_events type slis_alv_event,
it_events type slis_t_event.

data: begin of itab occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of itab.

select vbeln
posnr
from vbap
up to 20 rows
into table itab.

x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-seltext_l = 'VBELN'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-input = 'X'.
x_fieldcat-edit = 'X' ( edit).
x_fieldcat-col_pos = 1.
append x_fieldcat to it_fieldcat.
clear x_fieldcat.

x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-seltext_l = 'POSNR'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-input = 'X'.
x_fieldcat-edit = 'X'( edit).
x_fieldcat-col_pos = 2.
append x_fieldcat to it_fieldcat.
clear x_fieldcat.

l_layout-zebra = 'X'.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = sy-repid
is_layout = l_layout
i_callback_pf_status_set = 'STATUS'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcat
tables
t_outtab = itab
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.

"using the PF-status enable the SAVE button
"give some OKCODE to SAVE button and handle it
"using user_command form
form status using p_extab type slis_t_extab.

    *
          o Pf status

set pf-status 'STATUS'.
endform. " STATUS

form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.

case r_ucomm.

when 'BACK' or 'CANC' or 'EXIT'.
leave to screen 0.
when 'SAVE'.
"here you have to find the changed records,and modify the DB.
endcase.
endform. "USER_COMMAND

Thanks

Vikranth

Edited by: Khimavath Vikranth on Jun 19, 2008 3:36 PM

Read only

Former Member
0 Likes
620

Hi,

Please refer the link below:

http://www.saptechnical.com/Tutorials/ALV/Edit/demo.htm

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
620

&----


*& Report ZTS_REP_ONLINEDISPLAY

*&

&----


*&

*&

&----


REPORT ZTS_REP_ONLINEDISPLAY no standard page heading line-size 328

.

TABLES :zts_tab_category,zts_tab_manufac,zts_tab_product, ZTS_TAB_SAHEAD, ZTS_TAB_SALINE, ZTS_TAB_SASCHEDU.

DATA : BEGIN OF lt_cate OCCURS 0,

cano TYPE zcano,

cades TYPE zcades,

umes TYPE zumes,

END OF lt_cate.

DATA : BEGIN OF lt_manu OCCURS 0,

mgfid TYPE zmgfid,

cano TYPE zcano ,

prono TYPE zprono,

mgfna TYPE zmgfna,

mgfeid TYPE zmgfeid,

mgfwb TYPE zmgfwb,

END OF lt_manu.

DATA : BEGIN OF lt_prod OCCURS 0,

prono TYPE zprono,

prodes TYPE zprodes,

cano TYPE zcano,

mgfid TYPE zmgfid,

proda TYPE zproda,

valdat TYPE zvaldat,

mrprte TYPE zmrprte,

curr TYPE waers,

wardat TYPE zwardat,

END OF lt_prod.

DATA : BEGIN OF lt_final OCCURS 0,

COUNT TYPE I,

chbox TYPE c,

cano TYPE zcano,

cades TYPE zcades,

umes TYPE zumes,

mgfid TYPE zmgfid,

prono TYPE zprono,

mgfna TYPE zmgfna,

mgfeid TYPE zmgfeid,

mgfwb TYPE zmgfwb,

prodes TYPE zprodes,

proda TYPE zproda,

valdat TYPE zvaldat,

mrprte TYPE zmrprte,

curr TYPE waers,

wardat TYPE zwardat,

orderquamtity(3) TYPE n,

END OF lt_final.

START-OF-SELECTION.

SET PF-STATUS 'ONLINE'.

SELECT cano cades umes FROM zts_tab_category INTO TABLE lt_cate.

SELECT mgfid cano prono mgfna mgfeid mgfwb FROM zts_tab_manufac INTO TABLE lt_manu.

SELECT prono prodes cano mgfid proda valdat mrprte curr wardat FROM zts_tab_product INTO TABLE lt_prod.

DATA : LV_COUNT_X TYPE I.

LOOP AT lt_cate.

lt_final-cano = lt_cate-cano.

lt_final-cades = lt_cate-cades.

lt_final-umes = lt_cate-umes.

LOOP AT lt_manu WHERE cano = lt_cate-cano.

lt_final-mgfid = lt_manu-mgfid.

lt_final-cano = lt_manu-cano.

lt_final-prono = lt_manu-prono.

lt_final-mgfna = lt_manu-mgfna.

lt_final-mgfeid = lt_manu-mgfeid.

lt_final-mgfwb = lt_manu-mgfwb.

LOOP AT lt_prod WHERE cano = lt_cate-cano AND prono = lt_manu-prono .

lt_final-prono = lt_prod-prono.

lt_final-prodes = lt_prod-prodes.

lt_final-cano = lt_prod-cano.

lt_final-mgfid = lt_prod-mgfid.

lt_final-proda = lt_prod-proda.

lt_final-valdat = lt_prod-valdat.

lt_final-mrprte = lt_prod-mrprte.

lt_final-curr = lt_prod-curr.

LV_COUNT_X = LV_COUNT_X + 1.

lt_final-COUNT = LV_COUNT_X .

APPEND lt_final.

ENDLOOP.

ENDLOOP.

ENDLOOP.

WRITE : SY-ULINE,

/ SY-VLINE,

(4) 'S.No',

sy-vline,

(7) Sel.Odr',

sy-vline,

(7) 'Catg.No'.

sy-vline,

(23)'Cat.Description',

*----


*----


uline.

LOOP AT lt_final.

WRITE : / SY-VLINE,

(4) lt_final-COUNT,

sy-vline,

(7) lt_final-chbox AS CHECKBOX,

sy-vline,

lt_final-cano,

lt_final-cades,

lt_final-umes,

lt_final-mgfid,

lt_final-cano,

lt_final-prono,

lt_final-mgfna,

lt_final-mgfeid,

lt_final-mgfwb,

lt_final-prono,

lt_final-prodes,

lt_final-cano,

lt_final-mgfid,

lt_final-proda,

lt_final-valdat,

lt_final-mrprte,

lt_final-curr,

LT_FINAL-ORDERQUAMTITY INPUT.

ENDLOOP.

data : lv_count_final type i.

data : lv_order_qty(3) type n.

vl_count_x = vl_count_x + 5.

CASE SY-UCOMM.

WHEN 'ADD UP'.

DO lv_count_x TIMES.

READ LINE sy-index FIELD VALUE lt_final-chbox lt_final-COUNT

INTO lv_count_final.

READ LINE sy-index FIELD VALUE lt_final-chbox LT_FINAL-ORDERQUAMTITY

INTO lv_order_qty.

IF lt_final-chbox = 'X'.

if lv_order_qty is NOT initial.

lt_final-chbox = 'X'.

LT_FINAL-ORDERQUAMTITY = lv_order_qty.

modify lt_final transporting chbox ORDERQUAMTITY where COUNT = lv_count_finaL.

ELSE.

MESSAGE 'Enter the Order Qty for Selected Record' type 'E'.

ENDIF.

ENDIF.

CLEAR lv_order_qty.

CLEAR lv_count_final.

ENDDO.

DATA : LV_SDQUTY TYPE MENGE_D,

LV_SDAMT TYPE DMBTR.

LOOP AT LT_FINAL WHERE CHBOX = 'X'.

LT_FINAL-MRPRTE = LT_FINAL-MRPRTE * LT_FINAL-ORDERQUAMTITY.

LV_SDAMT = LT_FINAL-MRPRTE + LV_SDAMT.

LV_SDQUTY = LV_SDQUTY + LT_FINAL-ORDERQUAMTITY.

ENDLOOP.

DATA : LV_SDNO TYPE VBELN,

LV_UNAME TYPE ZUNAME.

SELECT SINGLE MAX( SDNO ) FROM ZTS_TAB_SAHEAD INTO LV_SDNO.

SELECT SINGLE MAX( UNAME ) FROM ZTS_TAB_USER INTO LV_UNAME WHERE CHECK1 = 'X'.

LV_SDNO = LV_SDNO + 1.

ZTS_TAB_SAHEAD-SDNO = LV_SDNO.

ZTS_TAB_SAHEAD-SDDA = SY-DATUM.

ZTS_TAB_SAHEAD-UNAME = LV_UNAME.

ZTS_TAB_SAHEAD-SDQUTY = LV_SDQUTY.

ZTS_TAB_SAHEAD-SDAMT = LV_SDAMT.

INSERT ZTS_TAB_SAHEAD.

if sy-subrc = 0.

message 'sales duicument is successfully created' lv_sdno type 'S'.

else.

message 'no sales ducument created' lv_sdno type 'E'.

endif.

CLEAR : LV_SDQUTY,LV_SDAMT.

DATA : BEGIN OF LT_FLINE OCCURS 0,

CANO TYPE ZCANO,

END OF LT_FLINE.

LOOP AT LT_FINAL WHERE CHBOX = 'X'.

LT_FLINE-CANO = LT_FINAL-CANO.

APPEND LT_FLINE.

ENDLOOP.

DELETE ADJACENT DUPLICATES FROM LT_FLINE COMPARING CANO.

LOOP AT LT_FLINE.

LOOP AT LT_FINAL WHERE CANO = LT_FLINE-CANO AND CHBOX = 'X'.

LT_FINAL-MRPRTE = LT_FINAL-MRPRTE * LT_FINAL-ORDERQUAMTITY.

LV_SDAMT = LT_FINAL-MRPRTE + LV_SDAMT.

LV_SDQUTY = LV_SDQUTY + LT_FINAL-ORDERQUAMTITY.

ENDLOOP.

DATA LV_LINENO TYPE I VALUE 9.

LV_LINENO = LV_LINENO + 1.

ZTS_TAB_SALINE-SDNO = LV_SDNO.

ZTS_TAB_SALINE-SDINO = LV_LINENO.

ZTS_TAB_SALINE-CANO = LT_FINAL-CANO.

ZTS_TAB_SALINE-SDINO = LV_SDQUTY.

ZTS_TAB_SALINE-SDNO = LV_SDAMT.

INSERT ZTS_TAB_SALINE.

CLEAR : LV_SDQUTY,LV_SDAMT.

ENDLOOP.

CLEAR : LV_LINENO.

LV_LINENO = 9.

LOOP AT LT_FLINE.

LV_LINENO = LV_LINENO + 1.

LOOP AT LT_FINAL WHERE CANO = LT_FLINE-CANO AND CHBOX = 'X'.

DATA : LV_SHLINENO TYPE I.

LV_SHLINENO = LV_SHLINENO + 1.

ZTS_TAB_SASCHEDU-SDNO = LV_SDNO.

ZTS_TAB_SASCHEDU-SDINO = LV_LINENO.

ZTS_TAB_SASCHEDU-SDSHNO = LV_SHLINENO.

ZTS_TAB_SASCHEDU-PRONO = LT_FINAL-PRONO.

ZTS_TAB_SASCHEDU-SDQUTY = LT_FINAL-ORDERQUAMTITY.

ZTS_TAB_SASCHEDU-NTPRC = LT_FINAL-MRPRTE .

ZTS_TAB_SASCHEDU-TOPRC = LT_FINAL-ORDERQUAMTITY * LT_FINAL-MRPRTE.

INSERT ZTS_TAB_SASCHEDU.

ENDLOOP.

ENDLOOP.

when 'BACK'.

SET SCREEN 0.

LEAVE PROGRAM.

ENDCASE.

the same report in classical

this will help u.............

Reward IF......

Regards

Anbu

Read only

Former Member
0 Likes
620

if u r using ALV GRID control....then use CHECK_CHANGED_DATA method.

Read only

Former Member
0 Likes
620

Hi,

I have the sample code where fields are editable and user press save button and if user selects that record he can generate a smartform using that record.

I think you can check the code and put your logic of saving the data from internal table to databse instead of selection logic and call smartform.

*********************************************************************

REPORT ZMSTR0022.

CONSTANTS: C_FORM_NAME TYPE TDSFNAME VALUE 'ZMST_PER_APPL'.

TABLES :ZMST_PERMIT.

TYPE-POOLS: SLIS.

TYPE-POOLS :VRM. "Value Request Manager

TYPES:BEGIN OF STRU_ZMST_PERMIT,

CHECKBOX(1) TYPE C, " Checkbox

ZPIDNUM TYPE ZMST_PERMIT-ZPIDNUM, " Permit ID No.

ZARBDSC TYPE ZMST_PERMIT-ZARBDSC, " Arabic description

ZENGDSC TYPE ZMST_PERMIT-ZENGDSC, " English description

ZENQUAN TYPE ZMST_PERMIT-ZENQUAN, " Qty in English

ZARQUAN TYPE ZMST_PERMIT-ZARQUAN, " Qty in Arabic

ZENUOM TYPE ZMST_PERMIT-ZENUOM, " UoM

ZTARIFF TYPE ZMST_PERMIT-ZTARIFF, " Tariff No

ZARRPRT TYPE ZMST_PERMIT-ZARRPRT, " Port code

ZPRT_NAME(60) TYPE C, " Port name in Arabic

ZPERNUM TYPE ZMST_PERMIT-ZPERNUM, " Reference No

ZEFFDT TYPE ZMST_PERMIT-ZEFFDT, " Valid from

ZEXPDT TYPE ZMST_PERMIT-ZEXPDT, " Valid to

ZARB_DT(15) TYPE C, " Arabic Date of letter

ZNAME_AUTH(50) TYPE C, " Name of Authority

ZPERM_MIN(50) TYPE C, " Permit Ministry

END OF STRU_ZMST_PERMIT.

TYPES:BEGIN OF STRU_PERMIT,

ZPIDNUM TYPE ZMST_PERMIT-ZPIDNUM, " Permit ID No.

ZENGDSC TYPE ZMST_PERMIT-ZENGDSC, " English description

ZARBDSC TYPE ZMST_PERMIT-ZARBDSC, " Arabic description

ZTARIFF TYPE ZMST_PERMIT-ZTARIFF, " Tariff No

ZPERNUM TYPE ZMST_PERMIT-ZPERNUM, " Reference No

ZARRPRT TYPE ZMST_PERMIT-ZARRPRT, " Port code

ZEFFDT TYPE ZMST_PERMIT-ZEFFDT, " Valid from

ZEXPDT TYPE ZMST_PERMIT-ZEXPDT, " Valid to

END OF STRU_PERMIT.

TYPES: BEGIN OF STRU_FORM_PERMIT,

ZARBDSC TYPE ZMST_PERMIT-ZARBDSC, " Arabic description

ZENGDSC TYPE ZMST_PERMIT-ZENGDSC, " English description

ZENQUAN TYPE ZMST_PERMIT-ZENQUAN, " Qty in English

ZARQUAN TYPE ZMST_PERMIT-ZARQUAN, " Qty in Arabic

ZENUOM TYPE ZMST_PERMIT-ZENUOM, " UoM

ZTARIFF TYPE ZMST_PERMIT-ZTARIFF, " Tariff No

ZPRT_NAME(60) TYPE C, " Port name in Arabic

END OF STRU_FORM_PERMIT.

DATA: IT_PERMIT TYPE TABLE OF STRU_PERMIT.

DATA: IT_ZMST_PERMIT TYPE TABLE OF STRU_ZMST_PERMIT,

WA_ZMST_PERMIT LIKE LINE OF IT_ZMST_PERMIT,

IT_FORM_PERMIT TYPE TABLE OF STRU_FORM_PERMIT,

WA_FORM_PERMIT LIKE LINE OF IT_FORM_PERMIT.

DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT TYPE TABLE OF SLIS_FIELDCAT_ALV.

DATA: W_FORM TYPE RS38L_FNAM.

DATA: W_NAME_AUTH(50),

W_ZARBDT(15),

W_ZENGDT(10),

W_ZPRT_NAME(70).

DATA: W_PARAM TYPE SSFCTRLOP.

DATA:W_NAME1 TYPE DFIES-FIELDNAME,

W_NAME2 TYPE HELP_INFO-DYNPROFLD .

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-023.

SELECT-OPTIONS:S_PIDNUM FOR ZMST_PERMIT-ZPIDNUM ,

S_ENGDSC FOR ZMST_PERMIT-ZENGDSC NO INTERVALS LOWER CASE,

S_ARBDSC FOR ZMST_PERMIT-ZARBDSC NO INTERVALS LOWER CASE,

S_TARIFF FOR ZMST_PERMIT-ZTARIFF NO INTERVALS,

S_PERNUM FOR ZMST_PERMIT-ZPERNUM NO INTERVALS,

S_ARRPRT FOR ZMST_PERMIT-ZARRPRT NO INTERVALS MATCHCODE OBJECT ZMST_PORTS.

PARAMETER:P_PERTYP(2) TYPE C AS LISTBOX VISIBLE LENGTH 20.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-LOW.

W_NAME2 = 'S_PIDNUM-LOW'.

W_NAME1 = 'ZPIDNUM'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PIDNUM-HIGH.

W_NAME2 = 'S_PIDNUM-HIGH'.

W_NAME1 = 'ZPIDNUM'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ENGDSC-LOW.

W_NAME2 = 'S_ENGDSC'.

W_NAME1 = 'ZENGDSC'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ARBDSC-LOW.

W_NAME2 = 'S_ARBDSC'.

W_NAME1 = 'ZARBDSC'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_TARIFF-LOW.

W_NAME2 = 'S_TARIFF'.

W_NAME1 = 'ZTARIFF'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PERNUM-LOW.

W_NAME2 = 'S_PERNUM'.

W_NAME1 = 'ZPERNUM'.

PERFORM F4_HELP USING W_NAME1 W_NAME2 . "calling subroutine to provide desired F4 help

AT SELECTION-SCREEN.

IF SY-UCOMM = 'ONLI'.

PERFORM CHECK_INPUT. "calling subroutine to check inputs on selection screen

ENDIF.

INITIALIZATION.

PERFORM VAL_PERTYP.

START-OF-SELECTION.

PERFORM FILL_FIELDCAT. "calling subroutine for filling fieldcatalog

If Permit ministry is blank then fetch data from ZMST_PERMIT otherwise from ZMST_PERMITHI--


IF P_PERTYP IS INITIAL.

PERFORM FETCH_PERMIT. "calling subroutine to fetch data from ZMST_PERMIT

ELSE.

PERFORM FETCH_PERMITHI. "calling subroutine to fetch data from ZMST_PERMITHI

ENDIF.

END-OF-SELECTION.

&----


*& Form fill_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT .

-passing the parameters of layout--


WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

WA_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.

WA_LAYOUT-BOX_TABNAME = 'IT_ZMST_PERMIT'.

-Passing the parameters of fieldcatalog--


WA_FIELDCAT-FIELDNAME = 'ZPIDNUM'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-001.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZARBDSC'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-002.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

WA_FIELDCAT-OUTPUTLEN = 120.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZENGDSC'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-003.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

WA_FIELDCAT-OUTPUTLEN = 120.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZENQUAN'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-004.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZARQUAN'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-005.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZENUOM'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-006.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZTARIFF'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-007.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZARB_DT'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_L = TEXT-013.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZNAME_AUTH'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-014.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-OUTPUTLEN = 50.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZPRT_NAME'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-009.

WA_FIELDCAT-EDIT = 'X'.

WA_FIELDCAT-OUTPUTLEN = 60.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZARRPRT'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-008.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZPERNUM'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-010.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZEFFDT'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-011.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZEXPDT'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-012.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ZPERM_MIN'.

WA_FIELDCAT-TABNAME = 'IT_ZMST_PERMIT'.

WA_FIELDCAT-SELTEXT_M = TEXT-019.

WA_FIELDCAT-OUTPUTLEN = 50.

WA_FIELDCAT-LOWERCASE = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " fill_fieldcat

&----


*& Form alv_disp

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_DISP .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZMSTR0022'

I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_GRID_TITLE = TEXT-015

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

I_SAVE = 'A'

TABLES

T_OUTTAB = IT_ZMST_PERMIT

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. " alv_disp

&----


*& Form PF_STATUS

&----


  • text

----


  • This subroutine sets the GUI status

----


FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'ZSTANDARD_FULLSCREEN'.

ENDFORM. "PF_STATUS

&----


*& Form USER_COMMAND

&----


FORM USER_COMMAND USING R_UCOMM TYPE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.

*For Printing Smartform

IF R_UCOMM = 'PRT'.

CLEAR WA_FORM_PERMIT.

REFRESH IT_FORM_PERMIT.

LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT WHERE CHECKBOX = 'X'.

MOVE-CORRESPONDING WA_ZMST_PERMIT TO WA_FORM_PERMIT.

APPEND WA_FORM_PERMIT TO IT_FORM_PERMIT .

*Check for First occurence of Name of authority

IF WA_ZMST_PERMIT-ZNAME_AUTH NE SPACE.

IF W_NAME_AUTH = ' '.

W_NAME_AUTH = WA_ZMST_PERMIT-ZNAME_AUTH.

ENDIF.

ENDIF.

*Check for First occurence of Arabic date

IF WA_ZMST_PERMIT-ZARB_DT NE SPACE.

IF W_ZARBDT = ' '.

W_ZARBDT = WA_ZMST_PERMIT-ZARB_DT.

ENDIF.

ENDIF.

IF WA_ZMST_PERMIT-ZPRT_NAME NE SPACE.

IF W_ZPRT_NAME = ' '.

MOVE WA_ZMST_PERMIT-ZPRT_NAME TO W_ZPRT_NAME.

CONDENSE W_ZPRT_NAME.

ENDIF.

ENDIF.

CLEAR : WA_FORM_PERMIT, WA_ZMST_PERMIT.

ENDLOOP.

CONCATENATE SY-DATUM0(4) '/' SY-DATUM4(2) '/' SY-DATUM+6(2) INTO W_ZENGDT.

*Printing Subroutine

IF NOT IT_FORM_PERMIT[] IS INITIAL.

PERFORM PRINT_FORM.

ELSE.

MESSAGE TEXT-018 TYPE 'I'.

ENDIF.

ENDIF.

ENDFORM. "user_command

&----


*& Form F4_HELP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F4_HELP USING: W_VAR TYPE DFIES-FIELDNAME

W_VAR1 TYPE HELP_INFO-DYNPROFLD .

Fetching data from zmst_permit for F4 help on PERMIT ID No.--


IF IT_PERMIT[] IS INITIAL.

SELECT ZPIDNUM

ZENGDSC

ZARBDSC

ZTARIFF

ZPERNUM

ZARRPRT

ZEFFDT

ZEXPDT

FROM ZMST_PERMIT INTO CORRESPONDING FIELDS OF TABLE IT_PERMIT.

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = W_NAME1 " 'ZPIDNUM'

DYNPPROG = 'ZMSTR0022'

DYNPNR = SY-DYNNR

DYNPROFIELD = W_NAME2 "'S_PIDNUM'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = IT_PERMIT

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 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.

ENDFORM. " F4_HELP

&----


*& Form check_input

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CHECK_INPUT .

IF S_PIDNUM[] IS INITIAL AND

S_ENGDSC[] IS INITIAL AND

S_ARBDSC[] IS INITIAL AND

S_TARIFF[] IS INITIAL AND

S_PERNUM[] IS INITIAL AND

S_ARRPRT[] IS INITIAL .

MESSAGE TEXT-016 TYPE 'E'.

LEAVE TO TRANSACTION 'ZMSTR022'.

ENDIF.

ENDFORM. " check_input

&----


*& Form print_form

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM PRINT_FORM .

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = C_FORM_NAME

IMPORTING

FM_NAME = W_FORM

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 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.

W_PARAM-LANGU ='AR'.

CALL FUNCTION W_FORM

EXPORTING

CONTROL_PARAMETERS = W_PARAM

W_NAME_AUTH = W_NAME_AUTH

W_ZARBDT = W_ZARBDT

W_ZENGDT = W_ZENGDT

W_ZPRT_NAME = W_ZPRT_NAME

TABLES

IT_FORM_PERMIT = IT_FORM_PERMIT

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5.

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. " print_form

&----


*& Form fetch_Permit

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_PERMIT .

-Fetching data from zmst_permit based on the inputs on selection screen--


SELECT

ZPIDNUM

ZARBDSC

ZENGDSC

ZENQUAN

ZARQUAN

ZENUOM

ZTARIFF

ZARRPRT

ZPERNUM

ZEFFDT

ZEXPDT

FROM ZMST_PERMIT INTO CORRESPONDING FIELDS OF TABLE IT_ZMST_PERMIT

WHERE ZPIDNUM IN S_PIDNUM

AND ZENGDSC IN S_ENGDSC

AND ZARBDSC IN S_ARBDSC

AND ZTARIFF IN S_TARIFF

AND ZPERNUM IN S_PERNUM

AND ZARRPRT IN S_ARRPRT.

IF SY-SUBRC <> 0.

MESSAGE TEXT-017 TYPE 'I'.

LEAVE TO TRANSACTION 'ZMSTR022'.

ELSE.

LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT.

WA_ZMST_PERMIT-ZPERM_MIN = TEXT-020.

MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .

ENDLOOP.

PERFORM ALV_DISP. " calling subroutine for ALV display

ENDIF.

ENDFORM. " fetch_Permit

&----


*& Form fetch_permithi

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_PERMITHI .

-Fetching data from zmst_permit based on the inputs on selection screen--


SELECT

ZPIDNUM

ZARBDSC

ZENGDSC

ZENQUAN

ZARQUAN

ZENUOM

ZTARIFF

ZARRPRT

ZPERNUM

ZEFFDT

ZEXPDT

FROM ZMST_PERMITHI INTO CORRESPONDING FIELDS OF TABLE IT_ZMST_PERMIT

WHERE ZPIDNUM IN S_PIDNUM

AND ZENGDSC IN S_ENGDSC

AND ZARBDSC IN S_ARBDSC

AND ZTARIFF IN S_TARIFF

AND ZPERNUM IN S_PERNUM

AND ZARRPRT IN S_ARRPRT

AND ZPERTYP = P_PERTYP.

IF SY-SUBRC <> 0.

MESSAGE TEXT-017 TYPE 'I'.

LEAVE TO TRANSACTION 'ZMSTR022'.

ELSE.

LOOP AT IT_ZMST_PERMIT INTO WA_ZMST_PERMIT.

CASE P_PERTYP.

WHEN 'I'.

WA_ZMST_PERMIT-ZPERM_MIN = TEXT-021.

MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .

WHEN 'H'.

WA_ZMST_PERMIT-ZPERM_MIN = TEXT-022.

MODIFY IT_ZMST_PERMIT INDEX SY-TABIX FROM WA_ZMST_PERMIT TRANSPORTING ZPERM_MIN .

ENDCASE.

ENDLOOP.

PERFORM ALV_DISP. " calling subroutine for ALV display

ENDIF.

ENDFORM. " fetch_permithi

&----


*& Form val_PERTYP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VAL_PERTYP .

DATA: W_NAME TYPE VRM_ID,

IT_LIST TYPE VRM_VALUES,

WA_VALUE LIKE LINE OF IT_LIST.

WA_VALUE-KEY = ' '.

WA_VALUE-TEXT = TEXT-020.

APPEND WA_VALUE TO IT_LIST.

CLEAR WA_VALUE.

WA_VALUE-KEY = 'I'.

WA_VALUE-TEXT = TEXT-021.

APPEND WA_VALUE TO IT_LIST.

CLEAR WA_VALUE.

WA_VALUE-KEY = 'H'.

WA_VALUE-TEXT = TEXT-022.

APPEND WA_VALUE TO IT_LIST.

CLEAR WA_VALUE.

W_NAME = 'P_PERTYP'.

P_PERTYP = ' '.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = W_NAME

VALUES = IT_LIST

EXCEPTIONS

ID_ILLEGAL_NAME = 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. " val_PERTYP

*************************************************

Help children of U.N World Food Program by rewarding points and encourage others to answer your queries

Read only

Former Member
0 Likes
620

Dear Santosh,

in alv program.

put that editable data into the work area,

and then insert that value into desired data base.

u can do like this

IF itab-frtno = 'workarea value'.

MESSAGE 'do u realy want to enter the changed data' TYPE 'I'.

ELSE.

SELECT frtno FROM zfrt1 INTO s WHERE frtno = itab-frtno.

ENDSELECT.

IF sy-subrc IS NOT INITIAL.

APPEND itab.

INSERT zfrt1 FROM itab.

MESSAGE 'Data saved' TYPE 'S'.

hope now u get an idea.

if help full rewards

are helpfull.

and expected.

vivek