1

我通过添加对 VisM.ocx 的引用并将其作为 activeX 控件添加到我的工具箱中,将 VisM 控件添加到 vb.net 中。

我在按钮中添加了以下代码:

Try
    'open the connection
        AxVisM1.Connect("CN_IPTCP:127.0.0.1[1972]")
    'set namespace to livedata (for formal namespaces, use the @ symbol)
        AxVisM1.NameSpace = "LIVEDATA"


    'do stuff.
    MsgBox("Cache is now active")

    'close the connection
    AxVisM1.DeleteConnection()

Catch ex As Exception
    'close the connection
    AxVisM1.DeleteConnection()

    MsgBox(ex.ToString)

End Try

从这里,我需要从名为的 GLOBAL 中输出变量^BACKTR("INDX","COMPANY",

如何将此 GLOBAL 中的所有/某些变量输出到列表、数据表或单个变量中?我所需要的只是在 VB.net 中访问它,然后我可以在我的项目中使用上述 GLOBAL。即使输出是原始的,我也会接受(不在列或任何内容中,即:^BACKTR("INDX","COMPANY",1,63572,9792) = "" 因为我已经可以在我的应用程序中使用数据

4

1 回答 1

3

像这样,下面的代码从^BACKTR("DATA","STATISTICS")ListVew 读取数据并将其放入。它执行 COS 代码以获取数据AxVisM1.Execute。查看$order函数,以及文档中vim中的P0 和 VALUE

        Dim cnt As Integer = 0
        ListView1.Items.Clear()
        ListView1.Columns.Clear()
        ListView1.Columns.Add("#")
        ListView1.Columns.Add("ID")
        For i = 1 To 25
            ListView1.Columns.Add("Prop" + i.ToString)
        Next

        AxVisM1.P0 = ""
        While True
            AxVisM1.Execute("set P0=$order(^BACKTR(""DATA"",""STATISTICS"",P0),1,VALUE)")
            If (AxVisM1.P0 = "") Then
                Exit While
            End If
            cnt = cnt + 1
            If (cnt > 100) Then
                Exit While
            End If

            Dim data() As String = Split(AxVisM1.VALUE, Chr(1).ToString)
            Dim line As ListViewItem = New ListViewItem(cnt)
            line.SubItems.Add(AxVisM1.P0.ToString)
            line.SubItems.AddRange(data)
            ListView1.Items.Add(line)

        End While
于 2016-03-28T09:55:21.480 回答