
3 datagridview enlazados
Publicado por MANUEL (1 intervención) el 21/02/2023 19:02:25
Hola,
Estoy intentando montar 3 datagridview enlazados, es decir, datagridview maestro-detalle y que el detalle sea a la vez maestro de otro detalle
Para esto lo estoy intentando realizar a traves de Bindingsource.
El codigo que estoy utilizando es el siguiente:
Dim ds As New DataSet
'Creo los binding que relacionen a los grid
Dim fabricanteBinding As New BindingSource
Dim familiaBinding As New BindingSource
Dim componenteBinding As New BindingSource
Dim tfamilia As New DataTable
Dim tfabricante As New DataTable
Dim tcomponente As New DataTable
Dim NegFabricante As New Negocio.NNameCreatorFabricante
Dim NegFamilia As New Negocio.NRelFabricanteFamilia
Dim NegComponente As New Negocio.NRelFamiliaComponente
'Relleno los datatables
tfabricante = NegFabricante.Listar()
tfamilia = NegFamilia.Listar()
tcomponente = NegComponente.Listar
ds.Tables.Add(tfabricante)
ds.Tables(0).TableName = "tFabricante"
ds.Tables.Add(tfamilia)
ds.Tables(1).TableName = "tFamilia"
ds.Tables.Add(tcomponente)
ds.Tables(2).TableName = "tComponente"
'Creo la relacion entre las dos tablas
Dim columnaFabricante As DataColumn = ds.Tables.Item("tFabricante").Columns.Item("ID")
Dim columnaFamilia As DataColumn = ds.Tables.Item("tFamilia").Columns.Item("IDFab")
Dim columnaComponente As DataColumn = ds.Tables.Item("tComponente").Columns.Item("IDFam")
Dim relation As DataRelation
Dim relation2 As DataRelation
relation = New DataRelation("relacion", columnaFabricante, columnaFamilia, False)
relation2 = New DataRelation("relacion2", columnaFamilia, columnaComponente, False)
'Asigno la relacion al dataset
ds.Relations.Add(relation)
ds.Relations.Add(relation2)
'Relaciono el Binding Maestro al dataset
fabricanteBinding.DataSource = ds
fabricanteBinding.DataMember = "tFabricante"
'Asigno el binding del maestro al detalle e identifico la relacion
familiaBinding.DataSource = fabricanteBinding
familiaBinding.DataMember = "relacion"
componenteBinding.DataSource = familiaBinding
componenteBinding.DataMember = "relacion2"
'Asigno los grid a los binding
DgvFabricante5.DataSource = fabricanteBinding
DgvFamilia5.DataSource = familiaBinding
DgvComponente5.DataSource = componenteBinding
Con este codigo no llego a enlazar los tres datagridview.
Me podeis ayudar.
Gracias
Estoy intentando montar 3 datagridview enlazados, es decir, datagridview maestro-detalle y que el detalle sea a la vez maestro de otro detalle
Para esto lo estoy intentando realizar a traves de Bindingsource.
El codigo que estoy utilizando es el siguiente:
Dim ds As New DataSet
'Creo los binding que relacionen a los grid
Dim fabricanteBinding As New BindingSource
Dim familiaBinding As New BindingSource
Dim componenteBinding As New BindingSource
Dim tfamilia As New DataTable
Dim tfabricante As New DataTable
Dim tcomponente As New DataTable
Dim NegFabricante As New Negocio.NNameCreatorFabricante
Dim NegFamilia As New Negocio.NRelFabricanteFamilia
Dim NegComponente As New Negocio.NRelFamiliaComponente
'Relleno los datatables
tfabricante = NegFabricante.Listar()
tfamilia = NegFamilia.Listar()
tcomponente = NegComponente.Listar
ds.Tables.Add(tfabricante)
ds.Tables(0).TableName = "tFabricante"
ds.Tables.Add(tfamilia)
ds.Tables(1).TableName = "tFamilia"
ds.Tables.Add(tcomponente)
ds.Tables(2).TableName = "tComponente"
'Creo la relacion entre las dos tablas
Dim columnaFabricante As DataColumn = ds.Tables.Item("tFabricante").Columns.Item("ID")
Dim columnaFamilia As DataColumn = ds.Tables.Item("tFamilia").Columns.Item("IDFab")
Dim columnaComponente As DataColumn = ds.Tables.Item("tComponente").Columns.Item("IDFam")
Dim relation As DataRelation
Dim relation2 As DataRelation
relation = New DataRelation("relacion", columnaFabricante, columnaFamilia, False)
relation2 = New DataRelation("relacion2", columnaFamilia, columnaComponente, False)
'Asigno la relacion al dataset
ds.Relations.Add(relation)
ds.Relations.Add(relation2)
'Relaciono el Binding Maestro al dataset
fabricanteBinding.DataSource = ds
fabricanteBinding.DataMember = "tFabricante"
'Asigno el binding del maestro al detalle e identifico la relacion
familiaBinding.DataSource = fabricanteBinding
familiaBinding.DataMember = "relacion"
componenteBinding.DataSource = familiaBinding
componenteBinding.DataMember = "relacion2"
'Asigno los grid a los binding
DgvFabricante5.DataSource = fabricanteBinding
DgvFamilia5.DataSource = familiaBinding
DgvComponente5.DataSource = componenteBinding
Con este codigo no llego a enlazar los tres datagridview.
Me podeis ayudar.
Gracias
Valora esta pregunta


0