DATAGRID AGREGAR COLUMNAS CALCULADAS

13/04/2006 - 23:36 por Jose Luis Bellón | Informe spam
Hola

Como se puede agregar una columna calculada al datagrid por ej. una columna
Importe = Cantidad * precio

Gracias.

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
17/04/2006 - 18:08 | Informe spam
Hola José Luis

Creo que en este caso, la cuestión no atañe tanto al datagrid como a su
fuente de datos; intentaré explicarme:

Puedes resolver esta cuestión si obtienes el dataset que has asignado al
datagrid, y en la tabla que necesites, añades una nueva columna en tiempo de
ejecución. Te adjunto a continuación un bloque de código con un ejemplo para
que lo pruebes:

'///////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

Private oConnection As SqlConnection
Private oDataAdapter As SqlDataAdapter
Private oDataSet As DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
' carga inicial del dataset y datagrid
oConnection = New
SqlConnection("Server=localhost;Database=Northwind;uid=sa;pwd=")
oDataAdapter = New SqlDataAdapter("SELECT OrderID,CustomerID,Freight
FROM Orders", oConnection)
oDataSet = New DataSet

oConnection.Open()
oDataAdapter.Fill(oDataSet, "Orders")
oConnection.Close()

Me.DataGrid1.SetDataBinding(oDataSet, "Orders")
End Sub

Private Sub btnColumnaCalculada_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnColumnaCalculada.Click
' al pulsar un botón, recuperamos del dataset asignado al datagrid
' un objeto dataview al que le añadimos una columna calculada,
' finalmente añadimos el dataview al datagrid
Me.DataGrid1.DataSource = Nothing

Dim colNueva As DataColumn = New DataColumn("ValorDoble")
colNueva.Expression = "Freight * 2"

Dim dvVistaDatos As DataView = oDataSet.Tables("Orders").DefaultView
dvVistaDatos.Table.Columns.Add(colNueva)

Me.DataGrid1.DataSource = dvVistaDatos
End Sub
End Class
'///////////////////////////////////

Al pulsar el botón del formulario, observa que vaciamos de contenido el
datagrid, y lo volvemos a llenar, pero esta vez con un dataview que contiene
la columna calculada.

Espero que te sea de utilidad.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jose Luis Bellón" wrote:

Hola

Como se puede agregar una columna calculada al datagrid por ej. una columna
Importe = Cantidad * precio

Gracias.


Respuesta Responder a este mensaje
#2 Jose Luis Bellón
19/04/2006 - 03:47 | Informe spam
Luis Miguel
Muchas gracias por tu atención!!!!

Jose Luis Bellón
Ing. Sistemas


"Luis Miguel Blanco" wrote:

Hola José Luis

Creo que en este caso, la cuestión no atañe tanto al datagrid como a su
fuente de datos; intentaré explicarme:

Puedes resolver esta cuestión si obtienes el dataset que has asignado al
datagrid, y en la tabla que necesites, añades una nueva columna en tiempo de
ejecución. Te adjunto a continuación un bloque de código con un ejemplo para
que lo pruebes:

'///////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

Private oConnection As SqlConnection
Private oDataAdapter As SqlDataAdapter
Private oDataSet As DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
' carga inicial del dataset y datagrid
oConnection = New
SqlConnection("Server=localhost;Database=Northwind;uid=sa;pwd=")
oDataAdapter = New SqlDataAdapter("SELECT OrderID,CustomerID,Freight
FROM Orders", oConnection)
oDataSet = New DataSet

oConnection.Open()
oDataAdapter.Fill(oDataSet, "Orders")
oConnection.Close()

Me.DataGrid1.SetDataBinding(oDataSet, "Orders")
End Sub

Private Sub btnColumnaCalculada_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnColumnaCalculada.Click
' al pulsar un botón, recuperamos del dataset asignado al datagrid
' un objeto dataview al que le añadimos una columna calculada,
' finalmente añadimos el dataview al datagrid
Me.DataGrid1.DataSource = Nothing

Dim colNueva As DataColumn = New DataColumn("ValorDoble")
colNueva.Expression = "Freight * 2"

Dim dvVistaDatos As DataView = oDataSet.Tables("Orders").DefaultView
dvVistaDatos.Table.Columns.Add(colNueva)

Me.DataGrid1.DataSource = dvVistaDatos
End Sub
End Class
'///////////////////////////////////

Al pulsar el botón del formulario, observa que vaciamos de contenido el
datagrid, y lo volvemos a llenar, pero esta vez con un dataview que contiene
la columna calculada.

Espero que te sea de utilidad.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jose Luis Bellón" wrote:

> Hola
>
> Como se puede agregar una columna calculada al datagrid por ej. una columna
> Importe = Cantidad * precio
>
> Gracias.
>
>
Respuesta Responder a este mensaje
#3 Luis Miguel Blanco
19/04/2006 - 07:36 | Informe spam
Hola José Luis

No hay de qué, me alegro de que te sirviera.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jose Luis Bellón" wrote:

Luis Miguel
Muchas gracias por tu atención!!!!

Jose Luis Bellón
Ing. Sistemas


"Luis Miguel Blanco" wrote:

> Hola José Luis
>
> Creo que en este caso, la cuestión no atañe tanto al datagrid como a su
> fuente de datos; intentaré explicarme:
>
> Puedes resolver esta cuestión si obtienes el dataset que has asignado al
> datagrid, y en la tabla que necesites, añades una nueva columna en tiempo de
> ejecución. Te adjunto a continuación un bloque de código con un ejemplo para
> que lo pruebes:
>
> '///////////////////////////////////
> Imports System.Data.SqlClient
>
> Public Class Form1
> Inherits System.Windows.Forms.Form
>
> Private oConnection As SqlConnection
> Private oDataAdapter As SqlDataAdapter
> Private oDataSet As DataSet
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> ' carga inicial del dataset y datagrid
> oConnection = New
> SqlConnection("Server=localhost;Database=Northwind;uid=sa;pwd=")
> oDataAdapter = New SqlDataAdapter("SELECT OrderID,CustomerID,Freight
> FROM Orders", oConnection)
> oDataSet = New DataSet
>
> oConnection.Open()
> oDataAdapter.Fill(oDataSet, "Orders")
> oConnection.Close()
>
> Me.DataGrid1.SetDataBinding(oDataSet, "Orders")
> End Sub
>
> Private Sub btnColumnaCalculada_Click(ByVal sender As System.Object,
> ByVal e As System.EventArgs) Handles btnColumnaCalculada.Click
> ' al pulsar un botón, recuperamos del dataset asignado al datagrid
> ' un objeto dataview al que le añadimos una columna calculada,
> ' finalmente añadimos el dataview al datagrid
> Me.DataGrid1.DataSource = Nothing
>
> Dim colNueva As DataColumn = New DataColumn("ValorDoble")
> colNueva.Expression = "Freight * 2"
>
> Dim dvVistaDatos As DataView = oDataSet.Tables("Orders").DefaultView
> dvVistaDatos.Table.Columns.Add(colNueva)
>
> Me.DataGrid1.DataSource = dvVistaDatos
> End Sub
> End Class
> '///////////////////////////////////
>
> Al pulsar el botón del formulario, observa que vaciamos de contenido el
> datagrid, y lo volvemos a llenar, pero esta vez con un dataview que contiene
> la columna calculada.
>
> Espero que te sea de utilidad.
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
>
>
> "Jose Luis Bellón" wrote:
>
> > Hola
> >
> > Como se puede agregar una columna calculada al datagrid por ej. una columna
> > Importe = Cantidad * precio
> >
> > Gracias.
> >
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida