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

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


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

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


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

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