AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2008, 12:00   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Что-то вроде этого:

X++:
#define.xlPasteFormats(-4122)
private void copyLineFormat(SysExcelWorksheet _workSheet, int _fromRow, int _toRow)
{
    Com     rangeFrom, rangeTo;
    str     strRangeFrom, strRangeTo;

    strRangeFrom    = ComExcelDocument_RU::numToNameCell(#colItemId, _fromRow) + ":" + ComExcelDocument_RU::numToNameCell(endCol, _fromRow);
    strRangeTo      = ComExcelDocument_RU::numToNameCell(#colItemId, _toRow) + ":" + ComExcelDocument_RU::numToNameCell(endCol, _toRow);

    rangeFrom   = _workSheet.cells().range(strRangeFrom).comObject();
    rangeTo     = _workSheet.cells().range(strRangeTo).comObject();

    rangeFrom.Copy();
    rangeTo.PasteSpecial(#xlPasteFormats);

    rangeFrom.finalize();
    rangeTo.finalize();

}
Но это для одного и того же листа, далее доработать несложно. Только следует знать, как минимум две вещи:
1) Механизм тормозной;
2) В момент формирования отчета пользователь не может использовать накаким образом буфер обмена для других задач
Старый 13.02.2008, 18:19   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Михаил Петрович, не очень понимаю, зачем нужен лист2, если на лист1 уже присутствует сформатированная область.

Выведите в нее данные для вкладыша 1. Ниже нее друг за другом выведите в неформатированном виде данные вкладышей 2...N. Далее скопируйте формат области 1 на диапазон областей 2...N. Т.е. в самом конце процесса будет нужна будет всего одна (!) операция копирования формата "маленькой" области на "большую" (кратную "маленькой" N-1 раз).

Как выполнить операцию копирования - уже рассказал Raven Melancholic.

P.S. ВАЖНО: при копировании следует выделять не просто область 1, а полные строки, проходящие через область 1. Соответственно вставку следует производить в полные строки, проходящие через области 2...N. В этом случае высоты строк вкладыша корректно воспроизведутся и на нижних областях. В противном случае - распространятся только шрифты, заливки, рамки и т.п.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Копирование листов в Excel с шаблоном Zoe DAX: Программирование 8 20.11.2008 15:50
Копирование листов в Excel Андрей К. DAX: База знаний и проекты 12 30.08.2007 08:44
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Копирование из Грида в Excel ArturK DAX: Программирование 5 09.03.2004 19:55

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:05.