Como utilizar la propiedad Expression en un DataTable

Cuando vamos a cargarle datos a un DataGrid o almacenar estos datos en otro DataTable para hacer algún tipo de proceso, generalmente creamos una estructura DataTable, para reflejar esos datos en pantalla con el tipo de dato que nosotros le indiquemos. Para estos casos es que podríamos utilizar Expression y definirle una columna que automáticamente tome el valor de algun cálculo en específico, y en realidad puede aceptar cualquier tipo de fórmula que nos retorne un valor válido.

Descargar solución DataTable_Expression

Para el ejemplo que vamos a mostrar en esta ocación vamos a crear un DataTable con 3 columnas que son cargadas ya sea desde el sistema o manualmente desde el DataGrid, también podría cargarse desde alguna consulta a alguna base de datos.

Aparte de estas 3 columnas que mencionamos arriba vamos a definirle dos más, una de tipo Boolean y otra de tipo String y que en sus expresiones dependiendo del valor de la 3 columna del DataTable muestren True / False o Positivo / Negativo respectivamente.

Algo muy importante a destacar es que estas dos columnas de valores por expresión no se pueden modificar manualmente, ya que estan definidas automáticamente ReadOnly y solo se modifican por la expresión que le indiquemos.

Como creamos la estructura del DataTable

Como vemos ahí, le estamos creando todas las columnas al DataTable, pero también podríamos solo agregarle las dos columnas de expresiones en el caso de que ya tengamos un DataTable cargado con los datos.

Las dos columnas especiales que estamos trabajando como vemos en el procedimiento CreateDataTableuna es de tipo Boolean nombrada “EsPositivo” donde la expresión que utilizamos es IIF pero bien podrías utilizar un If normal o algúna otra formula de cálculo, entonces “IIF((Valor >= 0),True,False)” nos va a retormar True cuando el valor de la columna “Valor” es 0 o mayor a 0 y False cuando es menor a 0. En la siguiente columna “Tipo” va a escribir Positivo o Negativo dependiendo del valor de la columna “Valor“.

Por lo tanto en el procedimiento indicado arriba, las dos columnas que mencionamos “EsPositivo” y “Tipo” deberían de quedar así con sus respectivas expresiones:

Para este ejemplo vamos a ver los datos de esta forma:

Como vemos las columnas “EsPositivo” y “Tipo” tomaron correctamente los valores que nosotros le difinimos.

Ahora que pasa con los datos que modifiquemos de los actuales o si le agregamos nuevas filas, pues en estos casos los valores de estas columnas se cambian automáticamente conforme al valor de la columna “Valor”.

Por ejemplo aquí le modificamos el valor al segundo registro para demostrar que estas columnas se cambian automáticamente.

Y aquí le agregamos dos nuevas filas para probar si los valores de cálculo salían bien en filas nuevas

Recordemos que estas dos columnas de valores por Expresión no se pueden modificar manualmente, estan en un valor definido de ReadOnly.

Descargar solución DataTable_Expression

6 comments

  1. Anónimo - September 21, 2006 3:30 pm

    Muy bueno me ayudo muxisimo

    Reply
  2. Anónimo - November 8, 2007 3:12 pm

    muy util, gracias

    Reply
  3. Anónimo - January 18, 2008 2:11 pm

    Buenisimo el ejemplo para hacer entender….

    Reply
  4. Anónimo - August 28, 2008 5:24 am

    Sin tener que usar la fórmula dentro de el datacolumn…¿se podría modificar un dato de determinada celda?

    Reply
  5. Anónimo - August 28, 2008 5:25 am

    Soy la que escribió lo de modificar la columna, ya me contesté :) Muchas gracias, buen ejemplo :)

    Reply
  6. Pingback: Método Compute característica del DataTable - dotnetcr.com

Have your say