Datagrid y columnas de dos tablas relacionadas

13/11/2004 - 18:21 por Jose Carlos | Informe spam
Hola tengo un datagrid que está vinculado con un dataview y mi problema es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
He definido dos DataGridTableStyles con sus correspondientes MappingName y
he añadido las DataGridTextBoxColumn y el problema es que no me muestra mas
que las columnas de la tabla que depende del dataview pero no me muestra la
columna que depende de la tabla relacionada.
El dataview dwDetalles es de la tabla DetallesPruebas.

¿Es imposible lo que quiero hacer o lo estoy haciendo mal?

Me.dGDetPruebas.DataSource = dwDetalles'(el dataview)

Me.DataGridTableStyle2.MappingName = Me.m_DetallesPruebas.Tabla.TableName
Me.DataGridTableStyle1.MappingName = Me.m_pruebas.Tabla.TableName

Dim DataGridTextBoxColumn1 As New DataGridTextBoxColumn
DataGridTextBoxColumn1.Format = ""
DataGridTextBoxColumn1.FormatInfo = Nothing
DataGridTextBoxColumn1.HeaderText = "Detalle"
DataGridTextBoxColumn1.MappingName = "IdDetalle"
DataGridTextBoxColumn1.Width = 70

Dim DataGridTextBoxColumn2 As New DataGridTextBoxColumn
DataGridTextBoxColumn2.Format = ""
DataGridTextBoxColumn2.FormatInfo = Nothing
DataGridTextBoxColumn2.HeaderText = "Fecha Resultado"
DataGridTextBoxColumn2.MappingName = "FechaResultado"
DataGridTextBoxColumn2.NullText = ""
DataGridTextBoxColumn2.Width = 80

Dim DataGridTextBoxColumn3 As New DataGridTextBoxColumn
DataGridTextBoxColumn3.Format = ""
DataGridTextBoxColumn3.FormatInfo = Nothing
DataGridTextBoxColumn3.HeaderText = "Resultado"
DataGridTextBoxColumn3.MappingName = "Resultado"
DataGridTextBoxColumn3.NullText = ""
DataGridTextBoxColumn3.Width = 80

Dim DataGridTextBoxColumn4 As New DataGridTextBoxColumn
DataGridTextBoxColumn4.Format = ""
DataGridTextBoxColumn4.FormatInfo = Nothing
DataGridTextBoxColumn4.HeaderText = "Prueba"
DataGridTextBoxColumn4.MappingName = "Prueba"
DataGridTextBoxColumn4.NullText = ""
DataGridTextBoxColumn4.Width = 80

Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn1)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn2)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn3)
Me.DataGridTableStyle1.GridColumnStyles.Add(DataGridTextBoxColumn4)


Muchas gracias a todos

Preguntas similare

Leer las respuestas

#1 user.mx
14/11/2004 - 06:12 | Informe spam
Hola José Carlos, el DataGridStyles se utilizar solo para aplicar formato al dataGrid pero no asi para relacionar 2 tablas, para este fin, necesitaras el dataRelation

Aqui te dejo este link que es una introducción al objeto DataRelation, con ejemplo:
http://msdn.microsoft.com/library/s...ations.asp



Saludos,

Alejandro Maldonado



"Jose Carlos" escribió en el mensaje news:
Hola tengo un datagrid que está vinculado con un dataview y mi problema es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
Respuesta Responder a este mensaje
#2 Christancho.NET
14/11/2004 - 06:13 | Informe spam
mmm... corríjeme si me equivoco tienes a primera instancia un dataset con
dos tablas (master-detail), a partir de una tabla construyes un dataview el
cual esta relacionado con un data grid?
Si es así tienes que definir un DATARELATION entre las tablas de tu dataset.
Un datarelation es una relacion entre tablas de un dataset, si bien no me
acuerdo, tienes que definirlo mas o menos asi:
Dim myRelation As New DataRelation("Data Relation 1", table1.column1,
table2.column2)
myDataSet.Relations.Add(myRelation)

