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 grid: editable individaul fields or editable rows

Former Member
0 Likes
2,389

Hi All,

i want to have the individual fields in an ALV or a complete row editable...

Currently i am using the REUSE_ALV_GRID_DISPLAY where in the fieldcatalog if i use the edit=X then the whole column is editable...

But instead i want the particular field or the entire row to be editable...

Also let me know if it is possible using the SALV classes(Alv using classes? if so provide the releavant class and method)

Can anyone provide the solution regarding this...

Thanks

Shiva

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
737

Hi Shiva,

your requirement will be achieved easily through OOPS ALV.

Check the below links for Editable ALV in OOPS.

[http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm|http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm]

[http://www.saptechnical.com/Tutorials/ALV/Edit/F4.htm|http://www.saptechnical.com/Tutorials/ALV/Edit/F4.htm]

Check the below example program in SE38.

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_EDIT_05

BCALV_EDIT_06

BCALV_EDIT_07

BCALV_EDIT_08

BCALV_FULLSCREEN_GRID_EDI

BCALV_GRID_EDIT

BCALV_GRID_EDIT_DELTA

BCALV_GRID_EDIT_DELTA_APP

BCALV_GRID_EDIT_DELTA_EVE

BCALV_GRID_EDIT_DELTAM01

BCALV_GRID_EDIT_VERIFY

BCALV_GRID_EDIT_VERIFY_C0

BCALV_GRID_EDIT_VERIFY_CL

BCALV_GRID_EDIT_VERIFY_E0

BCALV_GRID_EDIT_VERIFY_F0

BCALV_GRID_EDIT_VERIFY_M0

BCALV_GRID_EDIT_VERIFY_TO

BCALV_GRID_EDIT_VERIFY_TO

BCALV_TEST_FULLSCREEN_EDI

BCALV_TEST_GRID_EDIT

Regards,

Boobalan Suburaj

5 REPLIES 5
Read only

Former Member
0 Likes
738

Hi Shiva,

your requirement will be achieved easily through OOPS ALV.

Check the below links for Editable ALV in OOPS.

[http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm|http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm]

[http://www.saptechnical.com/Tutorials/ALV/Edit/F4.htm|http://www.saptechnical.com/Tutorials/ALV/Edit/F4.htm]

Check the below example program in SE38.

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_EDIT_05

BCALV_EDIT_06

BCALV_EDIT_07

BCALV_EDIT_08

BCALV_FULLSCREEN_GRID_EDI

BCALV_GRID_EDIT

BCALV_GRID_EDIT_DELTA

BCALV_GRID_EDIT_DELTA_APP

BCALV_GRID_EDIT_DELTA_EVE

BCALV_GRID_EDIT_DELTAM01

BCALV_GRID_EDIT_VERIFY

BCALV_GRID_EDIT_VERIFY_C0

BCALV_GRID_EDIT_VERIFY_CL

BCALV_GRID_EDIT_VERIFY_E0

BCALV_GRID_EDIT_VERIFY_F0

BCALV_GRID_EDIT_VERIFY_M0

BCALV_GRID_EDIT_VERIFY_TO

BCALV_GRID_EDIT_VERIFY_TO

BCALV_TEST_FULLSCREEN_EDI

BCALV_TEST_GRID_EDIT

Regards,

Boobalan Suburaj

Read only

Former Member
0 Likes
737

It is possible in Class ALV (OOPS).

Sample code:

LOOP AT itab INTO wa.

IF wa-field1 = 'X'. "condition

wa_stylerow-fieldname = 'FIELD1'.

wa_stylerow-style = cl_gui_alv_grid=>mc_style_enabled.

APPEND wa_stylerow TO wa-it_styletab.

CLEAR wa_stylerow.

ENDIF.

MODIFY itab FROM wa

TRANSPORTING it_styletab.

ENDLOOP.

ITAB is the output internal table. Along with the output fields, declare additional field it_styletab of type lvc_t_styl.

after calling the method SET_TABLE_FOR_FIRST_DISPLAY, call another method,

CALL METHOD tt_gr_alvgrid->set_ready_for_input

EXPORTING

i_ready_for_input = 1.

Again refresh the grid using REFRESH_TABLE_DISPLAY method.

set layout attribute gs_layout-stylefname = 'IT_STYLETAB'.

Regards,

Lakshmi.

Edited by: Santhanalakshmi V on Jun 18, 2008 6:15 PM

Read only

0 Likes
737

Hi,

I did the same thing, what you mentioned here except method name -

i have used - mc_style_disabled since i need to disable in alv for certain field values and others should be enable.

I am not sure where exactly i am doing wrong. As you said i did everything... apart from that do i need to do anything else...please suggest me.

Thanks

Read only

Former Member
0 Likes
737

Hi,

Check the program BCALV_EDIT_02, it suits your requirement.

Thanks,

Rajinikanth

Read only

Former Member
0 Likes
737

Hi,

The fields you want editable just set the fieldcatlog parameter edit = 'X' for that field.

This will make that field only editable .

Below is the sample code where only specific fields are editable .

This code will also help you in many aspects.

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

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