‎2008 Jun 27 8:00 AM
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
‎2008 Jun 27 8:06 AM
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.
‎2008 Jun 27 8:08 AM
check this link u will get all kind of ALV
http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm
Reward IF.............
Regards
Anbu
‎2008 Jun 27 8:09 AM
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.
‎2008 Jun 27 8:22 AM
thanks for replying
but my question is not for screen painter, i want push buttons
on ALV grid (using function module)
‎2008 Jun 27 9:22 AM
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.
‎2008 Jun 27 9:30 AM
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.
‎2008 Jun 27 9:33 AM