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

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


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

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


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

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