Текущее время: Пт, июл 18 2025, 16:16

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


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

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


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

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