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

Parameter in F4

Former Member
0 Likes
1,260

Hi,

i have problems with this code:

...

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(29) T_PC_I.

PARAMETERS: P_PC_I LIKE RLGRAP-FILENAME OBLIGATORY

DEFAULT 'D:TEST

SELECTION-SCREEN: END OF LINE.

...

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PC_I.

*

DATA: LV_CNT TYPE I,

FILE TYPE STRING,

LT_FILENAME TYPE FILETABLE,

USER_ACT TYPE I.

*

FILE = P_PC_I.

  • Neu über Funktionsklasse

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = 'PC-File Selektion'

DEFAULT_FILENAME = FILE

CHANGING

FILE_TABLE = LT_FILENAME

RC = LV_CNT

USER_ACTION = USER_ACT

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3.

*

IF SY-SUBRC <> 0.

*

ENDIF.

IF USER_ACT = '0'.

READ TABLE LT_FILENAME INDEX 1 INTO P_PC_I.

ENDIF.

*

The Problem is, that in the in the VALUE-REQUEST P_PC_I

is empty. But i need the Value wich i have set in the

PARAMETER as default.

Thanks for Help

Regards, Dieter

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,212

Hi dieter,

1. I tried your code just now

2. Just add these 5 lines, and it works ok now.

3. see in bold.

4.

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(29) T_PC_I.

PARAMETERS: P_PC_I LIKE RLGRAP-FILENAME OBLIGATORY DEFAULT 'D:TEST'.

SELECTION-SCREEN: END OF LINE.

...

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PC_I.

*

DATA: LV_CNT TYPE I,

FILE TYPE STRING,

LT_FILENAME TYPE FILETABLE,

USER_ACT TYPE I.

*

FILE = P_PC_I.

DATA : MYFILE LIKE RLGRAP-FILENAME.

CALL FUNCTION 'GET_DYNP_VALUE'

EXPORTING

I_FIELD = 'P_PC_I'

I_REPID = sy-repid

I_DYNNR = sy-dynnr

  • I_CONV_INPUT = ' '

  • I_CONV_OUTPUT = ' '

CHANGING

O_VALUE = myfile

.

.

FILE = MYFILE.</b>

  • Neu über Funktionsklasse

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = 'PC-File Selektion'

DEFAULT_FILENAME = FILE

CHANGING

FILE_TABLE = LT_FILENAME

RC = LV_CNT

USER_ACTION = USER_ACT

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3.

*

IF SY-SUBRC <> 0.

*

ENDIF.

IF USER_ACT = '0'.

READ TABLE LT_FILENAME INDEX 1 INTO P_PC_I.

ENDIF.

*

regards,

amit m.

9 REPLIES 9
Read only

Former Member
0 Likes
1,212

Hi,

Check This




*---------------------Selection Screen Help----------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_sumfl.
*-File Path For Summary Report
  PERFORM f2000_filepath_f4 USING lc_s
                         CHANGING p_sumfl.


*----------------------------------------------------------------------*
FORM f2000_filepath_f4  USING xv_indicator TYPE char1
                     CHANGING xyv_filepath TYPE char255.

*---------------Popup for file name---------------------*
  CONSTANTS :
         lc_dft_ext    TYPE string VALUE 'XLS',
         lc_file_flt   TYPE string VALUE '*.xls',
         lc_int_drc    TYPE string VALUE 'C:'.

  DATA : lv_win_title  TYPE string,
         lv_file_name  TYPE string,
         lv_dft_fname  TYPE string,
         lv_fname      TYPE string,
         lv_path       TYPE string.

  CLEAR: lv_fname,
         lv_path,
         lv_file_name,
         lv_win_title,
         lv_dft_fname.

*---------------Set File Details F4 Based on Report Type--------------*
  IF xv_indicator = lc_s.
    lv_win_title = text-045.
    lv_dft_fname = text-038.
  ELSE.
    lv_win_title = text-044.
    lv_dft_fname = text-033.
  ENDIF.


  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         = lv_win_title
      default_extension    = lc_dft_ext
      default_file_name    = lv_dft_fname
      file_filter          = lc_file_flt
      initial_directory    = lc_int_drc
      prompt_on_overwrite  = lc_true
    CHANGING
      filename             = lv_fname
      path                 = lv_path
      fullpath             = lv_file_name
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  IF sy-subrc <> 0 OR lv_fname     IS INITIAL
                   OR lv_path      IS INITIAL
                   OR lv_file_name IS INITIAL.

