2016-03-27 9 views
1

VisM.ocxへの参照を追加し、ツールボックスにactiveXコントロールとして追加することで、VisMコントロールをvb.netに追加しました。 VisMでGLOBALSまたはGLOBAL値のリストを出力

は、私がボタンに次のコードを追加:ここから

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 

、私は

^BACKTR("INDX","COMPANY",という名前のグローバル変数から出力変数に必要があるか、すべてのI出力/リストの中に、このグローバルからのいくつかの変数を行います、datatable、または単一の変数でさえも?私が必要とするのは、VB.netでアクセスすることだけです。そこから、私のプロジェクトのためにGLOBALを使って作業することができます。出力が生であっても、私がいない列または何もIEで(受け入れます:^BACKTR("INDX","COMPANY",1,63572,9792) = "" 私はすでに自分のアプリケーションでこのような

答えて

3

何かデータを使用することができ、それからのように、次のコードは^BACKTR("DATA","STATISTICS")からデータを読み込み、ListVewにそれを置きます。それはAxVisM1.Executeでデータを取得するためのCOSコードを実行する。$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 
+0

このDAiMorをしようとします –

関連する問題