jump to navigation

Tablas Cruzadas con DataWindow .Net Abril 10, 2008

Posted by elmercarias in .Net, DataWindow, PowerBuilder.
Tags: , ,
trackback

Continuando con el control DataWindow de Sybase para .Net

Les mostraré como hacer una Consulta con Tablas Cruzadas que muestre los Envíos de Productos por Pais y Año, utilizando
las estructuras de Datos de la base de datos NorthWind
- Orders
- Orders Details
- Products

Campos a utilizar en la consulta
[Orders].ShippedDate : de aqui sacaremos el año de envío
[Orders Details].Quantity : Cantidad de Produto Enviado
[Orders Details].UnitPrice : Precio Unitario del Producto Enviado
[Products].ProductName : Nombre del Producto Enviado

El primer paso será despues de tener creado un Espacio de Trabajo, crear un nuevo DataWindow y elegimos que sea tipo CrossTab.

 Creando Nuevo DataWindow Crosstab

Despues elegiremos el origen de Datos del CrossTab, para el caso elegimos SQL Select, que es la forma mas fácil de crear los querys.

Eleccion de Origen de Datos para Crosstab

En el siguiente paso elegimos las tablas que utilizaremos en el Query, esto de forma similar al QueryBuilder de .Net, pero ami manera de ver mas fácil de usar, para el caso del ejemplo, elegimos las tres tablas que utilizaremos

Seleccion de Tablas para Query

Posteriormente elegimos el campo ProductName de la Tabla Products y ShipCountry de la Tabla Orders, en la parte inferior elegimos la viñeta Compute, para crear un par de campos calculados, como lo son Ventas([Orders Details].Quantity * [Orders Details].UnitPrice) y Año(year([Orders].ShippedDate)).

Seleccion de Campos y Campos calculados para DataWindow Crosstab

Posteriormente elegimos el Tab Where para Filtrar nuestro Set de Datos, y lo realizamos para que excluya las Ordenes que tienen NULL en [Orders].ShippedDate.

Agregar Where a DataWindow tipo Crosstab

En el siguiente paso y que lo haremos porque la versión actual el Bug de que no agrega los Corchetes a tablas que tienen espacios en Blanco en su nombre, como el caso de la tabla [Order Details]. Para eso elegimos en el Menu Design\Convert to Sintax

Conversión a Sintaxis en la Creación de un Query en un DataWindow

En el siguiente paso debemos agregarle los corchetes( [ ] ) a la tabla [Order Details] para que funcione correctamente.

Query para un DataWindow Crosstab

Posteriormente debemos de hacer el paso mas importante que es la elección de los campos que utilizaremos como columnas, filas y cuales totalizaremos, para el caso elegiremos la columna Año en Columns, ShipCountry y ProductName en Rows y por ultimo arrastramos(hacemos Drag&Drop) de ventas hacia Values.

Elección de Columnas, Filas y Valores para DataWindow Crosstab

Al final podremos ver el resultado que devolverá esta Consulta, donde podremos cambiar el Formato para mejorar la salida de nuestra Consulta(recuerda que este DataWindow lo podrías utilizar desde una Aplicación Windows o Web desde .Net). A continuación mostramos el ejemplo.

Diseño de DataWindow Crosstab

Con esto finalizamos la creación del objeto DataWindow, lo unico que restaría es hacer referencia a el desde .Net , lo cual cubriremos en otro posteo.

Atte. Elmer Carías

“El fracaso tiene mil excusas, el éxito no requiere explicación”

Comentarios»

1. Saul - Noviembre 12, 2008

Esta bien el ejemplo, pero yo quiero leer, los nombres de la columnas del datawindow crossteb, q funcion utilizo.

2. oscar - Mayo 16, 2009

esta muy bien todo es lo mismo q se hace en power builder la verda quiero probarlo en visual studio 2005 averr como se muestra y dime si el codigo q ulizo en power builder es el mismo me refiero si utiliza el settrasnobject o retrieve y donde podere descargar un version de prueba y como agregarlo al visual studio

elmercarias - Mayo 18, 2009

Se utiliza igual que en PowerBuilder, existe el objeto transaccion y los metodos son los mismos solo que con los parametros cambian a los tipos de dato de .Net