Текущее время: Вт, июл 22 2025, 22:25

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 08:28 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
...имел кто дело с подобным методом класса?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 08:41 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
FILE_OPEN_DIALOG отображает диалог выбора файлов.
WINDOW_TITLE - заголовок диалога,
DEFAULT_EXTENSION- расширение для файлов,
DEFAULT_FILENAME - имя файлов по умолчанию,
FILE_FILTER - фильтр для выбора файлов,
WITH_ENCODING - возможность выбора кодировки,
INITIAL_DIRECTORY - директория в которой открывается диалог,
MULTISELECTION - если 'Х' позволяет выбирать несколько файлов,
FILE_TABLE - список выбранных файлов.
USER_ACTION может принимать либо ACTION_OK либо ACTION_CANCEL в зависимости на какую кнопку диалога нажал пользователь. FILE_ENCODING - принимает значение кодировки файла.
Пример использования метода:

Code:
CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title      = 'File'
      default_extension = '*.txt'
      file_filter       = 'Text file (*.txt)|*.txt|File with delimiter ";" (*.csv)|*.csv|Excel (*.xls)|*.xls|All (*.*)|*.*'
    CHANGING
      file_table        = _it_file_table      "initial_directory = 'C:'
      rc                = _rc.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 08:55 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Вроде все так и написано, а ошибка вылазит "WRONG PARAMETER: FILE_NAME".
Код ниже

AT SELECTION-SCREEN ON VALUE-REQUEST FOR file_up1.

DATA:
lt_file_table TYPE filetable,
lv_filename TYPE string,
lv_rc TYPE i,
l_ret TYPE i.
lv_filename = file_up1.

* insert B0001099000 into /BIC/B0001099000.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Пожалуйста, выберите место '
default_filename = '*.txt'
file_filter = 'Text file (*.txt)|*.txt|File with delimiter ";" (*.csv)|*.csv|Excel (*.xls)|*.xls|All (*.*)|*.*'
CHANGING
file_table = lt_file_table
rc = lv_rc
user_action = l_ret
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
CHECK sy-subrc = 0.

CALL METHOD cl_gui_cfw=>flush.
IF lv_rc = 0.
file_up1 = lv_filename.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 08:58 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Вроде все так и написано, а ошибка вылазит "WRONG PARAMETER: FILE_NAME".
Код ниже:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR file_up1.

DATA:
lt_file_table TYPE filetable,
lv_filename TYPE string,
lv_rc TYPE i,
l_ret TYPE i.
lv_filename = file_up1.

* insert B0001099000 into /BIC/B0001099000.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Пожалуйста, выберите место '
default_filename = '*.txt'
file_filter = 'Text file (*.txt)|*.txt|File with delimiter ";" (*.csv)|*.csv|Excel (*.xls)|*.xls|All (*.*)|*.*'
CHANGING
file_table = lt_file_table
rc = lv_rc
user_action = l_ret
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
CHECK sy-subrc = 0.

CALL METHOD cl_gui_cfw=>flush.
IF lv_rc = 0.
file_up1 = lv_filename.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 09:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
не хватает у вас обработки таблицы lt_file_table
LOOP или READ в lv_filename


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 09:51 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
+ в классе cl_gui_frontend_services определены константы типов файлов, можно их использовать в опеределнии фильтра файлов, чтобы не хардкодить.
Ну и по-прежнему непонятно, где ошибка, т.к. в тексте ссылка на неуказанный\неописанный во фрагменте исходника параметр.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 10:21 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Код со всем описанием:

data B0001099000 like /BIC/B0001099000 occurs 100
with header line.

Parameters: file_up1 TYPE string. "'\\ocrv-server\doc$\sap\Выгрузка\1.txt'.

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = file_up1
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
DAT_MODE = 'X'
TABLES
DATA_TAB = B0001099000.

*Загрузка в таблицу B0001099000 САПа первого файла
*-----------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR file_up1.

DATA:
lt_file_table TYPE filetable,
lv_filename TYPE string,
lv_rc TYPE i,
l_ret TYPE i.
lv_filename = file_up1.

* insert B0001099000 into /BIC/B0001099000.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Пожалуйста, выберите место '
default_filename = '*.txt'
file_filter = 'Text file (*.txt)|*.txt|File with delimiter ";" (*.csv)|*.csv|Excel (*.xls)|*.xls|All (*.*)|*.*'
CHANGING
file_table = lt_file_table
rc = lv_rc
user_action = l_ret
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
CHECK sy-subrc = 0.

CALL METHOD cl_gui_cfw=>flush.
IF lv_rc = 0.
file_up1 = lv_filename.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 10:58 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Code:
IF lv_rc = 0.
file_up1 = lv_filename.
ENDIF.

замените на
Code:
  IF lv_rc <> -1. 'см описание метода в классе
' вобще if можно выкинуть, хватит и check sy-subrc = 0
    READ TABLE lt_file_table INTO lv_filename INDEX 1.
    file_up1 = lv_filename.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 12:42 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to Dima_163rus

Code:
Parameters: file_up1 TYPE string. "'\\ocrv-server\doc$\sap\Выгрузка\1.txt'.

CALL FUNCTION 'GUI_UPLOAD'


Так у Вас дамп в GUI_UPLOAD получается? И почему такой путь \\ocrv-server\doc$\sap\Выгрузка\1.txt'.? куда выгружаете?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 13:01 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Можно вообще без него(без \\ocrv-server\doc$\sap\Выгрузка\1.txt'. ).
Мне нужно с помощью метода cl_gui_frontend_services=>file_open_dialog и GUI UPLOAD ввести на экране путь вручную, путь вводится, а программа дальше не идет...GUI UPLOAD вставил после метода...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 13:08 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Dima_163rus написал(а):
Можно вообще без него(без \\ocrv-server\doc$\sap\Выгрузка\1.txt'. ).
Мне нужно с помощью метода cl_gui_frontend_services=>file_open_dialog и GUI UPLOAD ввести на экране путь вручную, путь вводится, а программа дальше не идет...GUI UPLOAD вставил после метода...

Почитайте внимательно дамп. Пройдитесь по коду отладчиком. Все будет видно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Пн, сен 17 2012, 13:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Dima_163rus написал(а):
Можно вообще без него(без \\ocrv-server\doc$\sap\Выгрузка\1.txt'. ).
Мне нужно с помощью метода cl_gui_frontend_services=>file_open_dialog и GUI UPLOAD ввести на экране путь вручную, путь вводится, а программа дальше не идет...GUI UPLOAD вставил после метода...

как-то сумбурно
cl_gui_frontend_services=>file_open_dialog возвращает внутреннюю таблицу с именами выбранных файлов
из нее нужно в локальную переменную достать имя файла
потом это имя файла передать в GUI UPLOAD
вроде все просто

+1 за отладчик


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Вт, сен 18 2012, 07:15 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Парни, а может есть у кого подобный рабочий пример выгрузки из файла?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Вт, сен 18 2012, 07:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Code:
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = 'd:\zrc.txt'
      has_field_separator     = 'X'
    TABLES
      data_tab                = items
    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.

  ENDIF.

вставляйте вызовы ФМ с EXCEPTIONS, меньше будет дампов и понятней проблема
структура параметра data_tab и структура файла должны соответствовать друг другу


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_frontend_services=>file_open_dialog
СообщениеДобавлено: Вт, сен 18 2012, 08:07 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 23 2012, 09:29
Сообщения: 10
Спасибо, без ошибок, но не грузит до сих пор :D


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB