18.04.2006, 08:34 | #1 |
Участник
|
Колонтитулы в Excel
Привет всем! Столкнулся с небольшой проблемкой...
Надо вывести колонтитул при формировании шаблона Excel из аксапты, но значение колонтитула должно браться из определенной ячейки...Стандартными средствами Excel не получается.... Если на VBA написать макрос, то выглядеть будет примерно так Sheets("Лист1").PageSetup.LeftHeader = Sheets("Лист1").Range("А1") Получается надо в аксапте что-то подобное написать....? Или программно переименовать Лист1 в нужное мне значение и выводить колонтитул стандартными средствами Excel? как переименовать Лист1 в аксапте пока не нашел.... |
|
18.04.2006, 09:06 | #2 |
Moderator
|
Цитата:
Сообщение от Vitaly_K
Надо вывести колонтитул при формировании шаблона Excel из аксапты, но значение колонтитула должно браться из определенной ячейки...Стандартными средствами Excel не получается....
PHP код:
|
|
18.04.2006, 09:19 | #3 |
Участник
|
не если в Excel что-то прописывать это не выход...
надо чтоб из аксапты вызывалось |
|
18.04.2006, 09:33 | #4 |
Участник
|
Если из 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 |
Moderator
|
Ну... прочитайте ячейку A1 из Аксапты, запишите в LeftHeader из Аксапты
Поиск по Форуму рулит. Может, вот это поможет: http://www.axforum.info/forums/showt...0089#post50089 |
|
18.04.2006, 10:07 | #6 |
Участник
|
Спасибо ребят... ,думаю это поможет
|
|
24.12.2008, 18:04 | #7 |
Участник
|
Добрый день.
Кто нибудь знает, как в Аксапте отформатировать вставленный колонтитул? Например сделать его шрифт жирным. |
|
24.12.2008, 18:19 | #8 |
Moderator
|
Цитата:
Записанный код VBA получится примерно такой (я написал в правый нижний колонтитул "Стр. &[Страница] из &[Страниц]"): PHP код:
После анализа кода VBA его можно записать более компактно и эффективно, в частности, избавиться от русских слов в названии шрифта, заменив их форматными кодами &B и &I и придав коду независимость от региональных настроек: PHP код:
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 |
Участник
|
А, не обратил внимание на закрывающий тэг &.
Спасибо большое |
|