Текущее время: Сб, авг 02 2025, 20:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Чт, янв 22 2009, 10:39 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
Здравствуйте коллеги!

Возникла проблема при выполнении следующего кода, не загружаются данные из EXCEL:
Code:
* СОЗДАЕМ КОНТЕНЕР
  C_OI_CONTAINER_CONTROL_CREATOR=>GET_CONTAINER_CONTROL( IMPORTING CONTROL = I_CONTROL ).
  CALL METHOD I_CONTROL->INIT_CONTROL( EXPORTING R3_APPLICATION_NAME = 'Загрузка данных' PARENT = GR_CONTAINER
                                                 INPLACE_ENABLED = 'X' NO_FLUSH = 'X' ).
* ВОЗВРАЩАЕМ I_DOCUMENT
  I_CONTROL->GET_DOCUMENT_PROXY( EXPORTING DOCUMENT_TYPE = 'EXCEL.SHEET.8' REGISTER_CONTAINER = 'X'
                                 IMPORTING DOCUMENT_PROXY = I_DOCUMENT ).
* ОТКРЫВАЕМ ФАЙЛ
  CONCATENATE 'file://'  FILE_NAME INTO FILE_NAME.
  I_DOCUMENT->OPEN_DOCUMENT( EXPORTING DOCUMENT_URL = FILE_NAME
                                       OPEN_INPLACE = 'X'
                             IMPORTING ERROR = ERROR ).
* ОПЕРЕДЕЛЯЕМ ЛИСТ
  I_DOCUMENT->GET_SPREADSHEET_INTERFACE( IMPORTING SHEET_INTERFACE = I_SPREADSHEET ERROR = ERROR  ).
* ДОСТАЕМ ДАННЫЕ ИЗ EXCEL(Данные со всех листов)
  I_SPREADSHEET->GET_RANGES_DATA( EXPORTING ALL = 'X'
                                  IMPORTING CONTENTS = T_CONTENTS
                                  CHANGING RANGES = T_RANGES ).


1. После каждого метода проверял на ошибки, ошибок не было.
2. Файл 100% открывается.
Проблема в том, что T_CONTENTS после выполнения метода GET_RANGES_DATA абсолютно пустая!

Заметил то, что для некоторых файлов программа отрабатывает нормально, для некоторых вообще не работает, а для некоторых читает файлы частично!

Заранее спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Чт, янв 22 2009, 11:26 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
slim написал(а):
Здравствуйте коллеги!

Возникла проблема при выполнении следующего кода, не загружаются данные из EXCEL:
Code:
* СОЗДАЕМ КОНТЕНЕР
* ДОСТАЕМ ДАННЫЕ ИЗ EXCEL(Данные со всех листов)
  I_SPREADSHEET->GET_RANGES_DATA( EXPORTING ALL = 'X'
                                  IMPORTING CONTENTS = T_CONTENTS
                                  CHANGING RANGES = T_RANGES ).


1. После каждого метода проверял на ошибки, ошибок не было.
2. Файл 100% открывается.
Проблема в том, что T_CONTENTS после выполнения метода GET_RANGES_DATA абсолютно пустая!

Заметил то, что для некоторых файлов программа отрабатывает нормально, для некоторых вообще не работает, а для некоторых читает файлы частично!

Заранее спасибо!

А в ваших "не нормальных" файлх как определены именованные диапазоны и определены ли? Что содержится в T_RANGES в случае "нормально","не работает" и "частично"?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Чт, янв 22 2009, 11:44 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
1.В случае нормально T_RANGES, как и положено стстоит из: Название листа, Количество строк, Количество столбцов
(например SERVICE!фильтрбазыданных, 100, 15)
2. В Случае частично:в T_RANGES имеется запись, но диапозон определен не правильно(например у меня, почему то, читает со 2 строки по 239, хотя всего строк в файле 600)
3. В случае не работает T_RANGES пустая.

Я пробовал определять T_RANGES(метод GET_RANGES_NAMES) до выполнения метода GET_RANGES_DATA, и заполняется он также неправильно как выше я описал!

А про нумерованные диапозоны в файлах EXCEL я не совсем понял! (У меня нумеруется столбы как A,B,C и т.д.)
В чем может быть проблема?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Чт, янв 22 2009, 13:26 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
slim написал(а):
А про нумерованные диапозоны в файлах EXCEL я не совсем понял! (У меня нумеруется столбы как A,B,C и т.д.)
Не нумерованный, а именованные: Excel -> Вставка -> Имя -> Присвоить.
Какие у Вас в файле определены именнованые диапазоны ячеек (в Вашем примере SERVICE!фильтрбазыданных именованный диапазон фильтрбазыданных на листе SERVICE), такие и выгружаются.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Чт, янв 22 2009, 13:55 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
sy-uname написал(а):
Не нумерованный, а именованные: Excel -> Вставка -> Имя -> Присвоить.
Какие у Вас в файле определены именнованые диапазоны ячеек (в Вашем примере SERVICE!фильтрбазыданных именованный диапазон фильтрбазыданных на листе SERVICE), такие и выгружаются.


В моих файлах именованных диапозонов нет!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с загрузкой данных через DOI
СообщениеДобавлено: Пт, янв 23 2009, 10:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
Необходимо указать диапазон, из которого нужно получить данные (в данном примере выделить верхнюю левую ячейку диапазона; irow & icol - количество столбцов вправо от нее и строк вниз от нее. которые необходимо прочитать)


*
call method spreadsheet->select_sheet
exporting name = ctemplate
no_flush = 'X'.
call method spreadsheet->select_sheet
exporting name = ctemplate
no_flush = 'X'.
call method spreadsheet->set_selection
exporting left = 1
top = 1
rows = 1
columns = 1.
call method spreadsheet->insert_range
exporting name = 'BDCTABLE'
rows = irow
columns = icol.
call method spreadsheet->get_ranges_data
exporting all = 'X'
importing contents = contents
changing ranges = ranges.
*


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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