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

Simple ALV grid

Former Member
0 Likes
1,146

can anyone solve my problem,

I just want to add new push button in the application toolbar of a simple ALV grid

can somebody help me in this

7 REPLIES 7
Read only

Former Member
0 Likes
872

Pl. see this code.

REPORT z_alv_eg .

----


  • TYPE POOL DECLARATION FOR ALV REPORT ONLY

----


TYPE-POOLS : slis. "Type Pool for ALV

----


  • CONSTANTS

----


CONSTANTS: c_a(1) TYPE c VALUE 'A', " value of A

c_x(1) TYPE c VALUE 'X', " value of X

c_l(1) TYPE c VALUE 'L', " value of L

c_r(1) TYPE c VALUE 'R', " value of R

c_04(2) TYPE c VALUE '04', " value of 04

c_05(2) TYPE c VALUE '05', " value of 05

c_08(2) TYPE c VALUE '08', " value of 08

c_09(2) TYPE c VALUE '09', " value of 09

c_10(2) TYPE c VALUE '10', " value of 10

c_matnr TYPE fieldname VALUE 'MATNR', " Material

c_charg TYPE fieldname VALUE 'CHARG', " Batch

c_aufnr TYPE fieldname VALUE 'AUFNR', " Order

c_mblnr TYPE fieldname VALUE 'MBLNR', " Mat Doc

c_zeile TYPE fieldname VALUE 'ZEILE', " Item

c_i_alv(5) TYPE c VALUE 'I_ALV', " i_alv

c_mseg TYPE tabname VALUE 'MSEG'.

" table name MSEG

*&----


&

  • TYPES *

*&----


&

  • Type for declaring table I_alv

TYPES: BEGIN OF ty_alv,

werks TYPE werks_d,

matnr TYPE matnr,

charg TYPE charg_d,

aufnr TYPE aufnr,

mblnr TYPE mblnr,

mjahr TYPE mjahr,

zeile TYPE udzeile,

END OF ty_alv.

*&----


&

  • INTERNAL TABLES *

*&----


&

*Internal tables to hold material documenmt information

DATA: i_alv TYPE STANDARD TABLE OF ty_alv WITH HEADER LINE,

*Internal table for field catalog

i_fcat TYPE slis_t_fieldcat_alv.

*&----


&

  • VARIABLES *

*&----


&

DATA: v_repid LIKE sy-repid. " To store program name

*&----


&

  • SELECTION SCREEN *

*&----


&

PARAMETERS: p_werks TYPE werks_d OBLIGATORY.

*&----


&

  • INITIALIZATION *

*&----


&

CLEAR:

  • Internal Tables

i_alv,

i_fcat,

  • Variables

v_repid.

  • Refresh Internal Tables

REFRESH: i_alv,

i_fcat.

  • Assign value to v_repid

v_repid = sy-repid.

*&----


&

  • START OF SELECTION *

*&----


&

START-OF-SELECTION.

*&----


&

  • This subroutine retrieves data from table

  • /GLB/RGTORDGRP_R

*&----


&

PERFORM populate_i_alv.

*Build up fieldcatalog for the fields to be displayed

IF NOT i_alv[] IS INITIAL.

PERFORM fcat_build. " Build the field catalog

ENDIF.

  • Check if the Field Catalog internal Table is not empty

IF NOT i_fcat[] IS INITIAL.

  • Call ALV Grid Viewer

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = v_repid

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = i_fcat

i_default = c_x

i_save = c_a

TABLES

t_outtab = i_alv

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.

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

&----


*& Form populate_i_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM populate_i_alv .

SELECT werks

matnr

charg

aufnr

mblnr

mjahr

zeile

INTO TABLE i_alv

FROM mseg

WHERE werks = p_werks.

IF sy-subrc = 0.

SORT i_alv BY matnr charg aufnr.

ENDIF.

ENDFORM. " populate_i_alv

&----


*& Form fcat_build

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fcat_build .

DATA : l_tabname1 TYPE tabname, "table name

l_sycucol04 TYPE sycucol, "current column

l_sycucol05 TYPE sycucol, "current column

l_sycucol08 TYPE sycucol, "current column

l_sycucol09 TYPE sycucol, "current column

l_sycucol10 TYPE sycucol, "current column

l_field4 TYPE fieldname, "field name

l_field5 TYPE fieldname, "field name

l_field8 TYPE fieldname, "field name