<b>  concatenate lc_int_drc lv_dft_fname
         into xyv_filepath.</b>

  ELSE.
*---FilePath
    xyv_filepath = lv_file_name.
  ENDIF.


ENDFORM.                    " f2000_filepath_f4



Read only

Former Member
0 Likes
1,212

hi,

Check out in this way ...

  W_WSU_FILENAME01 = PR_IFILE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
       DEFAULT_FILENAME        = W_WSU_FILENAME01
    CHANGING
       FILE_TABLE              = ITAB_FILE1_TABLE
       RC                      = RC_FILE
     EXCEPTIONS
       FILE_OPEN_DIALOG_FAILED = 1
       CNTL_ERROR              = 2
       ERROR_NO_GUI            = 3
       NOT_SUPPORTED_BY_GUI    = 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.


  DATA W_WSU_FILENAME02 TYPE STRING.
  DATA W_WSU_FILETYPE02 TYPE CHAR10.

  W_WSU_FILETYPE02 = 'ASC'.

  READ TABLE ITAB_FILE1_TABLE INDEX 1 INTO W_WSU_FILENAME02.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                      = W_WSU_FILENAME02
      FILETYPE                      = W_WSU_FILETYPE02
    TABLES
      DATA_TAB                      = ITAB_INFILE
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
            .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Read only

0 Likes
1,212

hi,

Here is the problem you have not enclosed the file name in single quotes properly it should be in this way i.e, <b>'D:\TEST'.</b>

PARAMETERS: <b>P_PC_I LIKE RLGRAP-FILENAME OBLIGATORY

DEFAULT 'D:\TEST'.</b>

Read only

0 Likes
1,212

Hi Santosh, Hi Manoj,

its a Problem of cut and paste. In my Abap i have

... <b>DEFAULT 'D:\TEST'</b>.

My problem is, why is the value of P_PC_I in

the Help-Request empty and not 'D:TEST'.

Can i read the value from the screen.

<b>I have no Problems with:

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG</b>

Regards, Dieter

Read only

0 Likes
1,212

hi,

Please check the value of FILE before calling

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

in debugging mode.

I think value of P_PC_I is not being pass to File or P_PC_I is empty.

If u want to read value then use FM:-DYNP_VALUES_READ

or use Global Contstant Variable for for the default path.

<b>initialization.

P_PC_I = gc_file_path_default.</b>

and use the same in gc_file_path_default in F4 Help

Read only

Former Member
0 Likes
1,213

Hi dieter,

1. I tried your code just now

2. Just add these 5 lines, and it works ok now.

3. see in bold.

4.

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(29) T_PC_I.

PARAMETERS: P_PC_I LIKE RLGRAP-FILENAME OBLIGATORY DEFAULT 'D:TEST'.

SELECTION-SCREEN: END OF LINE.

...

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PC_I.

*

DATA: LV_CNT TYPE I,

FILE TYPE STRING,

LT_FILENAME TYPE FILETABLE,

USER_ACT TYPE I.

*

FILE = P_PC_I.

DATA : MYFILE LIKE RLGRAP-FILENAME.

CALL FUNCTION 'GET_DYNP_VALUE'

EXPORTING

I_FIELD = 'P_PC_I'

I_REPID = sy-repid

I_DYNNR = sy-dynnr

  • I_CONV_INPUT = ' '

  • I_CONV_OUTPUT = ' '

CHANGING

O_VALUE = myfile

.

.

FILE = MYFILE.</b>

  • Neu über Funktionsklasse

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = 'PC-File Selektion'

DEFAULT_FILENAME = FILE

CHANGING

FILE_TABLE = LT_FILENAME

RC = LV_CNT

USER_ACTION = USER_ACT

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3.

*

IF SY-SUBRC <> 0.

*

ENDIF.

IF USER_ACT = '0'.

READ TABLE LT_FILENAME INDEX 1 INTO P_PC_I.

ENDIF.

*

regards,

amit m.

Read only

Former Member
0 Likes
1,212

Hi,

