Текущее время: Пт, авг 01 2025, 14:05

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Странности передачи параметров в формах
СообщениеДобавлено: Пт, июл 10 2009, 07:45 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 10 2009, 07:32
Сообщения: 11
Пол: Мужской
Для получения списка файлов директории есть стандартный метод: cl_gui_frontend_services=>directory_list_files
Чтобы не заморачиваться лишними буквами, обернул вызов этого метода в форму. Вот таким кодом:

Code:
form GET_DIR_LIST tables FTABLE  "type FILE_INFO
                              using  DIRNAME.

  data: count TYPE i, S_DIRNAME type STRING.
  S_DIRNAME = DIRNAME. "согласуем типы

  call method CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
    exporting DIRECTORY  = S_DIRNAME
                  FILES_ONLY   = 'X'
                  DIRECTORIES_ONLY = ' '
    changing  FILE_TABLE   = FTABLE
                   COUNT         = COUNT.
endform.


Вызываем форму вот таким образом:
Code:
  data: DIRFILES type standard table of FILE_INFO.
  perform GET_DIR_LIST tables DIRFILES using  'D:\'.


Компилируем - всё ОК, но при вызове получаем дамп про несоответствие типов между FILE_TABLE и FTABLE.
Ладно. Убираем обертку ввиде формы и вызываем непосредственно код внутри формы. Всё прекрасно работает.
Т.е. такое впечатление, что передача таблицы через форму искажает её тип..((((
Эксперименты с приделыванием хвостов с типом к определению формы ничего не дали..((
Есть у кого какие мнения насчет борьбы с этой вот странностью?

Пономарев Артем: пользуйтесь тэгами для оформления кода, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Странности передачи параметров в формах
СообщениеДобавлено: Пт, июл 10 2009, 07:56 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Внутри формы таблицу типизируйте.
Code:
FORM get_dir_list TABLES ftable STRUCTURE file_info
USING dirname.

  DATA: count TYPE i, s_dirname TYPE string.
  s_dirname = dirname. "ñîãëàñóåì òèïû

  CALL METHOD cl_gui_frontend_services=>directory_list_files
    EXPORTING
      directory        = s_dirname
      files_only       = 'X'
      directories_only = ' '
    CHANGING
      file_table       = ftable[]
      count            = count.
ENDFORM.                    "GET_DIR_LIST


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странности передачи параметров в формах
СообщениеДобавлено: Пт, июл 10 2009, 08:18 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 10 2009, 07:32
Сообщения: 11
Пол: Мужской
Thank за идею. На самом деле, даже типизировать не пришлось.
Фишка оказалась в добавке хвоста [] к имени таблицы: FTABLE[]. Т.е. вызов метода должен быть таким:
Code:
call method CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
    exporting DIRECTORY        = S_DIRNAME
              FILES_ONLY       = 'X'
              DIRECTORIES_ONLY = ' '
    changing  FILE_TABLE       = FTABLE[color=#BF0040][b][][/b][/color]
              COUNT            = COUNT.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Странности передачи параметров в формах
СообщениеДобавлено: Пт, июл 10 2009, 10:11 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Insect, пожалуйста, используй тег code для оформления ABAP-кода.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

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


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

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