Quisiera saber si alguien sabe generar un tabla dinamica (DATAPILOT) en el archivo ODS utilizando POWERBUILDER
Yo avance hasta crear la tabla con el rango de celdas a utilizar, pero no puedo desde powerbuilder, colocar la orientacion de la informacion; esto es Fila, columna y datos.
Muchas Gracias
Código: Seleccionar todo
st_estado.text = 'Creando Tabla dinamica...'
Oleobject l_objrange_1, l_objrange_2, l_objSheet_2, l_objDataSupplier, l_objData, l_objDataDescript, &
l_objFields, l_objField, l_objTable, l_objProp
// Hojas tabla Dinamica
l_objSheet_2 = l_objSheets.getByIndex(1)
l_objSheet_2.setName("Tabla Dinamica")
// Rango Datos
l_objrange_1 = l_objServiceManager.Bridge_GetStruct('com.sun.star.table.CellRangeAddress')
l_objrange_1.Sheet = 0
l_objrange_1.StartColumn = 0
l_objrange_1.StartRow = 0
l_objrange_1.EndColumn = li_columna - 1
l_objrange_1.EndRow = li_fila - 1
// Rango Tabla Dinamica
l_objrange_2 = l_objServiceManager.Bridge_GetStruct('com.sun.star.table.CellAddress')
l_objrange_2.Sheet = 1
l_objrange_2.Column = 1
l_objrange_2.Row =1
l_objTable = l_objSheet_2.getDataPilotTables()
l_objDataDescript = l_objTable.createDataPilotDescriptor()
l_objDataDescript.SetPropertyValue("IgnoreEmptyRows",1)
l_objDataDescript.SetPropertyValue("ShowFilterButton",1)
l_objDataDescript.SetSourceRange(l_objrange_1)
// Testing
//l_objDataDescript.getDataPilotFields().GetByIndex(0).setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.ROW")
//l_objDataDescript.getDataPilotFields().GetByIndex(1).setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.COLUMN")
//l_objDataDescript.getDataPilotFields().GetByIndex(2).setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.DATA")
//l_objSheet_2.getDataPilotTables().insertNewByName('Tabla Dinamica', l_objrange_2, l_objDataDescript)
// Filas
for ll_item_fil = 1 to ll_items_fil
ls_filas = tab_1.tabpage_din.dw_filas_din.object.columna[ll_item_fil]
l_objFields = l_objDataDescript.getRowFields()
l_objField = l_objFields.GetByName(ls_filas)
l_objField.setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.ROW")
//l_objField.SetPropertyValue("ShowEmpty", 1)
next
// Columnas
for ll_item_col = 1 to ll_items_col
ls_columnas = tab_1.tabpage_din.dw_col_din.object.columna[ll_item_col]
l_objFields = l_objDataDescript.getColumnFields()
l_objField = l_objFields.getByName(ls_columnas)
l_objField.setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.COLUMN")
//l_objField.SetPropertyValue("ShowEmpty", 0)
next
// Datos
for ll_item_dat = 1 to ll_items_dat
ls_datos = tab_1.tabpage_din.dw_dato_din.object.columna[ll_item_dat]
l_objFields = l_objDataDescript.getDataFields()
l_objField = l_objFields.getByName(ls_datos)
l_objField.setPropertyValue("Orientation", "com.sun.star.sheet.DataPilotFieldOrientation.DATA")
l_objField.setPropertyValue("Function", "com.sun.star.sheet.GeneralFunction.SUM")
//l_objField.SetPropertyValue("ShowEmpty", 0)
next
l_objTable.insertNewByName('Tabla Dinamica', l_objrange_2, l_objDataDescript)