Espero que esto te ayude, mas mas info busca en el MSDN por DATARELATION.

Christian Mendieta

"Jose Carlos" wrote in message
news:
Hola tengo un datagrid que está vinculado con un dataview y mi problema es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
He definido dos DataGridTableStyles con sus correspondientes MappingName y
he añadido las DataGridTextBoxColumn y el problema es que no me muestra
mas
que las columnas de la tabla que depende del dataview pero no me muestra
la
columna que depende de la tabla relacionada.
El dataview dwDetalles es de la tabla DetallesPruebas.

¿Es imposible lo que quiero hacer o lo estoy haciendo mal?

Me.dGDetPruebas.DataSource = dwDetalles'(el dataview)

Me.DataGridTableStyle2.MappingName = Me.m_DetallesPruebas.Tabla.TableName
Me.DataGridTableStyle1.MappingName = Me.m_pruebas.Tabla.TableName

Dim DataGridTextBoxColumn1 As New DataGridTextBoxColumn
DataGridTextBoxColumn1.Format = ""
DataGridTextBoxColumn1.FormatInfo = Nothing
DataGridTextBoxColumn1.HeaderText = "Detalle"
DataGridTextBoxColumn1.MappingName = "IdDetalle"
DataGridTextBoxColumn1.Width = 70

Dim DataGridTextBoxColumn2 As New DataGridTextBoxColumn
DataGridTextBoxColumn2.Format = ""
DataGridTextBoxColumn2.FormatInfo = Nothing
DataGridTextBoxColumn2.HeaderText = "Fecha Resultado"
DataGridTextBoxColumn2.MappingName = "FechaResultado"
DataGridTextBoxColumn2.NullText = ""
DataGridTextBoxColumn2.Width = 80

Dim DataGridTextBoxColumn3 As New DataGridTextBoxColumn
DataGridTextBoxColumn3.Format = ""
DataGridTextBoxColumn3.FormatInfo = Nothing
DataGridTextBoxColumn3.HeaderText = "Resultado"
DataGridTextBoxColumn3.MappingName = "Resultado"
DataGridTextBoxColumn3.NullText = ""
DataGridTextBoxColumn3.Width = 80

Dim DataGridTextBoxColumn4 As New DataGridTextBoxColumn
DataGridTextBoxColumn4.Format = ""
DataGridTextBoxColumn4.FormatInfo = Nothing
DataGridTextBoxColumn4.HeaderText = "Prueba"
DataGridTextBoxColumn4.MappingName = "Prueba"
DataGridTextBoxColumn4.NullText = ""
DataGridTextBoxColumn4.Width = 80

Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn1)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn2)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn3)
Me.DataGridTableStyle1.GridColumnStyles.Add(DataGridTextBoxColumn4)


Muchas gracias a todos


Respuesta Responder a este mensaje
#3 Jose Carlos
14/11/2004 - 10:43 | Informe spam
La datarelation ya está hecha previamente y sólo quiero que el datagrid
muestre en vez del Id que tiene una de las tablas(tabla hija), el texto que
tiene la otra tabla(padre) relacionada.

Dim col1 As DataColumn = Me.m_pruebas.Tabla.Columns("IdPrueba")
Dim col2 As DataColumn = Me.m_DetallesPruebas.Tabla.Columns("Prueba")
Me.m_pruebas.Datase.Relations.Add("RelationPruebas", col1, col2)


No estoy seguro de estar explicandolo bien. Pongo un ejemplo:
Yo tengo una tabla de Pedidos y en cada registro de la tabla de pedidos
tengo el IdProducto y en otra tabla padre llamada Productos tengo el nombre
de dicho producto. Quiero que en el datagrid donde pongo los pedidos no me
muestre el IdProducto, pues eso le dice muy poco al usuario, sino que me
ponga el nombre del producto.
Para ello creo la relacion entre las tablas, vinculo al datagrid a la tabla
Productos y creo dos DataGridTableStyles, el uno con MappingName vinculado a
una tabla y el otro MappingName a la otra tabla vinculada y luego defino las
columnas que me interesan de cada tabla en el DataGridTableStyles que le
corresponde.

