ActiveX TreeView SQL

Prezados,

Estou pretendendo carregar os valores do objeto TreeView no E3 por meio de consulta SQL.
Por exemplo: Tabela Empresa > Tabela Setor > Tabela Máquina < Tabela Operador
Como seria possível?

Daniel,

Você quer carregar valores retornados de uma consulta no objeto TreeView?
Se realmente for isso, basta criar um objeto consulta e retornar os objetos via método GetADORecordset().

Por exemplo, para retornar o nome de todas as tabelas existentes em um determinado banco SQL.
Sintaxe SQL:
SELECT *
FROM sysobjects
WHERE xtype=‘U’

Script utilizado:
Sub TreeView2_OnStartRunning()
Set RS = Screen.Item(“Consulta1”).GetADORecordset()
For i = 1 To RS.RecordCount
Campo1 = RS.Fields(“Name”).Value
Set nodX = Nodes.Add(,Campo1)
NodX.Bold = True
NodX.Checked = True
RS.MoveNext()
Next
End Sub

Para maiores detalhes visualize o artigo abaixo:
http://kb.elipse.com.br/pt-br/questions/2211

Caso encontre dificuldades, encaminhe sua aplicação para delio@elipse.com.br.

É justamente isso Délio!
Mas qual a sintaxe do script para criar outros níveis (“filhos”) no TreeView?

Com base naquele mesmo exemplo, ao final do script indique o índice desejado e o valor do objeto filho:

Sub TreeView2_OnStartRunning()

Set RS = Screen.Item(“Consulta1”).GetADORecordset()

For i = 1 To RS.RecordCount
Campo1 = RS.Fields(“Name”).Value
Set nodX = Nodes.Add(,Campo1)
NodX.Bold = True
NodX.Checked = True
nodx.Expanded = True
RS.MoveNext()
Next

'Inserir objeto filho
Nodes.Add 1,4, “FilhoItem1”
Nodes.Add 11,4, “FilhoItem11”
Nodes.Add 12,4, “FilhoItem12”

End Sub

@delio Depois do seu esclarecimento, enfim, consegui entender a logica do TreeView. Muito obrigado!
Para completar o tópico, fiz um arranjo com filhos, netos, bisnetos e trinetos :smile:

'Raiz
  Nodes.Add ,,"A","Item1"
Nodes.Add ,,"B","Item2"

'Inserir objeto filho
Nodes.Add “A”,4,“A1”, “FilhoItem1”
Nodes.Add “B”,4,“B1”, “FilhoItem2”

'Inserir objeto neto
Nodes.Add "A1",4,"A1.1", "NetoItem1" 
  Nodes.Add "B1",4,"B1.1", "NetoItem2" 
'Inserir objeto bisneto
Nodes.Add "A1.1",4,"A1.1.1", "BisnetoItem1"
Nodes.Add "B1.1",4,"B1.1.1", "BisnetoItem2" 

'Inserir objeto trineto
Nodes.Add “A1.1.1”,4, “TrinetoItem1”
Nodes.Add “B1.1.1”,4, “TrinetoItem2”

1 Like