Подключение к МиС из Вертикаль-Отчетов

Автор Александр Волков, 12.08.16, 08:21:27

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Александр Волков

Как подключиться к МиС из функции формирования атрибута в Отчетах Вертикали?
Мне нужно в МиСе найти материал, который есть в сборке и получить его атрибут.

tur

А перевести на нормальный язык можно?

Александр Волков

В редакторе отчетов в Вертикали я пишу функцию в блоке подстановок для ячейки таблицы. У меня есть наименование материала. Мне нужно подключиться к МиС, найти там этот материал, взять оттуда атрибут плотность и вывести в карту.
Я не знаю как подключиться к МиС.

Антон_

У нас делали такое, только на делфи и к сожалению не помню как. Если из справки, то
BOMat := CreateComObject(Class_BOSimpleProvider) as IBOSimpleProvider;
на VB это скорее всего будет выглядеть так
set BOMat = CreateObject(,"Materials.Class_BOSimpleProvider")
либо может set BOMat = GetObject("Materials.Class_BOSimpleProvider")
если получится, то далее наверно стоит поискать функции в файле SDK.chm из Materials\SDK

Александр Волков

Пытаюсь найти материал в МиС в функции таблицы в отчетах в Вертикали аналогично Delphi.
На строчке
    BOMat.ExecuteQuery BOQuery,ErrorCode,ErrorMessage
вылетает ошибка.

Может я вообще что-то не так делаю, потому что на Basic делаю практически наугад.

function FillAttr(start_x, start_y, clsAttr, obj)
  ' start_x,y – координата начала вставки, clsAttr – атрибут из блока подстановки, obj – объект технологии

  set BOMat = CreateObject("Materials.BOSimpleProvider")
 
  'создаем запрос
  set BOQuery = BOMat.NewQuery
  'заголовок запроса
  BOQuery.Request.Topic = "Search"

  BOQuery.Request.Attributes.Add "SearchType", "0" '0 - Материалы
  BOQuery.Request.Attributes.Add "SearchContext", "0"  '0 - Материалы
  BOQuery.Request.Attributes.Add "SearchConditions", "0" '0 – по наименованию
 
  BOQuery.Request.Attribute("SearchConditions").Attributes.Add "SearchCondition", "0"
  BOQuery.Request.Attribute("SearchConditions").Attribute("SearchCondition").Attributes.Add "Value","Стеклотекстолит листовой"
 

  BOMat.ExecuteQuery BOQuery,ErrorCode,ErrorMessage
 
'  FillAttr = BOMat.Response.Attributes.Item(0).Value
end function

Может кто делал подобное?

Александр Волков

Пошли другим путем. При добавлении материала из Лоцман-технолог передали нужный атрибут (плотность). И потом взяли его в формулу расчета просто из атрибутов материала в Вертикали.