viernes, junio 10, 2005

Filtrar la data a través de Scripts

Si lo que se tiene es un objto de tipo reporte el filtro se realiza de la siguiente manera:

' se realiza el filtro
dim dimension
dimension = reporte.DimensionLine.Item("Fecha")
dimension.Change("2004")
dimension.Change("Junio")
dimension.Change("24/10/2005")

'Luego se procede con la carga de datos
...
For i As Integer = 0 To iFilas
For j As Integer = 0 To iColumnas
Me.aDatos(i, j) = _
reporte.CellValue(reporte.rows.item(iPosFila + i), _
reporte.columns.item(iPosColum + j))
Next
Next
...
'
dimension.ChangeToTop()
...
'
En el ejemplo se tiene que crear el objeto de tipo reporte luego de ello se realiza el filtro antes de obtener los datos del reporte y luego finalmente obtener devolver a la dimensión a su primer nivel.

jueves, junio 09, 2005

Uso de cubos a través de scripts

La herramienta de Cognos tiene una herramienta llamada CognosScript Editor que, básicamente, te permite escribir código en Visual Basic Script para hacer uso de los cubos que se leen con la herramienta Cognos PowerPlay.

Lo primero que hay que hacer es crear un objeto que sea del tipo de un reporte, en este caso del tipo "CognosPowerPlay.Report". Luego una vez creado este objeto existen métodos y funciones con los cuales puedes realizar búsquedas, filtros, drill-down, drill-up, etc.

Ejemplo

Dim obj
Set obj = CreateObject("CognosPowerPlay.Report")
obj.Open("D:\Proyectos\PruebasScripts\Reportes\prueba1.ppr")
'MsgBox("realizado con éxito")

Dim dimension
Set dimension = obj.DimensionLine.Item("DProductos")
dimension.change("Enlatados")

obj.DimensionLine.Item("DTiempo").change("2005")

MsgBox("Valor: " & obj.cellvalue(obj.rows.item(3), obj.columns.item(1)))

obj.close()

En este ejemplo el resultado es mostrar un valor (del reporte) que es la intersección de la tercera fila y primera columna, además el valor ah sido filtrado por dos dimensiones. La primera forma crea un objeto llamado dimensión al cual lo cambia por la categoría de "Enlatados". La segunda forma lo hace directo del objeto reporte y cambia la dimensión de tiempo (DTiempo) a la categoría 2005.
El reporte puede tener la estructura de mostrar los datos por otras la dimensión sector (DUbigeo) como columnas y Clientes (DClientes) como filas y una medida (measure) de Ventas en dólares, entonces el valor arrojado será las ventas realizadas al cliente de la fila 3 para el sector de la columna 1, pero filtrado por por productos enlatados y realizadas en el año 2005.