The following program is an example of how user can list the attribute's forms names.
Program provided was tested with Microsoft Visual Basic 2008 Express Edition.
First step that needs to be performed is to put a button on form.
The ID of the button is "Button1". An event is used with this ID.
To execute progam just click the button on the form.
Program is based on Strategy Intelligence Server API.
Link below points to full documentation of this API.
https://resource.microstrategy.com/MSDZ/MSDL/900/docs/DevLib/sdk_iserver/api_ref/annotated.html
I
mports DSSCOMMasterLib
Public Class Form1
Private Sub listAttributes()
'STEP 1 : Connect to source I-Server
Dim objServer As New DSSDataSource
objServer.Name = "localhost" ' Servername.Text
objServer.Type = EnumDSSDataSourceType.DssDataSourceTypeServer
objServer.Location = "localhost" 'Servername.Text
objServer.Mode = EnumDSSConnectionMode.DssConnectionModeServerAccess
objServer.AuthMode = EnumDSSAuthModes.DssAuthStandard
objServer.login = "administrator" 'Login.Text
objServer.Passwd = "" ' Pwd.Text
objServer.Init()
'STEP 2: Login to source Project
Dim objProjectList As DSSDataSourceEnumerator
Dim objDataSource As DSSDataSource
objProjectList = objServer.Enumerator
'objDataSource = objProjectList.ItemByProjectName(ProjectName.Text)
objDataSource = objProjectList.ItemByProjectName("Strategy Tutorial")
objDataSource.Init()
'--------------------------------------------------
' Create a source session object.
'StatusBar.Panels(1).Text = "Create a session."
Dim MySession As IDSSSession
Dim MySource As IDSSSource
'MySession = MyProject.CreateSession
MySession = objDataSource.CreateSession
MySource = _
MySession.Component(EnumDSSComponentRole.DssRoleObjectSource)
'--------------------------------------------------
' Find all attributes
'--------------------------------------------------
Dim MySourceFolder As IDSSFolder
Dim MySourceReportDef As IDSSReportDefinition
Dim ObjSearch As IDSSSearch
' StatusBar.Panels(1).Text = _
' "Searching for Report"
'--------------------------------------------------
' Initialize a source search object.
ObjSearch = MySource.NewObject(EnumDSSObjectType.DssTypeSearch)
'ObjSearch = objDataSource.NewObject(EnumDSSObjectType.DssTypeSearch)
'ObjSearch.NamePattern = "TestReport"
ObjSearch.NamePattern = "Month of Year"
ObjSearch.Types.Add(EnumDSSObjectType.DssTypeAttribute)
MySourceFolder = ObjSearch.Execute
For Each collectionAttributeItem As IDSSAttribute In MySourceFolder
Dim attForms As IDSSAttributeForms
' Perform desired processing on each item.
MessageBox.Show(collectionAttributeItem.Info.Name)
attForms = collectionAttributeItem.Forms
For Each attributeForm As IDSSAttributeForm In attForms
MessageBox.Show(attributeForm.BaseAttributeForm.Name + " " + attributeForm.UseName)
Next attributeForm
Next collectionAttributeItem
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
listAttributes()
End Sub
End Class