l_field9 TYPE fieldname, "field name

l_field10 TYPE fieldname, "field name

l_txt4 TYPE reptxt, "header text

l_txt5 TYPE reptxt, "header text

l_txt8 TYPE reptxt, "header text

l_txt9 TYPE reptxt, "header text

l_txt10 TYPE reptxt, "header text

l_sel_ltxt4 TYPE reptxt, "header text

l_sel_ltxt5 TYPE reptxt, "header text

l_sel_ltxt8 TYPE reptxt, "header text

l_sel_ltxt9 TYPE reptxt, "header text

l_sel_ltxt10 TYPE reptxt, "header text

l_sel_mtxt4 TYPE reptxt, "header text

l_sel_mtxt5 TYPE reptxt, "header text

l_sel_mtxt8 TYPE reptxt, "header text

l_sel_mtxt9 TYPE reptxt, "header text

l_sel_mtxt10 TYPE reptxt, "header text

l_sel_stxt4 TYPE reptxt, "header text

l_sel_stxt5 TYPE reptxt, "header text

l_sel_stxt8 TYPE reptxt, "header text

l_sel_stxt9 TYPE reptxt, "header text

l_sel_stxt10 TYPE reptxt, "header text

l_reffield4 TYPE fieldname, "Reference field name

l_reffield5 TYPE fieldname, "Reference field name

l_reffield8 TYPE fieldname, "Reference field name

l_reffield9 TYPE fieldname, "Reference field name

l_reffield10 TYPE fieldname, "Reference field name

l_int_tabname TYPE tabname. "internal table name

  • Assign table name for ALV report

l_tabname1 = c_mseg. "table name

  • Assign Current column position

l_sycucol04 = c_04. " value 04

l_sycucol05 = c_05. " value 05

l_sycucol08 = c_08. " value 08

l_sycucol09 = c_09. " value 09

l_sycucol10 = c_10. " value 10

  • Assign Internal table name

l_int_tabname = c_i_alv.

  • Assign Detailed text to printed

l_txt4 = text-004. " Material

l_txt5 = text-005. " Batch

l_txt8 = text-008. " Order

l_txt9 = text-009. " Mat Doc

l_txt10 = text-010." Item

  • Assign Detailed text to printed-long

l_sel_ltxt4 = text-004. " Material

l_sel_ltxt5 = text-005. " Batch

l_sel_ltxt8 = text-008. " Order

l_sel_ltxt9 = text-009. " Mat Doc

l_sel_ltxt10 = text-010. " Item

  • Assign Detailed text to printed-medium

l_sel_mtxt4 = text-004. " Material

l_sel_mtxt5 = text-005. " Batch

l_sel_mtxt8 = text-008. " Order

l_sel_mtxt9 = text-009. " Mat Doc

l_sel_mtxt10 = text-010. " Item

  • Assign Detailed text to printed-short

l_sel_stxt4 = text-004. " Material

l_sel_stxt5 = text-005. " Batch

l_sel_stxt8 = text-008. " Order

l_sel_stxt9 = text-009. " Mat Doc

l_sel_stxt10 = text-010. " Item

  • Assign field name to be passed

l_field4 = c_matnr. " Material

l_field5 = c_charg. " Batch

l_field8 = c_aufnr. " Order

l_field9 = c_mblnr. " Mat Doc

l_field10 = c_zeile." Item

  • Assign Reference field name to be passed

l_reffield4 = c_matnr. " Material

l_reffield5 = c_charg. " Batch

l_reffield8 = c_aufnr. " Order

l_reffield9 = c_mblnr. " Mat Doc

l_reffield10 = c_zeile. " Item

  • Populate the field catalog

PERFORM fcat_fill USING:

*POS FIELD TABLE KEY JUST TITLE REFTAB TYPE

*REFFIELD SELTEXTLONG SELTEXTMEDIUM SELTEXTSHORT

l_sycucol04 l_field4 l_int_tabname '' c_l l_txt4

l_tabname1

l_reffield4 l_sel_ltxt4 l_sel_mtxt4 l_sel_stxt4 ,

l_sycucol05 l_field5 l_int_tabname '' c_l l_txt5

l_tabname1

l_reffield5 l_sel_ltxt5 l_sel_mtxt5 l_sel_stxt5 ,

l_sycucol08 l_field8 l_int_tabname '' c_l l_txt8

l_tabname1

l_reffield8 l_sel_ltxt8 l_sel_mtxt8 l_sel_stxt8 ,

l_sycucol09 l_field9 l_int_tabname '' c_l l_txt9

l_tabname1

l_reffield9 l_sel_ltxt9 l_sel_mtxt8 l_sel_stxt9 ,

l_sycucol10 l_field10 l_int_tabname '' c_l l_txt10

l_tabname1

l_reffield10 l_sel_ltxt10 l_sel_mtxt10 l_sel_stxt10 .

ENDFORM. " fcat_build

&----


*& Form fcat_fill

&----


  • Populate field catalog attributes

----


FORM fcat_fill USING p_pos TYPE sycucol

p_fld TYPE fieldname

p_tab TYPE tabname

p_key TYPE char1

p_jus TYPE char1

p_txt TYPE reptext

p_reftab TYPE char30

p_reffld TYPE fieldname

p_seltxtl TYPE reptxt

p_seltxtm TYPE reptxt

p_seltxts TYPE reptxt.

DATA : i_lfl_fcat TYPE slis_fieldcat_alv.

i_lfl_fcat-col_pos = p_pos. "position of column

i_lfl_fcat-fieldname = p_fld. "name of field

i_lfl_fcat-tabname = p_tab. "name of table

i_lfl_fcat-key = p_key. "key flag

i_lfl_fcat-just = p_jus. "justified - R/L

i_lfl_fcat-reptext_ddic = p_txt. "text header

i_lfl_fcat-ref_tabname = p_reftab. "reference table

i_lfl_fcat-ref_fieldname = p_reffld. "reference field

i_lfl_fcat-seltext_l = p_seltxtl. "selection text long

i_lfl_fcat-seltext_m = p_seltxtm. "selection text medium

i_lfl_fcat-seltext_s = p_seltxts. "selection text short

i_lfl_fcat-ddictxt = c_l.

APPEND i_lfl_fcat TO i_fcat.

CLEAR i_lfl_fcat.

ENDFORM. " fcat_fill

&----


*& Form SET_PF_STATUS

&----


  • SUBROUTINE FOR SETTING PF-STATUS

----


FORM set_pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'ZSTATUS'.

"Define custom PF-status with a button on application toolbar

" and attach fcode = TEST with it.

ENDFORM. " SET_PF_STATUS

----


  • FORM USER_COMMAND *

----


  • This form for user command event

----


  • --> R_UCOMM USER COMMAND *

  • --> RS_SELFIELD SEL Field *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

IF r_ucomm = 'TEST'.

SUBMIT z_alv_hi AND RETURN.

ENDIF.

ENDFORM.

Regards,

Joy.

Read only

Former Member
0 Likes
872

check this link u will get all kind of ALV

http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm

Reward IF.............

Regards

Anbu

Read only

Former Member
0 Likes
872

Hi Prakash,

Use Module pool concept and call the screen like declare this in your program.

Module pbo_100 output.

set pf-status 'STATUS100'.

endmodule. " pbo_100 OUTPUT

Module pai_100 input.

case ok_code.

when 'BACK' or 'CANCEL'.

leave to screen 0.

when 'EXIT'.

leave program.

endcase.

endmodule. " pai_100 INPUT

Hope this will help you.

regards,

aadi.

Read only

0 Likes
872

thanks for replying

but my question is not for screen painter, i want push buttons

on ALV grid (using function module)

Read only

0 Likes
872

Hi,

Please look at the below link. It will be usefull.

http://abapreports.blogspot.com/search/label/ALV%20GRID%20DISPLAY%20WITH%20PUSH%20BUTTON

Thanks & Regards,

Ramya.

Read only

Former Member
0 Likes
872

Hi,

If the caller wants to use a self-defined user interface (for example, in order to provide additional list functions or use existing functions), I recommend that you copy standard status STANDARD from function group SALV and modify it accordingly. ALV standard function codes always start with '&'.

Add one Fcode to the application Toolbar in the Pf status and you will that will come as a button in your toolbar.

Write a subroutine in program say SET_PF_STATUS.

Fore.g.

FORM set_pf_status USING rt_extab TYPE slis_t_extab

Set PF-STATUS 'ZSTANDARD'.

EndForm.

Below is sample code in which button is added and on press of button a smartform is called.

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

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

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

I hope this will help you.

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

Read only

Former Member
0 Likes
872

thanks to all