SALVAR INFORMA?ÕES DE U, TREEVIEW EM UM DB
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
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
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?
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?
Bom dia,
A criação da tabela eu intendi, mais como ligar a TreeView ao banco de dados?
Abraço
Rogério Couto
A criação da tabela eu intendi, mais como ligar a TreeView ao banco de dados?
Abraço
Rogério Couto
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.
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
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
Não gosto desse controle, manutenção muito complicada.
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... .
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