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

выгрузить вид в 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 пользователей

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




×
×
  • Создать...