"Jose Carlos" escribió en el mensaje
news:
Hola tengo un datagrid que está vinculado con un dataview y mi problema es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
He definido dos DataGridTableStyles con sus correspondientes MappingName y
he añadido las DataGridTextBoxColumn y el problema es que no me muestra
mas
que las columnas de la tabla que depende del dataview pero no me muestra
la
columna que depende de la tabla relacionada.
El dataview dwDetalles es de la tabla DetallesPruebas.

¿Es imposible lo que quiero hacer o lo estoy haciendo mal?

Me.dGDetPruebas.DataSource = dwDetalles'(el dataview)

Me.DataGridTableStyle2.MappingName = Me.m_DetallesPruebas.Tabla.TableName
Me.DataGridTableStyle1.MappingName = Me.m_pruebas.Tabla.TableName

Dim DataGridTextBoxColumn1 As New DataGridTextBoxColumn
DataGridTextBoxColumn1.Format = ""
DataGridTextBoxColumn1.FormatInfo = Nothing
DataGridTextBoxColumn1.HeaderText = "Detalle"
DataGridTextBoxColumn1.MappingName = "IdDetalle"
DataGridTextBoxColumn1.Width = 70

Dim DataGridTextBoxColumn2 As New DataGridTextBoxColumn
DataGridTextBoxColumn2.Format = ""
DataGridTextBoxColumn2.FormatInfo = Nothing
DataGridTextBoxColumn2.HeaderText = "Fecha Resultado"
DataGridTextBoxColumn2.MappingName = "FechaResultado"
DataGridTextBoxColumn2.NullText = ""
DataGridTextBoxColumn2.Width = 80

Dim DataGridTextBoxColumn3 As New DataGridTextBoxColumn
DataGridTextBoxColumn3.Format = ""
DataGridTextBoxColumn3.FormatInfo = Nothing
DataGridTextBoxColumn3.HeaderText = "Resultado"
DataGridTextBoxColumn3.MappingName = "Resultado"
DataGridTextBoxColumn3.NullText = ""
DataGridTextBoxColumn3.Width = 80

Dim DataGridTextBoxColumn4 As New DataGridTextBoxColumn
DataGridTextBoxColumn4.Format = ""
DataGridTextBoxColumn4.FormatInfo = Nothing
DataGridTextBoxColumn4.HeaderText = "Prueba"
DataGridTextBoxColumn4.MappingName = "Prueba"
DataGridTextBoxColumn4.NullText = ""
DataGridTextBoxColumn4.Width = 80

Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn1)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn2)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn3)
Me.DataGridTableStyle1.GridColumnStyles.Add(DataGridTextBoxColumn4)


Muchas gracias a todos


Respuesta Responder a este mensaje
#4 Jose Carlos
14/11/2004 - 10:50 | Informe spam
Pero no me muestra el datagrid la columna que depende de la tabla padre.

¿No se puede hacer lo que quiero o bien estoy haciendo algo mal?
Muchas gracias

"Jose Carlos" escribió en el mensaje
news:%
La datarelation ya está hecha previamente y sólo quiero que el datagrid
muestre en vez del Id que tiene una de las tablas(tabla hija), el texto
que tiene la otra tabla(padre) relacionada.

Dim col1 As DataColumn = Me.m_pruebas.Tabla.Columns("IdPrueba")
Dim col2 As DataColumn = Me.m_DetallesPruebas.Tabla.Columns("Prueba")
Me.m_pruebas.Datase.Relations.Add("RelationPruebas", col1, col2)


