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

Часовой пояс: 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 часа


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

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


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

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