Need to do some things...., i faced the similar one before.call the FM marked in bold and see the coding.implement the same this will work definitely.

copy paste and see.

REPORT  ZTEST_REPORT1                           .
DATA: V_FILE TYPE STRING,
      V_FILE1(120).


PARAMETERS: P_FILE(120) LOWER CASE.
PARAMETERS: P_APPL RADIOBUTTON GROUP G1 user-command ABC default 'X',
            P_PRES RADIOBUTTON GROUP G1.



AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  DATA IT_FIELDVALUES TYPE DYNPREAD OCCURS 0 WITH HEADER LINE.

  IT_FIELDVALUES-FIELDNAME = 'P_PRES'.
  APPEND IT_FIELDVALUES.
  IT_FIELDVALUES-FIELDNAME = 'P_APPL'.
  APPEND IT_FIELDVALUES.


  <b>CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME                         = SY-REPID
      DYNUMB                         = SY-DYNNR
    TABLES
      DYNPFIELDS                     = IT_FIELDVALUES
   EXCEPTIONS
     INVALID_ABAPWORKAREA           = 1
     INVALID_DYNPROFIELD            = 2
     INVALID_DYNPRONAME             = 3
     INVALID_DYNPRONUMMER           = 4
     INVALID_REQUEST                = 5
     NO_FIELDDESCRIPTION            = 6
     INVALID_PARAMETER              = 7
     UNDEFIND_ERROR                 = 8
     DOUBLE_CONVERSION              = 9
     STEPL_NOT_FOUND                = 10
     OTHERS                         = 11
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.</b>
  READ TABLE IT_FIELDVALUES WITH KEY FIELDNAME = 'P_APPL'.
  IF IT_FIELDVALUES-FIELDVALUE = 'X'.
    DATA: L_PATH  LIKE DXFIELDS-LONGPATH ,
          L_ABEND_FLAG LIKE DXFIELDS-ABENDFLAG .
    CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
      EXPORTING
        I_LOCATION_FLAG       = 'A'
        I_SERVER              = ' '
        I_PATH                = '/usr/users/'
      IMPORTING
        O_PATH                = L_PATH
        ABEND_FLAG            = L_ABEND_FLAG
      EXCEPTIONS
        COMMUNICATION_FAILURE = 1
        SYSTEM_FAILURE        = 2
        RFC_ERROR             = 3.
    IF SY-SUBRC EQ 0.
      P_FILE = L_PATH.
    ENDIF.
    IF L_ABEND_FLAG = 'X'.
      EXIT.
    ENDIF.
  ELSE.
    DATA: FILE LIKE RLGRAP-FILENAME.
    CALL FUNCTION 'F4_FILENAME'
      EXPORTING
        PROGRAM_NAME  = SYST-CPROG
        DYNPRO_NUMBER = SYST-DYNNR
        FIELD_NAME    = ' '
      IMPORTING
        FILE_NAME     = FILE.
    IF SY-SUBRC = 0.
      P_FILE = FILE.
      V_FILE = P_FILE.
    ENDIF.
  ENDIF.

Regards

vijay

Read only

Former Member
0 Likes
1,212

Hai

The bellow code is working fine

check the modified code in bold

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(29) T_PC_I.

PARAMETERS: P_PC_I LIKE RLGRAP-FILENAME OBLIGATORY DEFAULT 'D:TEST'.

SELECTION-SCREEN: END OF LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PC_I.

*

DATA: LV_CNT TYPE I,

FILE TYPE STRING,

LT_FILENAME TYPE FILETABLE,

USER_ACT TYPE I.

*

FILE = P_PC_I.

  • Neu über Funktionsklasse

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = 'PC-File Selektion'

DEFAULT_FILENAME = FILE

CHANGING

FILE_TABLE = LT_FILENAME

RC = LV_CNT

USER_ACTION = USER_ACT

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3.

*

IF SY-SUBRC <> 0.
*
ENDIF.

IF USER_ACT = '0'.

READ TABLE LT_FILENAME INTO P_PC_I INDEX 1 .


ENDIF.
*

start-of-selection.
write : P_PC_I.

Regards

Sreeni

Read only

Former Member
0 Likes
1,212

Hi all,

thanks for your help.

Regards, Dieter