No estoy seguro de estar explicandolo bien. Pongo un ejemplo:
Yo tengo una tabla de Pedidos y en cada registro de la tabla de pedidos
tengo el IdProducto y en otra tabla padre llamada Productos tengo el
nombre de dicho producto. Quiero que en el datagrid donde pongo los
pedidos no me muestre el IdProducto, pues eso le dice muy poco al usuario,
sino que me ponga el nombre del producto.
Para ello creo la relacion entre las tablas, vinculo al datagrid a la
tabla Productos y creo dos DataGridTableStyles, el uno con MappingName
vinculado a una tabla y el otro MappingName a la otra tabla vinculada y
luego defino las columnas que me interesan de cada tabla en el
DataGridTableStyles que le corresponde.

"Jose Carlos" escribió en el mensaje
news:
Hola tengo un datagrid que está vinculado con un dataview y mi problema
es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
He definido dos DataGridTableStyles con sus correspondientes MappingName
y
he añadido las DataGridTextBoxColumn y el problema es que no me muestra
mas
que las columnas de la tabla que depende del dataview pero no me muestra
la
columna que depende de la tabla relacionada.
El dataview dwDetalles es de la tabla DetallesPruebas.

¿Es imposible lo que quiero hacer o lo estoy haciendo mal?

Me.dGDetPruebas.DataSource = dwDetalles'(el dataview)

Me.DataGridTableStyle2.MappingName = Me.m_DetallesPruebas.Tabla.TableName
Me.DataGridTableStyle1.MappingName = Me.m_pruebas.Tabla.TableName

Dim DataGridTextBoxColumn1 As New DataGridTextBoxColumn
DataGridTextBoxColumn1.Format = ""
DataGridTextBoxColumn1.FormatInfo = Nothing
DataGridTextBoxColumn1.HeaderText = "Detalle"
DataGridTextBoxColumn1.MappingName = "IdDetalle"
DataGridTextBoxColumn1.Width = 70

Dim DataGridTextBoxColumn2 As New DataGridTextBoxColumn
DataGridTextBoxColumn2.Format = ""
DataGridTextBoxColumn2.FormatInfo = Nothing
DataGridTextBoxColumn2.HeaderText = "Fecha Resultado"
DataGridTextBoxColumn2.MappingName = "FechaResultado"
DataGridTextBoxColumn2.NullText = ""
DataGridTextBoxColumn2.Width = 80

Dim DataGridTextBoxColumn3 As New DataGridTextBoxColumn
DataGridTextBoxColumn3.Format = ""
DataGridTextBoxColumn3.FormatInfo = Nothing
DataGridTextBoxColumn3.HeaderText = "Resultado"
DataGridTextBoxColumn3.MappingName = "Resultado"
DataGridTextBoxColumn3.NullText = ""
DataGridTextBoxColumn3.Width = 80

Dim DataGridTextBoxColumn4 As New DataGridTextBoxColumn
DataGridTextBoxColumn4.Format = ""
DataGridTextBoxColumn4.FormatInfo = Nothing
DataGridTextBoxColumn4.HeaderText = "Prueba"
DataGridTextBoxColumn4.MappingName = "Prueba"
DataGridTextBoxColumn4.NullText = ""
DataGridTextBoxColumn4.Width = 80

Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn1)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn2)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn3)
Me.DataGridTableStyle1.GridColumnStyles.Add(DataGridTextBoxColumn4)


Muchas gracias a todos






Respuesta Responder a este mensaje
#5 Christancho.NET
15/11/2004 - 04:14 | Informe spam
Interesante, pero considero que es mas fácil hacer una consulta con un INNER
JOIN entre las tablas Pedidos y productos y traer al front end un solo
datatable y hacerle un binding hacia el datagrid.

"Jose Carlos" wrote in message
news:%
La datarelation ya está hecha previamente y sólo quiero que el datagrid
muestre en vez del Id que tiene una de las tablas(tabla hija), el texto
que tiene la otra tabla(padre) relacionada.

Dim col1 As DataColumn = Me.m_pruebas.Tabla.Columns("IdPrueba")
Dim col2 As DataColumn = Me.m_DetallesPruebas.Tabla.Columns("Prueba")
Me.m_pruebas.Datase.Relations.Add("RelationPruebas", col1, col2)


