Проблема с функцией Classifier.GetSubItems(...) в Delphi

Модераторы: ayatsk, deschere

Закрыто
Аватара пользователя
Isaev_AA
Сообщения: 3
Зарегистрирован: 03 фев 2009, 16:43
Откуда: ОАО "КВЗ"

Проблема с функцией Classifier.GetSubItems(...) в Delphi

Сообщение Isaev_AA » 03 фев 2009, 16:57

Значит что я делаю. Конечно ....

Код: Выделить всё

 AplPssAPI: TAplPssAPI;
 PssClassifier :IAplAPI_Classifier;
... потом ....

Код: Выделить всё

 AplPssAPI:=TAplPssAPI.Create(nil);
 PssClassifier:= PssApi As IAplAPI_Classifier;
 PssClassifier.LoadDictionary;
... вызываю, передаю элемент уровня каталога (Integer) и две переменные (OleVariant) ...

Код: Выделить всё

 PssClassifier.GetSubItems(Level,tempItems,tempRels);
... и получаю ...
ERROR: Access violation ... in module 'oleaut32.dll' ! :twisted:

Аватара пользователя
ayatsk
Сообщения: 200
Зарегистрирован: 03 июл 2008, 22:41
Откуда: НИЦ CALS
Контактная информация:

Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi

Сообщение ayatsk » 03 фев 2009, 17:21

1. Был ли Connect ?
2. Как получен Level ? (реально это указатель, и если указывает не туда - будет падение)
3. Какая верся Delphi?

Аватара пользователя
Isaev_AA
Сообщения: 3
Зарегистрирован: 03 фев 2009, 16:43
Откуда: ОАО "КВЗ"

Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi

Сообщение Isaev_AA » 03 фев 2009, 17:26

Connect конечно был !
Delphi 7.0
Уровень был получен ...

Код: Выделить всё

InSPI:=PssClassifier.GetClassifierSystemById('СИН');
if PssClassifier.LoadSubClassifierLevels(InSPI,tempFolders,0) Then
begin
      if (VarArrayHighBound(tempFolders,1)-VarArrayLowBound(tempFolders,1)+1)>0 then
      begin
        ArrTemp:=tempFolders;
        for i:=0 to Length(ArrTemp)-1 do
        begin
          PssClassifier.GetSubItems(ArrTemp[i],tempItem,tempRels);
        end;
      end;
end;
... в массиве ArrTemp объекты типа "apl_classifier_level".

В общем мне нужно получить все позиции инструмента которые привязаны к данному уровню каталога.
То есть от объектов "apl_classifier_level" перейти к связанному списку "charact_list_element".

Аватара пользователя
ayatsk
Сообщения: 200
Зарегистрирован: 03 июл 2008, 22:41
Откуда: НИЦ CALS
Контактная информация:

Re: Проблема с функцией Classifier.GetSubItems(...) в Delphi

Сообщение ayatsk » 03 фев 2009, 19:25

Сейчас функция GetSubItems в качестве первого параметра корректно воспринимает только массив. И возвращает содержимое всех переданных ей уровней. Должна была разбираться что ей передали - массив или целое, но ... В ближайшее время исправим.

Если вызвать как

Код: Выделить всё

PssClassifier.GetSubItems(tempFolders,tempItem,tempRels);
- работает.

Закрыто