Текущее время: Пн, июл 21 2025, 05:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Excel через DOI и OLE. Свернуть группы.
СообщениеДобавлено: Пт, дек 15 2006, 11:09 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Делаю все через ДОИ. Сделала группы (hierarchy). Но теперь надо еще чтобы эти группы появлялись свернутыми. Средствами ДОИ я не нашла как сделать, пытаюсь олями.
Записала макрос, который сворачивает все уровни иерархии.
ActiveSheet.Outline.ShowLevels RowLevels:=1

Делаю


Code:
DATA: container       TYPE REF TO cl_gui_custom_container,
      control         TYPE REF TO i_oi_container_control,
      document        TYPE REF TO i_oi_document_proxy,
      spreadsheet     TYPE REF TO i_oi_spreadsheet,
      error           TYPE REF TO i_oi_error,
      excelsheet      TYPE soi_document_type
                        VALUE soi_doctype_excel_sheet,
       h_excel_obj    TYPE cntl_handle.

...

* -- check whether was create Excel object
  IF control IS INITIAL.
* -- creating object
    CALL METHOD c_oi_container_control_creator=>get_container_control
      IMPORTING
        control = control
        error   = error.
*  -- create container
    CREATE OBJECT container
              EXPORTING container_name = 'ZEXCEL'.
* -- object initialisation
    CALL METHOD control->init_control
      EXPORTING
        r3_application_name      = 'h_excel'
        inplace_enabled          = 'X'
        inplace_scroll_documents = 'X'
        parent                   = container
        register_on_close_event  = 'X'
        register_on_custom_event = 'X'
        no_flush                 = 'X'
        name                     = 'Excel.Application'
      IMPORTING
        error                    = error.
  ENDIF.
* -- open document
  CALL METHOD control->get_document_proxy
    EXPORTING
      document_type  = excelsheet
    IMPORTING
      document_proxy = document
      error          = error.

* -- create document
  CALL METHOD document->create_document
    EXPORTING
*      open_inplace   = 'X'
      open_inplace   = ' '
      document_title = 'list name'(h00)
      no_flush       = 'X'
    IMPORTING
      error          = error.
* -- interface initialisation
  CALL METHOD document->get_document_handle
    EXPORTING
      no_flush = 'X'
    IMPORTING
      handle   = h_excel_obj.

  CALL METHOD document->has_spreadsheet_interface
    IMPORTING
      is_available = has.
  IF NOT has IS INITIAL.
    CALL METHOD document->get_spreadsheet_interface
      IMPORTING
        sheet_interface = spreadsheet.
  ENDIF.

.....  заношу данные

делаю группировки, например

* -- table for hierarchy grouping
  DATA:
    table TYPE soi_hierarchy_table,
    wa    LIKE LINE OF table.

  wa-mode  = 1.
  wa-firstline = 1.

  DO 5 TIMES.
    wa-length = sy-index.
    APPEND wa TO table.
  ENDDO.

  wa-firstline = 7.

  DO 5 TIMES.
    wa-length = sy-index.
    APPEND wa TO table.
  ENDDO.
  spreadsheet->set_hierarchy_table( no_flush = ' ' table = table[] ).



теперь пытаюсь свернуть - не сворачивает

Code:
  DATA: outline     TYPE ole2_object,
        showlevels  TYPE ole2_object,
        activesheet TYPE ole2_object.

  GET PROPERTY OF h_excel_obj-obj 'ActiveSheet' = activesheet.
  GET PROPERTY OF activesheet        'Outline'     = outline.
  GET PROPERTY OF outline               'ShowLevels'  = showlevels.
  SET  PROPERTY OF showlevels         'RowLevels' = 1.


Что я делаю не так? :(


Вот, раз никто не ответил, отвечаю сама -

макрос был такой: ActiveSheet.Outline.ShowLevels RowLevels:=1
Code:
  CALL METHOD OF h_excel 'ActiveSheet' = ActiveSheet.
  CALL METHOD OF ActiveSheet 'Outline' = outline.
  CALL METHOD OF outline 'ShowLevels' = showlevels EXPORTING #1 = 1.


RowLevels, оказывается аргумент и задается через EXPORTING. Вот. А я и не знала. А второй аргумент - columnLevels, это типо сворачивание по горизонтали. Правда, в DOI я не видела как свернуть по горизонтали, да и не надо было.


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

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


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

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


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

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