Текущее время: Сб, июл 19 2025, 14:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Дамп при загрузке из Excel (несколько листов)
СообщениеДобавлено: Чт, янв 16 2014, 15:57 
Специалист
Специалист

Зарегистрирован:
Вс, фев 12 2012, 18:43
Сообщения: 192
Здравствуйте!
Я нашла пример реализации загрузки файла excel:
http://abap-explorer.blogspot.ru/2008/1 ... ts-of.html
попробовала сделать, на тестовом примере все получилось. Но стала использовать в своей программе и у меня лезет дамп с текстом:
Access via 'NULL' object reference not possible.

при вызове этого метода:

Code:
CALL METHOD iref_document->open_document
    EXPORTING
      document_title = 'Excel'
      document_url   = gv_file
      open_inplace   = 'X'
    IMPORTING
      error          = iref_error.


подскажите, пожалуйста, в в чем может быть проблема. Спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дамп при загрузке из ECXEL (несколько листов)
СообщениеДобавлено: Чт, янв 16 2014, 17:10 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 20 2008, 16:29
Сообщения: 245
Откуда: RU->DE
Пол: Мужской
Логику из блока инициализации забыли скопировать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дамп при загрузке из ECXEL (несколько листов)
СообщениеДобавлено: Пт, янв 17 2014, 08:19 
Специалист
Специалист

Зарегистрирован:
Вс, фев 12 2012, 18:43
Сообщения: 192
Code:
INITIALIZATION.

  CALL METHOD c_oi_container_control_creator=>get_container_control
    IMPORTING
      control = iref_control
      error   = iref_error.
  IF iref_error->has_failed = 'X'.
    CALL METHOD iref_error->raise_message
      EXPORTING
        type = 'E'.
  ENDIF.

  CREATE OBJECT oref_container
    EXPORTING
      container_name              = 'CONT'
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc <> 0.
    MESSAGE e001(00) WITH 'Error while creating container'.
  ENDIF.

  CALL METHOD iref_control->init_control
    EXPORTING
      inplace_enabled      = 'X'
      r3_application_name  = 'EXCEL CONTAINER'
      parent               = oref_container
    IMPORTING
      error                = iref_error
    EXCEPTIONS
      javabeannotsupported = 1
      OTHERS               = 2.
  IF iref_error->has_failed = 'X'.
    CALL METHOD iref_error->raise_message
      EXPORTING
        type = 'E'.
  ENDIF.

  CALL METHOD iref_control->get_document_proxy
    EXPORTING
      document_type  = soi_doctype_excel_sheet
    IMPORTING
      document_proxy = iref_document
      error          = iref_error.
  IF iref_error->has_failed = 'X'.
    CALL METHOD iref_error->raise_message
      EXPORTING
        type = 'E'.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дамп при загрузке из Excel (несколько листов)
СообщениеДобавлено: Вт, янв 21 2014, 16:08 
Специалист
Специалист

Зарегистрирован:
Вс, фев 12 2012, 18:43
Сообщения: 192
может кто-то переделывал ФМ ALSM_EXCEL_TO_INTERNAL_TABLE для чтения заданного листа или всех/нескольких листов?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дамп при загрузке из Excel (несколько листов)
СообщениеДобавлено: Вт, янв 21 2014, 21:06 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 12 2010, 12:20
Сообщения: 10
Touch написал(а):
может кто-то переделывал ФМ ALSM_EXCEL_TO_INTERNAL_TABLE для чтения заданного листа или всех/нескольких листов?

Я переделывал по номеру, для версии 4.6, вместо кода
Code:
  GET PROPERTY OF  application 'ACTIVESHEET' = worksheet.
  m_message.

делал так
Code:
* Активируем лист по номеру i_sheet_num
  GET PROPERTY OF application 'Worksheets' = worksheets.
  m_message.
  GET PROPERTY OF worksheets 'Count' = sheet_count.
  m_message.
  IF i_sheet_num > sheet_count OR i_sheet_num < 1.
    GET PROPERTY OF application 'ActiveWorkbook' = workbook.
    SET PROPERTY OF workbook 'Saved' = 1.
    CALL METHOD OF application 'QUIT'.
    FREE OBJECT worksheets. m_message.
    FREE OBJECT workbooks. m_message.
    FREE OBJECT workbook. m_message.
    FREE OBJECT application. m_message.
    FREE OBJECT excel. m_message.
    RAISE sheet_not_found.
  ENDIF.
* Определяем номер листа соотв. НЕ скрытому листу с номером i_sheet_num, в документе лист может быть 1ым, но его номер 3, если перед ним 2 листа скрыто.
  num_sheet = 0. " фактический номер
  vis_num_sheet = i_sheet_num.
  DO sheet_count TIMES.
    num_sheet = num_sheet + 1.
    CALL METHOD OF worksheets 'Item' = worksheet
      EXPORTING #1 = num_sheet.
    m_message.
    GET PROPERTY OF worksheet 'Visible' = vis.
*   если лист видимый
    IF vis <> 0.
      vis_num_sheet = vis_num_sheet - 1.
    ENDIF.
    IF vis_num_sheet = 0.
      EXIT.
    ENDIF.
  ENDDO.
CALL METHOD OF worksheet 'Activate'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дамп при загрузке из Excel (несколько листов)
СообщениеДобавлено: Ср, янв 22 2014, 16:20 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 07 2013, 22:18
Сообщения: 61
Пример отправил в ЛС.


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

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


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

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


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

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