Перейти к публикации

выгрузить вид в Xml


Рекомендованные сообщения

hi All!

подскажите, есть ли какая либо возможность выгрузить содержание определенного вида в виде xml файла ? (например дерево проектов).

заранее благодарен !

Ссылка на сообщение
Поделиться на других сайтах


Да есть только именно вида.

Если просто запустить смартим, то дерево проектов которое появится это не вид, а вот если запустить поиск по атрибуту или примеру и найти все проекты (отображая результаты поиска в виде дерева или линейного списка например) то это будет уже вид.

Посмотри пример выгрузки вида в Excel как пример. Если подойдет выложу исходники.

Ссылка на сообщение
Поделиться на других сайтах

Было бы неплохо если бы выгружались и все вхождения из найденного списка, например список из 5 сборок - необходимо выгрузить деревья этих сборок (и эта возможность была регулируема например, глубина или да\нет)

Ссылка на сообщение
Поделиться на других сайтах

2 nester

Если известна структура которая может быть или нет в виде, сделай поиск:

Вот рабочий пример, а то в документации по смартиму ошибка в получении объектов из поиска.

Sub Find(ByVal ClassId As Integer, ByVal ObjectId As Long, ByVal VType As ViewTypeEnum)

On Error GoTo error_ex

Dim SmObject As SmApplic.ISmObject



	 Set SmObject = ObjectStore.RetrieveObject(ClassId, ObjectId)

	 

	   If SmObject Is Nothing Then

		GoTo error_ex

	   End If

	   

Dim SmView As SmGUISrv.ISmView

Dim Query As SmApplic.ISmQuery

Dim QueryDef As SmApplic.ISmQueryDefinition



Set Query = SmSession.ObjectStore.NewQuery

Set QueryDef = Query.QueryDefinition



QueryDef.RecordLimit = 5000 ' лучше указать, а то выдаст максимум 1000 объектов

QueryDef.Roles.Add SmObject.ClassId, "F"

'--------------------------------------------

QueryDef.Select.Add "CLASS_ID", "F", False

QueryDef.Select.Add "OBJECT_ID", "F", False

QueryDef.Where.Add " ", "OBJECT_ID", "=", SmObject.ObjectId, False, "F"

QueryDef.CaseSensitive = False

Query.Run



 If Query.RecordCount = 0 Then

  Sm.ShowSmMessage "Selected SmarTeam Object does not exist. Operation available only for saved in SmarTeam Objects."

  Exit Sub

 End If

 

Set SmView = GUIServices.Views.NewViewByType(VType)

 

SmView.DisplayObjects.CompositeObjects = SmSession.ObjectStore.CompositeObjectsFromData(Query.QueryResult, False)

SmView.ViewTitle = "SMARTEAM ProfileCARD View"

SmView.SmViewWindow.WindowState = wstNormal

SmView.SmViewWindow.Style = swsNormal



If GetInputState Then DoEvents

SmView.SmViewWindow.ShowModal

If GetInputState Then DoEvents



Exit Sub

error_ex:

 msgbox err.description

End Sub
Может на мысль наведет на какую нибудь :)

Было бы неплохо если бы выгружались и все вхождения из найденного списка, например список из 5 сборок - необходимо выгрузить деревья этих сборок (и эта возможность была регулируема например, глубина или да\нет)

Если выгружались это значит check out ->

Option Explicit



'Constants

Public Const NM_LFCYC_CHECKIN_MODE_C = "CHECKININ_MODE"

Public Const NM_LFCYC_NEW_BRANCH_C = "NEW_BRANCH"

Public Const NM_LFCYC_CHECKIN_MODE = NM_LFCYC_CHECKIN_MODE_C

Public Const NM_LFCYC_NEW_BRANCH = NM_LFCYC_NEW_BRANCH_C

Public Const LFCYC_WorkRevN = 1

Public Const LFCYC_PrevRevN = 2

Public Const LFCYC_UserRevN = 3

Public Const LFCYC_WorkRev = LFCYC_WorkRevN

Public Const LFCYC_PrevRev = LFCYC_PrevRevN

Public Const LFCYC_UserRev = LFCYC_UserRevN

Public Const LFCYC_NewBranch = 1

Public Const MODLST_AllMechType = -1



'--------------------

' OperName = "NM_OPER_CHECKOUT" 

' OperName = "NM_OPER_CHECKIN" 

' OperName = "NM_OPER_NEWRELEASE"

' OperName = "NM_OPER_FREEZE"

' OperName = "NM_OPER_APPROVE"

'

'

'--------------------

Public Function LifeCycle(ByVal WorkObject As SmApplic.ISmObject, ByVal OperName As String) As ModalResultEnum

On Error GoTo error_ex

Set WorkObject = ObjectStore.RetrieveObject(WorkObject.ClassId, WorkObject.ObjectId)

Dim Collection As SmApplic.ISmObjects

Set Collection = ObjectStore.NewObjects

Collection.Add WorkObject

Collection.Clear

Collection.Add WorkObject



Dim LC As ISmLifeCycleView

Set LC = Sm.GUIServices.Views.NewLifeCycleView

 

LC.Objects = Collection



Dim Operation   As SmApplic.ISmOperation



Dim Metainfo	As SmApplic.SmMetaInfo

Set Metainfo = SmSession.Metainfo



Set Operation = Metainfo.OperationsForClass(WorkObject.ClassId, False).ItemByName(OperName)

LC.Operation = Operation

LC.Style = swsNormal

LC.ShowModal

LifeCycle = LC.ModalResult

Exit Function

error_ex:

msgbox Err.description

LifeCycle = mrCancel

End Function

[code]

Было бы неплохо если бы выгружались и все вхождения из найденного списка, например список из 5 сборок - необходимо выгрузить деревья этих сборок (и эта возможность была регулируема например, глубина или да\нет)

Если выгружались это значит в xml ->

Один из вариантов: Выбери в настройках дерева те классы которы нужны в xml (чтобы все объекты отображались в одном дереве см. рис. )

Dim GUIServices As SmGUISrv.SmCommonGUI

 Set GUIServices = SmSession.GetService("SmGUISrv.SmCommonGUI")



Dim SmView As SmGUISrv.ISmView

 Set SmView = GUIServices.ActiveViewWindow.SmView



' А дальше используй SmView.DisplayObjects.CompositeObjects

' а то SmView.DisplayObjects.MultiCompositeObjects еще не поддерживается 

'

'SmView.DisplayObjects.CompositeObjects(index).ItemByClassId(class_id)

Есть вопросы спрашивай.

PS:

попытка написать как можно проже :) надеюсь удалась.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
×
×
  • Создать...