Hi,
hier ein kleines Beispiel dazu,
'Projektfinden :
'' Wenn eines in SmarTeam Editor selektiert wurde
Dim Project As ISmObject
Dim GUI As SmCommonGUI
Set GUI = smsession.GetService("SmGUISrv.SmCommonGUI")
Dim ViewWindow As ISmViewWindow
Set ViewWindow = GUI.ActiveViewWindow
If Not ViewWindow Is Nothing Then
' the script is called from the documents view
Dim View As ISmView
Set View = ViewWindow.smView
Dim Controller As Object ' variant object of SmGUISrv.ISmGUIComponent class fam
Set Controller = View.Controller
' main object for view is requested project
Set Project = Controller.DataSource.MainClassObject
End If
'' Wenn über CAD Speichern durchgeführt wird
If Project Is Nothing Then
On Error GoTo KeinProjekt
' the script is called from the integration
Dim SmCAD As SmCADInterface
Set SmCAD = smsession.GetService("SmCAD.SmCADInterface")
Dim ProjectObjId As Long
Dim ProjectClassId As Integer
Dim RetCode As Integer
RetCode = SmCAD.GetProject(ProjectObjId, ProjectClassId)
If Not IsMissing(smsession.MetaInfo.SmAllClasses.ItemByClassId(ProjectClassId).Name) Then
' Nur ein Trick um einen Fehler zu produzieren, wenn die die Klasse nicht vorhanden ist.
' Dies kann z.B. bei einer Separaten Top Down Ansicht der Fall sein
End If
Dim Fparentid As Long
Dim Fparentclassid As Integer
RetCode = SmCAD.GetParent(Fparentid, Fparentclassid)
If ProjectObjId = -2147483647 Or ProjectObjId = 0 Then
' MsgBox "Kein Projekt gewählt", vbOKOnly, "ProjectToDocument"
' ProjectToDocument = ercGen
' Exit Function
Else
Set Project = smsession.ObjectStore.RetrieveObject(ProjectClassId, ProjectObjId)
End If
End If
'' so und nun hast Du das Project Object aus dem Du die gewünschten Werte abholen kannst.
msgbox Project.Data.ValueAsString("TDM_ID")
.
.
.
.
Exit Function
KeinProjekt:
msgbox "Doch kein Projekt gewählt"
End Function
Gruß
Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP