Visual Basic.NET - 3 datagridview enlazados

 
Vista:
sin imagen de perfil

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder