Автор Тема: CL_GUI_FRONTEND_SERVICES - Работа с данным локальной рабочей станции  (Прочитано 7850 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
CL_GUI_FRONTEND_SERVICES - Работа с данным локальной рабочей станции, данный класс включает в себя множество методов, по мере наличия примеров буду выкладывать все тут. Используются методы класса, так что создавать экземпляр объекта не требуется.


Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG - Диалог открытия файла
« Ответ #1 : Декабрь 21, 2014, 10:51:49 pm »
CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG - Диалог открытия файла, в принципе это замена одноименного функционального модуля, но с хитрым заполнением маски файла. Пример программы с формированием маски файла ниже. Метод позволяет выбирать как один файл так и несколько. Для этого есть соответствующий параметр. По ходу текста, комментарии описывают особенности примера.
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& Report  ZEBS_TEST_LOCAL_PROGRAMM
*&
*&---------------------------------------------------------------------*
*& Пример выбра файла в стандартном диалоге с возможностью задания маски
*& файлов в окне диалога.
*&---------------------------------------------------------------------*
REPORT zebs_test_local_programm.
TYPES: BEGIN OF s_file,
         file TYPE char1024,
       END OF s_file.

DATA: l_rc    TYPE i,
      lt_file TYPE STANDARD TABLE OF s_file,
      ls_file TYPE s_file.
DATA: l_file_filter TYPE string.



* Правило формироания маски файла, если нужны файлы одного типа,
l_file_filter = 'Файли Microsoft Excel (*.XLS;*.XLSX;*.XLSM)|*.XLS;*.XLSX;*.XLSM|'.
* Если нужны файлы двух типов тогда заполняем следующим образом
CONCATENATE l_file_filter 'Файлы Microsoft Word (*.DOC;*.XDOC)|*.DOC;*.XDOC;|'
            'Файлы тектовые (*.TXT)|*.TXT|'
INTO l_file_filter.
* В окне диалога при выборе одного из вариантов будут отражатся только файлы
* выбранного типа, в данном примере будут видны 3 типа варианта выбора.



CALL METHOD cl_gui_frontend_services=>file_open_dialog
  EXPORTING
    window_title            = 'Заголовок окна'
    "default_extension       = '*.xls'
    "DEFAULT_FILENAME        =
    file_filter             = l_file_filter
    "WITH_ENCODING           =
    "INITIAL_DIRECTORY       = Начальный каталог
    "MULTISELECTION          = Если поставить Х то можно выбрать несклько файлов.
  CHANGING
    file_table              = lt_file
    rc                      = l_rc
  EXCEPTIONS
    file_open_dialog_failed = 1
    cntl_error              = 2
    error_no_gui            = 3
    not_supported_by_gui    = 4
    OTHERS                  = 5.

DATA: l_full_path LIKE rlgrap-filename,
      l_file_name LIKE rlgrap-filename,
      l_file_path LIKE rlgrap-filename.

LOOP AT lt_file INTO ls_file.
  l_full_path = ls_file-file.
  CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
    EXPORTING
      full_name     = l_full_path
    IMPORTING
      stripped_name = l_file_name
      file_path     = l_file_path
    EXCEPTIONS
      x_error       = 1
      OTHERS        = 2.
  WRITE: / 'Путь к файлу:', l_file_path,
         / 'Имя файла:', l_file_name NO-GAP.
ENDLOOP.
« Последнее редактирование: Декабрь 21, 2014, 10:53:35 pm от Uukrul »

Sapforum.Biz

Re: CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG - Диалог открытия файла
« Ответ #1 : Декабрь 21, 2014, 10:51:49 pm »