Текущее время: Сб, июл 26 2025, 11:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Функция add_sheet в DOI
СообщениеДобавлено: Пн, дек 12 2011, 18:13 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Добрый день!
Такая вот проблемка. В программе есть код:
CALL METHOD lr_spreadsheet->add_sheet
EXPORTING name = 'NEXT'.
т.е. хочу вставить лист в рабочую книгу. Помогите, пожалуйста, решить 2 вопроса:
1) эта функция вставляет лист 'NEXT' куда захочет, хотя я хочу, скажем, чтобы она вставляла после 3-его листа(она же вставляет и перед 1-ым, в другой проге после 2-ого).
2) хотелось бы, чтобы вставленный лист был копией существующего листа, допустим, 1-ого. Как это сделать? Как скопировать лист и вставить его?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функция add_sheet в DOI
СообщениеДобавлено: Вт, дек 13 2011, 15:39 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
В целом, с первым вопросом разобралась: если вы, скажем, вставляете таблицу в 3-ем листе, то функция сработает перед ним, т.к. он считается активным. А вот, может, кто-нибудь подскажет, как скопировать уже существующий лист? Мне нужно, чтобы в зависимости от определённого условия выводились либо 2 листа(которые находятся в шаблоне), либо, скажем, 4(которые копируются из шаблона, но данные вставляются другие).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функция add_sheet в DOI
СообщениеДобавлено: Вт, дек 13 2011, 16:52 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Hanna_89 написал(а):
А вот, может, кто-нибудь подскажет, как скопировать уже существующий лист?

http://sapboard.ru/forum/viewtopic.php?f=13&t=4326
http://sapboard.ru/forum/viewtopic.php?f=13&t=8923


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функция add_sheet в DOI
СообщениеДобавлено: Ср, дек 14 2011, 17:05 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Просмотрела данные темы, спасибо. Однако всё же не происходит копирование листа шаблона. Вот код ( может, кто-нибудь поможет разобраться, в чём ошибка???):
DATA:
* lv_handle TYPE cntl_handle,
lv_appl TYPE ole2_object,
lv_sheets TYPE ole2_object,
lv_h_active TYPE ole2_object,
lv_active TYPE soi_field_name,
lv_source TYPE soi_field_name,
lt_sheets TYPE soi_sheets_table.



CALL METHOD p1_lr_spreadsheet->get_sheets
IMPORTING
sheets = lt_sheets.

CALL METHOD p1_lr_spreadsheet->get_active_sheet
IMPORTING
sheetname = lv_source.

CALL METHOD p1_lr_spreadsheet->add_sheet
EXPORTING name = 'Лист2'.

GET PROPERTY OF p1_lv_doc 'APPLICATION' = lv_appl.
CHECK sy-subrc = 0.

* указатель на копируемый лист
GET PROPERTY OF lv_appl 'SHEETS' = lv_sheets
EXPORTING
#1 = lv_source.
CHECK sy-subrc = 0.
SKIP.
CALL METHOD p1_lr_spreadsheet->get_active_sheet
IMPORTING
sheetname = lv_active.

*скопировать, вставив слева от активного
CALL METHOD OF lv_sheets 'COPY' = lv_active
EXPORTING
#1 = lv_h_active.
CHECK sy-subrc = 0.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функция add_sheet в DOI
СообщениеДобавлено: Чт, дек 15 2011, 11:50 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Code:
*скопировать, вставив слева от активного
CALL METHOD OF lv_sheets 'COPY' = lv_active
EXPORTING
#1 = lv_h_active.


Вместо lv_h_active попробуйте указать лист, перед которым вставить копию.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функция add_sheet в DOI
СообщениеДобавлено: Чт, дек 15 2011, 12:37 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Например вот так копирует перед активным листом:
Code:
  CREATE OBJECT gs_excel 'EXCEL.APPLICATION' .
  SET PROPERTY OF gs_excel 'Visible' = 1 .
  GET PROPERTY OF gs_excel 'Workbooks' = gs_wbooklist.
  GET PROPERTY OF gs_wbooklist 'Application' = gs_application .
  CALL METHOD OF gs_wbooklist 'Open'
    EXPORTING #1 = 'D:\test.xls'.
  GET PROPERTY OF gs_application 'ActiveSheet' = gs_activesheet.
  CALL METHOD OF gs_activesheet 'Copy'
    EXPORTING #1 = gs_activesheet.


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

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


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

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


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

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