No estoy seguro de estar explicandolo bien. Pongo un ejemplo:
Yo tengo una tabla de Pedidos y en cada registro de la tabla de pedidos
tengo el IdProducto y en otra tabla padre llamada Productos tengo el
nombre de dicho producto. Quiero que en el datagrid donde pongo los
pedidos no me muestre el IdProducto, pues eso le dice muy poco al usuario,
sino que me ponga el nombre del producto.
Para ello creo la relacion entre las tablas, vinculo al datagrid a la
tabla Productos y creo dos DataGridTableStyles, el uno con MappingName
vinculado a una tabla y el otro MappingName a la otra tabla vinculada y
luego defino las columnas que me interesan de cada tabla en el
DataGridTableStyles que le corresponde.

"Jose Carlos" escribió en el mensaje
news:
Hola tengo un datagrid que está vinculado con un dataview y mi problema
es
que una de las columnas del dataview es un numero IdPrueba que esta
relacionado con otra tabla y lo que yo querria es que en dicha columna en
vez del numero Id, me sacara el texto de la columna de la tabla
relacionada(la tabla es Pruebas y la columna de dicha tabla se llama
Prueba).
He definido dos DataGridTableStyles con sus correspondientes MappingName
y
he añadido las DataGridTextBoxColumn y el problema es que no me muestra
mas
que las columnas de la tabla que depende del dataview pero no me muestra
la
columna que depende de la tabla relacionada.
El dataview dwDetalles es de la tabla DetallesPruebas.

¿Es imposible lo que quiero hacer o lo estoy haciendo mal?

Me.dGDetPruebas.DataSource = dwDetalles'(el dataview)

Me.DataGridTableStyle2.MappingName = Me.m_DetallesPruebas.Tabla.TableName
Me.DataGridTableStyle1.MappingName = Me.m_pruebas.Tabla.TableName

Dim DataGridTextBoxColumn1 As New DataGridTextBoxColumn
DataGridTextBoxColumn1.Format = ""
DataGridTextBoxColumn1.FormatInfo = Nothing
DataGridTextBoxColumn1.HeaderText = "Detalle"
DataGridTextBoxColumn1.MappingName = "IdDetalle"
DataGridTextBoxColumn1.Width = 70

Dim DataGridTextBoxColumn2 As New DataGridTextBoxColumn
DataGridTextBoxColumn2.Format = ""
DataGridTextBoxColumn2.FormatInfo = Nothing
DataGridTextBoxColumn2.HeaderText = "Fecha Resultado"
DataGridTextBoxColumn2.MappingName = "FechaResultado"
DataGridTextBoxColumn2.NullText = ""
DataGridTextBoxColumn2.Width = 80

Dim DataGridTextBoxColumn3 As New DataGridTextBoxColumn
DataGridTextBoxColumn3.Format = ""
DataGridTextBoxColumn3.FormatInfo = Nothing
DataGridTextBoxColumn3.HeaderText = "Resultado"
DataGridTextBoxColumn3.MappingName = "Resultado"
DataGridTextBoxColumn3.NullText = ""
DataGridTextBoxColumn3.Width = 80

Dim DataGridTextBoxColumn4 As New DataGridTextBoxColumn
DataGridTextBoxColumn4.Format = ""
DataGridTextBoxColumn4.FormatInfo = Nothing
DataGridTextBoxColumn4.HeaderText = "Prueba"
DataGridTextBoxColumn4.MappingName = "Prueba"
DataGridTextBoxColumn4.NullText = ""
DataGridTextBoxColumn4.Width = 80

Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn1)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn2)
Me.DataGridTableStyle2.GridColumnStyles.Add(DataGridTextBoxColumn3)
Me.DataGridTableStyle1.GridColumnStyles.Add(DataGridTextBoxColumn4)


Muchas gracias a todos






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida