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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2005, 12:53   #1  
барбудас is offline
барбудас
Участник
 
55 / 10 (1) +
Регистрация: 30.09.2004
Требуется перенести в кода Excel Buffer код VBA под Excel.
В частном случае, следующий:
Код:
srcRange = "Отчет!R1C1:R1268C11"
destRange = "Сводная!R5C2"
pivotName = "СводнаяТаблица1"
    ActiveWorkbook.PivotCaches.Add(1, srcRange).CreatePivotTable destRange, pivotName, 1
    With Sheets("Сводная!").PivotTables("СводнаяТаблица1").PivotFields("Должность")
        .Orientation = 1
        .Position = 1
    End With
...
...
    ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _
        ("СводнаяТаблица1").PivotFields("Сумма"), "Сумма по полю Сумма", -4157
здесь на основе данных одного листа создается сводная таблица на другом. я начинаю создавать в Excel Buffer

функцию.

Код:
CreatePivot(PivotName : Text[250];SheetName : Text[250];SrcSheetName : Text[250];SrcBegRow : 

Integer;SrcBegCol : Integer;SrcEndRow : In ... (и т.п. - параметры)

// лист для сводной таблицы
XlWorkSheet := XlWorkBook.Worksheets.Add;
XlWorkSheet.Name := SheetName;
// дипазон-источник
srcrange:=srcsheetname+'!R'+format(srcBegRow)+'C'+format(srcBegCol)+':R'+format(srcendRow)+'C'+format(srcend

col);
// сводная таблица
XlWorkBook.PivotCaches.Add(1, srcrange).CreatePivotTable(sheetname+'!R5C2',PivotName,1);

// настройка сводной таблицы
XlWorkSheet.PivotTables(PivotName).PivotFields('Должность').Orientation = 1;
и тут мне пришлось остановиться - последняя строчка данного кода не компилится. ругается на отсутсвие

PivotFields.
попробовал создавать Globals с типом Automation и т.д. по аналогии с др. "экселевскими" Globals - никак!!!

что же делать? подскажите, как правильно "переводить" обектно-ориентированный код?
Спасибо.
__________________
извиняюсь если вопрос ТУП - спрашиваю исключительно потому, что не знаю. спасибо, что не послали
Старый 20.01.2005, 13:30   #2  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Код:
PivotTable := XlWorkSheet.PivotTables(PivotName);
PivotField := PivotTable.PivotFields('Должность');
PivotField.Orientation := 1;
Старый 20.01.2005, 13:32   #3  
барбудас is offline
барбудас
Участник
 
55 / 10 (1) +
Регистрация: 30.09.2004
Цитата:
Сообщение от tyrex
Код:
PivotTable := XlWorkSheet.PivotTables(PivotName);
PivotField := PivotTable.PivotFields('Должность');
PivotField.Orientation := 1;
а PivotTable и PivotField как объявить?
__________________
извиняюсь если вопрос ТУП - спрашиваю исключительно потому, что не знаю. спасибо, что не послали
Старый 20.01.2005, 13:41   #4  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Код:
PivotTable : Automation:'Microsoft Excel 11.0 Object Library'.PivotTable";
PivotField: Automation :'Microsoft Excel 11.0 Object Library'.PivotField";
Старый 20.01.2005, 15:24   #5  
барбудас is offline
барбудас
Участник
 
55 / 10 (1) +
Регистрация: 30.09.2004
видимо, я искал черную кошку в темной комнате. проблема-то в следующем.
мне не создать переменные типа automation!!!!

их нет в списке типов. у соседа такой проблемы нет.
создал с его машины переменные с первым попавшимся subtype, попытался со своей машины установить нужный subtype - увы ((( - not recognized as a GUID и т.п.

почему может возникать такая ситуация?
поступило предложение переставить офис...
__________________
извиняюсь если вопрос ТУП - спрашиваю исключительно потому, что не знаю. спасибо, что не послали
Старый 20.01.2005, 16:12   #6  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Возможно будет достаточно переустановить Office Web components?
__________________
С уваженем,
rootadmin
Старый 21.01.2005, 12:57   #7  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от барбудас
видимо, я искал черную кошку в темной комнате. проблема-то в следующем.
мне не создать переменные типа automation!!!!

их нет в списке типов. у соседа такой проблемы нет.
создал с его машины переменные с первым попавшимся subtype, попытался со своей машины установить нужный subtype - увы ((( - not recognized as a GUID и т.п.

почему может возникать такая ситуация?
поступило предложение переставить офис...
Такая ситуация может возникать потому, что не все необходимые библиотеки (*.dll) присутствуют в твоём компе, либо они присутствуют, но не зарегестрированы в реестре. Сравни состав библиотек с компа твоего соседа с составом библиотек на твоём компе. Искать надо в папках: 1). C:\Program Files\Navision Attain\Client; 2). C:\Program Files\Common Files\Navision\Communication Component; 3). C:\Program Files\Common Files\Navision\Application Handler; 4). C:\Program Files\Common Files\Navision\Mapi. Если у соседа всё то же самое, что и у тебя, то попробуй сделать им всем regsvr32. Если не поможет,- попробуй найти в реестре ссылку на файл библиотеки, используя для поиска имя сервера Automation, в данном случае это - Microsoft Excel 11.0 Object Library. Если найдёшь ссылку в реестре, то проверь, на какую библиотеку он ссылается (файл). Если по указанному пути действительно лежит файл *.dll, то либо прогсто перерегистрируй его, либо скопируй с компа соседа и всё равно перерегистрируй. Хотя, если тебе выдавалось сообщение, типа : "...not recognized as a GUID...", то в реестре ты ничегошеньки не найдёшь. Поэтому, ищи в реестре соседа ссылку на файл библиотеки (потому что у него она точно есть), копируй с его компа этот файл на твой комп, регистрируй в реестре, перезагружай комп - и только в путь!
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
 


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

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

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