SALVAR INFORMA?ÕES DE U, TREEVIEW EM UM DB

ROGERCOUTO 05/05/2014 16:48:05
#437874
Boa tarde Pessoal,

Estou com uma dúvida e preciso da ajuda de vocês.
Estou trabalhando com uma TreeView e gostaria de salvar em um banco as opções que marquei no sistema, de modo que, quando eu abrir o sistema novamente as opções marcadas continuem la. Alguém poderia me dar uma idéia de como fazer? Estou utilizando o SQL Server 2008.

Em anexo mando print no TreeView que estou usando

Antecipadamente agradeço a todos

Abraço

Rogério Couto
KERPLUNK 05/05/2014 17:27:34
#437875
Estrutura da tabela:
Id - PK - inteiro
Descricao - string
Pai - inteiro

Registros:
1;Cadastro de clientes;0
2;Dados pessoais;1
3;Nome;2
4;Razao social;2
5;Sexo;2
....
35;Cadastro de fornecedores;0
36;Dados pessoais;35
37;Razão social;36
38;Endereço;36
39;Telefone;36
40;Telefone Alternativo;39
41;Telefone Alternativo;39

Entendeu?
ROGERCOUTO 06/05/2014 08:13:49
#437888
Bom dia,

A criação da tabela eu intendi, mais como ligar a TreeView ao banco de dados?

Abraço

Rogério Couto
KERPLUNK 06/05/2014 09:25:34
#437893
Ora, a tabela é a própria estrutura do treeview. Se entendeu como a tabela funciona, também entende a ligação com o treeview. E cuidado com erros de português.
ROMERO.KCOAL 06/05/2014 12:04:31
#437898
Eu uso treeview da seguinta forma

no codigo:

Const TodosRegistros = 1
Const AbrirAgenda = TodosRegistros + 10

Private Sub AtualizaTree()
Dim SqlInt As String
Dim lKey As Long
Dim hBook As Long
Dim allReg As Long
Dim RegJanela As Long
Dim RegRelatorio As Long
Dim SSstr As String * 250
Dim Onde As Long
With AlphaTreeView
Call .Initialize
Call .InitializeImageList
.Clear
.ItemHeight = 18
.HasButtons = True
.HasLines = True
.HasRootLines = True
.CheckBoxes = True
.AddIcon ImageList.ListImages(1).Picture [ô]0
.AddIcon ImageList.ListImages(2).Picture [ô]1
.AddIcon ImageList.ListImages(3).Picture [ô]2
.AddIcon ImageList.ListImages(4).Picture [ô]3
.AddIcon ImageList.ListImages(5).Picture [ô]4
.AddIcon ImageList.ListImages(6).Picture [ô]5
.AddIcon ImageList.ListImages(7).Picture [ô]6
.AddIcon ImageList.ListImages(8).Picture [ô]7
.AddIcon ImageList.ListImages(9).Picture [ô]8
.AddIcon ImageList.ListImages(10).Picture [ô]9

lKey = TodosRegistros
RegJanela = .AddNode(, , TodosRegistros, [Ô]Todas as Janelas[Ô], 0, 0)

.NodeChecked(.GetKeyNode(lKey)) = False
lKey = AbrirAgenda
hBook = .AddNode(RegJanela, , lKey, [Ô]Permitir Abrir [ô][ô] Teste de janela[ô][ô][Ô], 0, 0)
Onde = 1 [ô]=1
If SuaVariavelAqui = True Then .NodeChecked(.GetKeyNode(lKey)) = True
lKey = lKey + 1
Call .AddNode(hBook, , lKey, [Ô]Permitir cadastrar novos registros[Ô], 1, 1)
Onde = Onde + 1 [ô]=2
If CSuaVariavelAqui = True Then .NodeChecked(.GetKeyNode(lKey)) = True
lKey = lKey + 1
Call .AddNode(hBook, , lKey, [Ô]Permitir salvar alterações[Ô], 2, 2)
Onde = Onde + 1 [ô]=3
If SuaVariavelAqui = True Then .NodeChecked(.GetKeyNode(lKey)) = True
lKey = lKey + 1
Call .AddNode(hBook, , lKey, [Ô]Permitir deletar registros[Ô], 3, 3)
Onde = Onde + 1 [ô]=4
If SuaVariavelAqui = True Then .NodeChecked(.GetKeyNode(lKey)) = True
.EnsureVisible .SelectedNode
.SetRedrawMode True
.SingleExpand = True
.SelectedNode = .NodeRoot
.Expand .GetKeyNode(1), False
.Expand .GetKeyNode(AbrirUsuario), True
End With
End Sub

Para Carregar as keys

Private Function GravaDadosTree() As String
Dim s As String
Dim ss, ss2 As String
Dim SFix As String * 10
[ô]Agenda
s = IIf(AlphaTreeView.NodeChecked(AlphaTreeView.GetKeyNode(AbrirAgenda)), 1, 0)
ss = s [ô]1
s = IIf(AlphaTreeView.NodeChecked(AlphaTreeView.GetKeyNode(AbrirAgenda + 1)), 1, 0)
ss = ss & s [ô]2
s = IIf(AlphaTreeView.NodeChecked(AlphaTreeView.GetKeyNode(AbrirAgenda + 2)), 1, 0)
ss = ss & s [ô]3
s = IIf(AlphaTreeView.NodeChecked(AlphaTreeView.GetKeyNode(AbrirAgenda + 3)), 1, 0)
ss = ss & s [ô]4
SFix = ss & String(10, [Ô]0[Ô])
ss2 = ss2 & SFix
GravaDadosTree = ss2
End Function

Gravando no banco de dados
RectUsuario.Fields([Ô]USU_ACESSO[Ô]).value = GravaDadosTree
RectUsuario.Update [ô]atualiza o registro
Veja resultado
NILSONTRES 06/05/2014 12:20:23
#437899
Não gosto desse controle, manutenção muito complicada.
ROMERO.KCOAL 06/05/2014 12:33:09
#437901
O Treeview do próprio vb sim é complicado.. ele não da recursos como GetKeyNode ou AddIcon alem de outras inúmeras propriedades

Este controle que estou usando é controle próprio e pode ser modificado ao meu gosto, logico que consegui o fonte por ai na net... .
Faça seu login para responder