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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.05.2007, 16:22   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
еще на заметку
Вот, доктора прямо английским по-белому пишут про GET.DOCUMENT(50):
How to determine how many pages will be printed in Excel

А вот это вообще круть - на формулах сделано:
Page Of Pages in a Cell

Во второй ссылке создаются вот такие имена с такими формулами (не связанными явно с ячейками!). Чтобы создать такие имена надо в Excel'е нажать Ctrl+F3 (или по меню: Вставить-Имя-Присвоить) и далее ввести в поле "Имя" то, что до двоеточия, а в поле "Формула" то, что после.

Для английской версии Excel:
RowAfterpgbrk : =GET.DOCUMENT(64)
TotPageCount : =GET.DOCUMENT(50)
PageOfPages : ="Page " & IF(ISNA(MATCH(ROW(),RowAfterpgbrk,1)),1,MATCH(ROW(),RowAfterpgbrk,1)+1)& " of " & TotPageCount + 0*NOW()
ThisPage : =IF(ISNA(MATCH(ROW(),RowAfterpgbrk,1)),1,MATCH(ROW(),RowAfterpgbrk,1)+1)

Для русской версии Excel:
RowAfterpgbrk: =ПОЛУЧИТЬ.ДОКУМЕНТ(64)
TotPageCount : =ПОЛУЧИТЬ.ДОКУМЕНТ(50)
PageOfPages : ="Page " & ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)),1,ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)+1)& " of " & TotPageCount + 0*ТДАТА()
ThisPage : =ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)),1,ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)+1)

Следуя указаниям второй ссылки создал свой примерчик с этими формулами. Посмотрите вложение (немножко подождите при открытии, чтобы пересчитались формулы). Посмотрите Print Preview. В общем, занятная штуковина...

Еще раз смысл происходящего: есть возможность выяснить при помощи формул, на какой лист при распечатке попадет та или иная строка листа Excel.
Вложения
Тип файла: xls PageOfPagesInCell.xls (20.5 Кб, 145 просмотров)
Старый 28.10.2007, 15:59   #2  
fedka is offline
fedka
Участник
 
69 / 15 (1) ++
Регистрация: 12.04.2007
Цитата:
Сообщение от Gustav Посмотреть сообщение
Вот, доктора прямо английским по-белому пишут про GET.DOCUMENT(50):
How to determine how many pages will be printed in Excel
Странно, этот подход у меня ни в какую не работает.
cv.double() - выдает 0
cv.toString() - выдает 0x800A07ED VT_ERROR

Если смотрю через макрос в экселе :
"MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & _
" pages will be printed."
- отрабатывает конечно... 0x800A07ED VT_ERROR
Старый 29.10.2007, 10:03   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Может, у Вас какие-нибудь языковые проблемы типа как здесь? Может, надо по-русски ПОЛУЧИТЬ.ДОКУМЕНТ писать?
Старый 29.10.2007, 15:27   #4  
fedka is offline
fedka
Участник
 
69 / 15 (1) ++
Регистрация: 12.04.2007
Действитель, Вы правы. Главное вчера читал вашу ссылку, об этом думал, но пост выше моего "TotPageCount : =ПОЛУЧИТЬ.ДОКУМЕНТ(50)" не заметил ) Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из 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
Параметры страницы Excel через COM Sada DAX: Программирование 3 18.05.2006 10:30
Разрыв страницы в Excel Plushy DAX: Программирование 11 14.12.2005 09:39

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

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

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