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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2005, 16:34   #1  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
День добрый.
Что-то я туплю.
Выкидываю отчет в Эксель.
Пытаюсь создать на листе итоги (которые в Экселе делаются через Данные - Итоги).
Смотрю на это дело - в методе Range.Subtotal полагается указывать следующие параметры:
<div class='CALtop'>C/AL</div><div class='CAL'>
Long GroupBy;
XLCONSOLIDATIONFUNCTION Function;
Variant TotalList;
Variant Replace;
Variant PageBreaks;
XLSUMMARYROW SummaryBelowData;
</div>

Теперь смотрю в записанный макрос (суммирую два столбца - 3-й и 4-й)
<div class='CALtop'>C/AL</div><div class='CAL'>
Selection.Subtotal
 GroupBy:=1,
 Function:=xlSum,
 TotalList:=Array(3, 4),
 _Replace:=True,
 PageBreaks:=False,
 SummaryBelowData:=True
</div>
Дык вот как передать в C/AL ентот самый TotalList?
Что нужно указать в Range.SubTotal вместо "Array(3, 4)"?

Прошу прощения, если вопрос тупой, я в VBA совсем не шарю, к сожалению.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 10.08.2005, 17:01   #2  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
C/AL не поддерживает конвертацию из переменной типа вариант в тип SAFEARRAY. Как вариант решения могу предложить считать сабтоталы непосредственно в С/AL, либо динамически создать макрос VBA и вызвать его
Старый 10.08.2005, 17:13   #3  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Печально.
А можно подробнее насчет динамического создания макроса и его вызова?
Непосредственно в C/AL уже посчитал, но так неинтересно :stupid:
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 19.01.2006, 17:55   #4  
reg4all is offline
reg4all
Участник
 
32 / 10 (1) +
Регистрация: 16.08.2005
Адрес: Москва
Да, уважаемый Tirex, было бы очень интересно услышать Ваше решение данной проблемы
__________________
"Трудное надо сделать привычным, привычное легким, а легкое приятным" (Станиславский)
Старый 19.01.2006, 18:26   #5  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Цитата:
Сообщение от Дуд Посмотреть сообщение
А можно подробнее насчет динамического создания макроса и его вызова?
пж

файл c:\test.bas:
Public Sub SayHello()
MsgBox "Hello world"
End Sub

понятно что такой файл можно создать "на лету"

Код:
CREATE(ExcelApp);
ExcelApp.Visible := TRUE;
ExcelWorkBook := ExcelApp.Workbooks.Add;
ExcelWorkSheet := ExcelWorkBook.Sheets.Item(1);
ExcelApp.VBE.ActiveVBProject.VBComponents.Import('c:\test.bas');
ExcelApp.Run('SayHello');
CLEAR(ExcelApp);
P.S. В Excel предварительно должен быть разрешен Programmatic Access. Подробнее тут
Старый 22.01.2006, 22:13   #6  
reg4all is offline
reg4all
Участник
 
32 / 10 (1) +
Регистрация: 16.08.2005
Адрес: Москва
2Tyrex
Thanx
Метод хорош, но не универсален, сам понимаешь..
Второй вариант -
Цитата:
Как вариант решения могу предложить считать сабтоталы непосредственно в С/AL,
А что значит считать неспосредственно в C/AL?
__________________
"Трудное надо сделать привычным, привычное легким, а легкое приятным" (Станиславский)
Старый 23.01.2006, 12:42   #7  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Это значит не использовать эксельные итоги, а все заранее посчитать в Навыжне и вывести в Эксель готовые числа.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
 


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

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

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