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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.09.2011, 15:26   #1  
JuniorAx is offline
JuniorAx
Участник
 
134 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Новый лист в Excel
Здраствуйте!
Подскажите пожалуйста как создать новую страницу в Excel??
Сейчас использую следующий алгоритм:
X++:
workSheet = 1;
excelDocument.newFile();
// какие-то действия...
textBuffer.appendtext(...);
excelDocument.insertText("A1", textBuffer, workSheet);
Сейчас как вы понимаете всё выводится в Excel на первый лист!
Как создать внутри Excel новый лист и вывод на него сделать???
Спасибо!
Старый 27.09.2011, 15:35   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Пару вопросов по отчетам Excel
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Чтобы уточнить синтаксис какой-либо команды непосредственно в Excel, используют встроенный в Excel макрорекодер. Т.е. запись всех действий пользователя, совершаемых в Excel. Пункт меню Сервис -> Макрос -> Начать запись.

Выполняешь все необходимые действия, далее останавливаешь запись, открываешь макрос на редактирование и смотришь, какая именно команда была использована.
За это сообщение автора поблагодарили: RVS (1), JuniorAx (1).
Старый 27.09.2011, 16:23   #3  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
а что мешает сделать excelDocument.insertSheet(...)?
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: Pustik (1), S.Kuskov (9), JuniorAx (1).
Старый 27.09.2011, 16:28   #4  
JuniorAx is offline
JuniorAx
Участник
 
134 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Спасибо за совет! Очень полезно для меня сейчас и на будущее!!! Я сделал всё как говорится "по инструкции" вижу в макросе команду Sheets.Add - теперь надо же это как то в Аксапте её вызвать, я думаю что сделать это можно с использованием COM?? Не подскажите как это сделать? Спасибо!
Старый 27.09.2011, 16:32   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Класс ComExcelDocument_RU
В ClassDeclaration описываете переменную
X++:
COM     sheets;
Делаете метод, который будет возвращать текущий лист
X++:
COM sheets()
{
    ;
    if ( !sheets )
        sheets = m_comDocument.sheets();

    return sheets;
}
и еще один метод, который будет добавлять лист
X++:
void addSheet( str name = '', int after = 0 )
{
    COM     sheet;
    COM     sheet2;
    ;
    this.sheets();

    if ( after )
    {
        sheet2 = sheets.item( after );

        sheet = sheets.add( COMVariant::createNoValue(), sheet2 );
    }
    else
        sheet = sheets.add( );

    if ( name )
        sheet.name( name );
}
Ну и метод который будет делать этот лист активным
X++:
void setActiveSheet( int idx = 1 )
{
    COM     sheet;
    ;
    this.sheets();

    sheet  = sheets.item(idx);
    sheet.select();
}
а в Вашем классе-обработки будет выглядить так
X++:
excelDocument.addSheet('Лист2',1);
excelDocument.setActiveSheet(2);
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 27.09.2011 в 16:37.
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).
Старый 27.09.2011, 16:32   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от JuniorAx Посмотреть сообщение
теперь надо же это как то в Аксапте её вызвать, я думаю что сделать это можно с использованием COM?? Не подскажите как это сделать? Спасибо!
А вот pitersky подсказывает, что уже есть реализация этого в стандарте. Вот там и посмотрите как это делается ComExcelDocument_RU.insertSheet
Старый 27.09.2011, 16:38   #7  
JuniorAx is offline
JuniorAx
Участник
 
134 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Я пока печатал сообщение, появилось сообщение pitersky! :-) Всем спасибо большое!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
Sample Design Patterns: Microsoft Dynamics AX - Remedy for slow Microsoft Excel import Blog bot DAX Blogs 0 29.05.2011 17:13
Переместить лист Excel novic DAX: Программирование 7 01.07.2010 19:51
Как в отчете перейти на новый лист? MIkeFW DAX: Программирование 1 26.12.2003 13:58

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

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

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