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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2006, 08:34   #1  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Колонтитулы в Excel
Привет всем! Столкнулся с небольшой проблемкой...
Надо вывести колонтитул при формировании шаблона Excel из аксапты, но значение колонтитула должно браться из определенной ячейки...Стандартными средствами Excel не получается....
Если на VBA написать макрос, то выглядеть будет примерно так

Sheets("Лист1").PageSetup.LeftHeader = Sheets("Лист1").Range("А1")

Получается надо в аксапте что-то подобное написать....?

Или программно переименовать Лист1 в нужное мне значение и выводить колонтитул стандартными средствами Excel? как переименовать Лист1 в аксапте пока не нашел....
Старый 18.04.2006, 09:06   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Vitaly_K
Надо вывести колонтитул при формировании шаблона Excel из аксапты, но значение колонтитула должно браться из определенной ячейки...Стандартными средствами Excel не получается....
А если в код события Excel прописать? Например, вот так:
PHP код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
 
Sheets("Лист1").PageSetup.LeftHeader Sheets("Лист1").Range("A1").Value
 
End Sub 
Старый 18.04.2006, 09:19   #3  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
не если в Excel что-то прописывать это не выход...
надо чтоб из аксапты вызывалось
Старый 18.04.2006, 09:33   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Если из Axapta'ы, то вам надо вначале надо получить объект WorkSheet нужного вам листа книги.
Если вы используете класс ComExcelDocument_Ru, то можно либо при помощи метода getWorkSheet() (при этом надо подправить этот класс, чтобы сделать его доступным), либо ч/з интерфейс Document. Свойство Name этого объекта - это имя листа. Так же можно получить Объект PageSetup этого листа, а дальше точно так же как и для VBA
X++:
    COMExcelDocument_Ru excel = new COMExcelDocument_Ru();
    COM doc;
    COM app;
    COM sheets;
    COM worksheet;
    COM PageSetup;
    COM Range;
    ;
...
    Excel.newFile();
    doc = Excel.getComDocument();
    App = doc.Application();
// для выбора произвольного листа книги (либо по номеру, либо по имени)
    Sheets = App.Worksheets();
    Worksheet = Sheets.Item(1);
// для выбора активного листа
    Worksheet = App.ActiveSheet();

// если подправить класс то можно так
    Worksheet = Excel.getWorkSheet(1);

    Worksheet.Name("Новое имя"); // изменение имени листа

    PageSetup = Worksheet.PageSetup();
    Range = Worksheet.Range("A1");
    PageSetup.LeftHeader(range.Value2());
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Hans (1).
Старый 18.04.2006, 09:34   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Ну... прочитайте ячейку A1 из Аксапты, запишите в LeftHeader из Аксапты
Поиск по Форуму рулит. Может, вот это поможет: http://www.axforum.info/forums/showt...0089#post50089
Старый 18.04.2006, 10:07   #6  
Vitaly_K is offline
Vitaly_K
Участник
 
34 / 10 (1) +
Регистрация: 16.09.2004
Адрес: Москва
Спасибо ребят... ,думаю это поможет
Старый 24.12.2008, 18:04   #7  
andrewK is offline
andrewK
Участник
 
45 / 22 (1) +++
Регистрация: 03.11.2005
Добрый день.
Кто нибудь знает, как в Аксапте отформатировать вставленный колонтитул?
Например сделать его шрифт жирным.
Старый 24.12.2008, 18:19   #8  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от andrewK Посмотреть сообщение
Добрый день.
Кто нибудь знает, как в Аксапте отформатировать вставленный колонтитул?
Например сделать его шрифт жирным.
Ручками можно сделать, значит и программно можно. Можно даже разные фрагменты текста по-разному. Запишите макрос рекордером и изучите.

Записанный код VBA получится примерно такой (я написал в правый нижний колонтитул "Стр. &[Страница] из &[Страниц]"):
PHP код:
   
With ActiveSheet
.PageSetup
   
    
.RightFooter _
    
"&""Arial,полужирный""&16Стр. &""Arial,обычный""&10&P из  &""Arial,полужирный курсив""&20&S&N" 
А дальше по фразе "Formatting Codes for Headers and Footers" поищите в файле VBAXL*.CHM соответствующую тему или в MSDN: http://msdn.microsoft.com/en-us/library/bb225426.aspx . Там есть список кодов форматирования.

После анализа кода VBA его можно записать более компактно и эффективно, в частности, избавиться от русских слов в названии шрифта, заменив их форматными кодами &B и &I и придав коду независимость от региональных настроек:
PHP код:
    With ActiveSheet.PageSetup
        
.RightFooter _
        
"&""Arial""&B&16Стр. &B&10&P из &B&I&20&S&N"
    
End With 
Ну, и в таком виде уже можно двигать в Аксапту. Должно будет получиться что-то вроде:
X++:
COM comTemp;

comTemp = ActiveSheet.PageSetup();
comTemp.RightFooter('&"Arial"&B&16Стр. &B&10&P из &B&I&20&S&N');
За это сообщение автора поблагодарили: andrewK (1).
Старый 24.12.2008, 18:44   #9  
andrewK is offline
andrewK
Участник
 
45 / 22 (1) +++
Регистрация: 03.11.2005
А, не обратил внимание на закрывающий тэг &.
Спасибо большое
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:33.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.