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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2006, 15:40   #1  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Вывод в эксель. Требуется подвинуть автоматически вставленный вертикальный разделитель.
Макросами посмотрел и получил
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
что по сути равносильно ActiveSheet.VPageBreaks(1).DragOff -4161, 1
либо так
Set ActiveSheet.VPageBreaks(1).Location = Range("G1")

Каким образом можно такое замутить из C/AL?

Ничего из вот этого не работает:
Sheet.VPageBreaks.Item(1).DragOff(-4161,1);

Sheet.VPageBreaks.Item(1).Location := Sheet.Range('B1');

Это похоже работает, но нельзя удалить автоматически созданный резделить
Sheet.VPageBreaks.Item(1).Delete
Старый 26.10.2006, 12:17   #2  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от grif Посмотреть сообщение
Вывод в эксель. Требуется подвинуть автоматически вставленный вертикальный разделитель.
Макросами посмотрел и получил
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
что по сути равносильно ActiveSheet.VPageBreaks(1).DragOff -4161, 1
либо так
Set ActiveSheet.VPageBreaks(1).Location = Range("G1")

Каким образом можно такое замутить из C/AL?

Ничего из вот этого не работает:
Sheet.VPageBreaks.Item(1).DragOff(-4161,1);

Sheet.VPageBreaks.Item(1).Location := Sheet.Range('B1');

Это похоже работает, но нельзя удалить автоматически созданный резделить
Sheet.VPageBreaks.Item(1).Delete
Создайте предварительно
'Microsoft Excel 11.0 Object Library'.VPageBreak
'Microsoft Excel 11.0 Object Library'.VPageBreaks
И работайте через них

А вообще, если что-то не получается в Nav, но работает в макросах, то всегда есть такой путь:
1) Создать макрос
2) Запускать его из Nav
Старый 26.10.2006, 12:26   #3  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от randrews Посмотреть сообщение
Создайте предварительно
'Microsoft Excel 11.0 Object Library'.VPageBreak
'Microsoft Excel 11.0 Object Library'.VPageBreaks
И работайте через них
Делал, но не смог разобраться как их привязать к другим переменным экселевским, например к в WorkSheet

Цитата:
Сообщение от randrews Посмотреть сообщение
А вообще, если что-то не получается в Nav, но работает в макросах, то всегда есть такой путь:
1) Создать макрос
2) Запускать его из Nav
Да, я думал про этот метод, но не нашёл каким методом можно программно создать макрос, т.е. загрузить его в документ Excel при генерации отчёта. Правда навреное не сильно упорно искал
Старый 26.10.2006, 14:58   #4  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от grif Посмотреть сообщение
Да, я думал про этот метод, но не нашёл каким методом можно программно создать макрос, т.е. загрузить его в документ Excel при генерации отчёта. Правда навреное не сильно упорно искал
Честно говоря, мне кажется, что этого сделать нельзя.

Не поленился написать код
Код:
Name	DataType	Subtype	Length
ws	Automation	'Microsoft Excel 11.0 Object Library'.Worksheet	
wss	Automation	'Microsoft Excel 11.0 Object Library'.Sheets	
wa	Automation	'Microsoft Excel 11.0 Object Library'.Application	
wb	Automation	'Microsoft Excel 11.0 Object Library'.Workbook	
wbs	Automation	'Microsoft Excel 11.0 Object Library'.Workbooks	
wvpbs	Automation	'Microsoft Excel 11.0 Object Library'.VPageBreaks	
wvpb	Automation	'Microsoft Excel 11.0 Object Library'.VPageBreak
Код:
 CREATE(wa);
wbs :=  wa.Workbooks;
wb := wbs.Item('Книга1');
wss := wb.Worksheets;
ws := wss.Item('Лист1');
wvpbs := ws.VPageBreaks;
wvpb := wvpbs.Item(1);
//wvpb.Location := ws.Range('F1');
//wvpb.Delete;
Последние две строки закоментированы - делаете либо то либо другое.
Тест такой:
Создаете Книга1, вставляете разрыв. Обязательно переходите в режи "разметка страницы".
Пото пишите код тот что выше - работает. Проверено
Старый 27.10.2006, 12:03   #5  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
спасибо - всё работает
мой косяк был в том, что я не переводил эксель в режим разметки страниц.
В общем сделал Excel.ActiveWindow.View := 2; и всё заработало. После всех манипуляций можно и обратно перевести обычный, присвоив 1
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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