shss
07-12-2011, 07:23 PM
Hi, there is the code:
Dim DataSource As LMADataSource
Set DataSource = New LMADataSource
Dim objFilter As LMAFilter
Dim criterion As LMACriterion
Set criterion = New LMACriterion
Set objFilter = New LMAFilter
Set objPl = New Placement
Set ds = objPl.PIDDataSource
pid_id = ds.PIDMgr.Drawing.ID
criterion.Conjunctive = True
criterion.SourceAttributeName = "ItemStatus"
criterion.ValueAttribute = 1
criterion.Operator = " = "
objFilter.itemType = "Piperun"
objFilter.Criteria.Add criterion
Set criterion = New LMACriterion
criterion.Conjunctive = True
criterion.SourceAttributeName = "Representation.Drawing.SP_ID"
criterion.ValueAttribute = pid_id
criterion.Operator = " = "
objFilter.Criteria.Add criterion
Dim piperun As LMPipeRun
Dim piperuns As LMPipeRuns
Set piperuns = New LMPipeRuns
piperuns.Collect DataSource, Filter:=objFilter
Debug.Print "Total Piperuns found: " & piperuns.Count
DataSource.BeginTransaction
For Each piperun In piperuns
List1.AddItem (piperun.Attributes("ItemTag").Value)
Next
DataSource.CommitTransaction
ds.CommitTransaction
Set DataSource = Nothing
Set objFilter = Nothing
Set criterion = Nothing
Set piperun = Nothing
Set piperuns = Nothing
But this code select all piperuns in the drawing. Which criterion helps me select an active line and gets data?
or maybe exist the another way to make it?
Thx.
Dim DataSource As LMADataSource
Set DataSource = New LMADataSource
Dim objFilter As LMAFilter
Dim criterion As LMACriterion
Set criterion = New LMACriterion
Set objFilter = New LMAFilter
Set objPl = New Placement
Set ds = objPl.PIDDataSource
pid_id = ds.PIDMgr.Drawing.ID
criterion.Conjunctive = True
criterion.SourceAttributeName = "ItemStatus"
criterion.ValueAttribute = 1
criterion.Operator = " = "
objFilter.itemType = "Piperun"
objFilter.Criteria.Add criterion
Set criterion = New LMACriterion
criterion.Conjunctive = True
criterion.SourceAttributeName = "Representation.Drawing.SP_ID"
criterion.ValueAttribute = pid_id
criterion.Operator = " = "
objFilter.Criteria.Add criterion
Dim piperun As LMPipeRun
Dim piperuns As LMPipeRuns
Set piperuns = New LMPipeRuns
piperuns.Collect DataSource, Filter:=objFilter
Debug.Print "Total Piperuns found: " & piperuns.Count
DataSource.BeginTransaction
For Each piperun In piperuns
List1.AddItem (piperun.Attributes("ItemTag").Value)
Next
DataSource.CommitTransaction
ds.CommitTransaction
Set DataSource = Nothing
Set objFilter = Nothing
Set criterion = Nothing
Set piperun = Nothing
Set piperuns = Nothing
But this code select all piperuns in the drawing. Which criterion helps me select an active line and gets data?
or maybe exist the another way to make it?
Thx.