Вывести список GLOBALS или одно значение GLOBAL с помощью VisM

Я добавил элемент управления VisM в vb.net, добавив ссылку на VisM.ocx и добавив его в свой набор инструментов в качестве элемента управления ActiveX.

Я добавил следующий код в кнопку:

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) = "", так как из него я уже могу использовать данные в своем приложении


person Malcolm Salvador    schedule 27.03.2016    source источник


Ответы (1)


Что-то вроде этого, код ниже считывает данные из ^BACKTR("DATA","STATISTICS") и помещает их в ListVew. Он выполняет код COS для получения данных с помощью AxVisM1.Execute. Посмотрите на функцию $order и о P0 и VALUE в vism в документации

        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
person DAiMor    schedule 28.03.2016
comment
попробую этот DAiMor - person Malcolm Salvador; 28.03.2016