Re: EasyDev v2.3.0 [27-Nov-15]
Publicado: Vie Nov 27, 2015 8:06 pm
Bueno, ya hemos dado otro pasito más. Ahora en la última instrucción sigue poniendo la "u". Mira la imagen.
Los foros en español de la comunidad de Apache OpenOffice (y LibreOffice). En tu idioma desde el 2008, ayudándote a usar tu libertad.
https://forum.openoffice.org/es/forum/
Código: Seleccionar todo
MsgBox(util.getInfoPC()(0))
MsgBox(util.getInfoPC()(1))
MsgBox(util.getInfoPC()(2))
MsgBox(util.getInfoPC()(3))
MsgBox(util.getInfoPC()(4))
MsgBox(util.getInfoPC()(5))
Código: Seleccionar todo
def rgb(r, g, b):
return int('%02x%02x%02x' % (r, g, b), 16)
Código: Seleccionar todo
properties = Array( _
Array("Color", RGB(255,0,0)), _
Array("LineWidth", 100), _
Array("AttachedAxisIndex", 1) _
)
Código: Seleccionar todo
Sub GraficandoRangos()
Dim pos_size As New com.sun.star.awt.Rectangle
Dim series(1) As New org.universolibre.EasyDev.ChartSerie
util = createUnoService("org.universolibre.EasyDev")
address = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
data = createUnoStruct("org.universolibre.EasyDev.ChartData")
doc = ThisComponent
address.Doc = doc
address.Sheet = "Hoja1"
address.Col = 0
address.Row = 1
address.EndCol = 0
address.EndRow = 8
rango_X = util.getRange(address)
address.Col = 1
address.EndCol = 1
rango_Y = util.getRange(address)
address.Col = 1
address.Row = 0
title_1 = util.getCell(address)
properties = Array( _
Array("Color", RGB(255,0,0)), _
Array("LineWidth", 100), _
)
series(0).X = rango_X
series(0).Y = rango_Y
series(0).Title = title_1
series(0).Properties = properties
properties = Array( _
Array("Color", RGB(255,255,0)), _
)
series(1).X = "Hoja1.C2:C9"
series(1).Y = "Hoja1.D2:D9"
series(1).Title = "Hoja1.D1"
series(1).Properties = properties
pos_size.X = 0
pos_size.Y = 5000
pos_size.Width = 12000
pos_size.Height = 7000
data.Doc = doc
data.Sheet = util.getSheet(address)
data.Name = "Grafico01"
data.Type = "XYDiagram"
data.PosSize = pos_size
data.Series = series
properties = Array( _
Array("Title", "Canal Chalco"), _
Array("HasLegend", True), _
)
data.Properties = properties
chart = util.chartAdd(data)
properties = Array( _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 18), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(255,0,0)), _
Array("LineWidth", 100) _
)
title = chart.getTitleObject()
util.imageFormat(title, properties)
legend = chart.Legend
'https://www.openoffice.org/api/docs/common/ref/com/sun/star/chart/ChartLegendPosition.html
properties = Array( _
Array("Alignment", 3), _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 12), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(255,0,0)), _
Array("LineWidth", 100) _
)
util.imageFormat(legend, properties)
axis = chart.getDiagram().getXAxis()
axis.Min = -1
axis.Max = 10
axis = chart.getDiagram().getYAxis()
properties = Array( _
Array("Min", -1), _
Array("Max", 7), _
)
util.imageFormat(axis, properties)
End Sub
Código: Seleccionar todo
unopkg add -v -f -s path_oxt
Código: Seleccionar todo
Option Explicit
Sub GraficandoRangos01()
' Con EasyDev 2.3
Dim pos_size As New com.sun.star.awt.Rectangle
Dim series(1) As New org.universolibre.EasyDev.ChartSerie
Dim util as Object
Dim Address as Object
Dim data as Object
Dim doc as Object
Dim rango_X as Object
Dim rango_Y as Object
Dim Title_1 as Object
Dim Properties as Object
Dim chart as Object
Dim Axis as Object
Dim title as Object
Dim legend as Object
Dim Temp as String
util = createUnoService("org.universolibre.EasyDev")
address = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
data = createUnoStruct("org.universolibre.EasyDev.ChartData")
doc = ThisComponent
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = "Hoja1"
address.Col = 0
address.Row = 4
address.EndCol = 0
address.EndRow = 10010
' Rango de las ordenadas
rango_X = util.getRange(address)
' Los valores que no cambian mantienen su valor
address.Col = 1
address.EndCol = 1
' Rango de las abscisas
rango_Y = util.getRange(address)
' Título
address.Col = 1
address.Row = 3
title_1 = util.getCell(address)
' Propiedades de la serie
properties = Array( _
Array("Color", RGB(0,0,255)), _
Array("LineWidth", 100), _
Array("AttachedAxisIndex", 0) _
)
' Asignación de rangos a la serie
series(0).X = rango_X
series(0).Y = rango_Y
series(0).Title = title_1
'series(0).Color = 17798
series(0).Properties = properties
properties = Array( _
Array("Color", RGB(255,0,0)), _
Array("LineWidth", 100), _
Array("AttachedAxisIndex", 2) _
)
' Serie definiendo los rangos por String
' properties = Array( _
' Array("Color", RGB(145,249,251)), _
' Array("LineWidth", 100), _
' )
series(1).X = "Hoja1.C5:C10011"
series(1).Y = "Hoja1.D5:D10011"
series(1).Title = "Hoja1.D4"
'series(1).Color = 16728590
series(1).Properties = properties
' Posición del gráfico
pos_size.X = 0
pos_size.Y = 0
pos_size.Width = 26000
pos_size.Height = 14000
' Características del gráfico
data.Doc = doc
address.Sheet = "Graficos" ' Se redefine la hoja para poder hubicar el gráfico
data.Sheet = util.getSheet(address)
data.Name = "Grafico01"
data.Type = "XYDiagram"
data.PosSize = pos_size
data.Series = series
'----------------------------------------------------------------------------------------------
Temp= "Título por variable"
properties = Array( _
Array("Title", Temp), _
Array("HasLegend", True), _
)
data.Properties = properties
'----------------------------------------------------------------------------------------------
chart = util.chartAdd(data)
'----------------------------------------------------------------------------------------------
properties = Array( _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 18), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(255,0,0)), _
Array("LineWidth", 100) _
)
title = chart.getTitleObject()
util.imageFormat(title, properties)
legend = chart.Legend
'https://www.openoffice.org/api/docs/common/ref/com/sun/star/chart/ChartLegendPosition.html
properties = Array( _
Array("Alignment", 4), _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 12), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(0,0,0)), _
Array("LineWidth", 10) _
)
util.imageFormat(legend, properties)
'----------------------------------------------------------------------------------------------
axis = chart.getDiagram().getXAxis()
axis.Min = 37074
axis.Max = 37075
axis = chart.getDiagram().getYAxis()
properties = Array( _
Array("Min", -5), _
Array("Max", 7), _
)
util.imageFormat(axis, properties)
End Sub
Código: Seleccionar todo
axis = chart.getDiagram().getSecondaryYAxis()
axis.Min = -50
axis.Max = 50
axis.Visible=true
axis.axisTitle.String = "YSecundario"
Código: Seleccionar todo
axis = chart.getDiagram().getYAxis()
axis.Min = -5
axis.Max = 7
axis.axisTitle.String = "Eje Y"
Código: Seleccionar todo
axis = chart.getDiagram().getYAxis()
properties = Array( _
Array("Min", -1), _
Array("Max", 10), _
Array("axisTitle.String", " Array Eje Y"), _
)
Código: Seleccionar todo
def imageFormat(self, image, data):
properties = comun.to_dict(data)
title = None
if image.supportsService('com.sun.star.chart2.Title'):
title = image.getText()[0]
for k, v in properties.items():
if hasattr(image, k):
setattr(image, k, v)
if title and hasattr(title, k):
setattr(title, k, v)
return
Código: Seleccionar todo
axis = chart.getDiagram().getYAxis()
Código: Seleccionar todo
"axisTitle.String"
Código: Seleccionar todo
axis = chart.getDiagram().getSecondaryYAxis()
properties = Array( _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 12), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("Min", -1), _
Array("Max", 7), _
Array("Visible", True), _
Array("String", "Y Secundario"), _
)
util.imageFormat(axis, properties)
Código: Seleccionar todo
Sub GraficandoRangosED()
' Con EasyDev 2.3
Dim pos_size As New com.sun.star.awt.Rectangle
Dim series(1) As New org.universolibre.EasyDev.ChartSerie
Dim util as Object
Dim Address as Object
Dim data as Object
Dim doc as Object
Dim rango_X as Object
Dim rango_Y as Object
Dim Title_1 as Object
Dim Properties as Object
Dim chart as Object
Dim Axis as Object
Dim title as Object
Dim legend as Object
Dim Temp as String
util = createUnoService("org.universolibre.EasyDev")
address = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
data = createUnoStruct("org.universolibre.EasyDev.ChartData")
doc = ThisComponent
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = "Hoja1"
address.Col = 0
address.Row = 4
address.EndCol = 0
address.EndRow = 10010
' Rango de las ordenadas
rango_X = util.getRange(address)
' Los valores que no cambian mantienen su valor
address.Col = 1
address.EndCol = 1
' Rango de las abscisas
rango_Y = util.getRange(address)
' Título
address.Col = 1
address.Row = 3
title_1 = util.getCell(address)
' Propiedades de la serie
properties = Array( _
Array("Color", RGB(0,0,255)), _
Array("LineWidth", 100), _
Array("AttachedAxisIndex", 0) _
)
' Asignación de rangos a la serie
series(0).X = rango_X
series(0).Y = rango_Y
series(0).Title = title_1
'series(0).Color = 17798
series(0).Properties = properties
properties = Array( _
Array("Color", RGB(255,0,0)), _
Array("LineWidth", 100), _
Array("AttachedAxisIndex", 1) _
)
' Serie definiendo los rangos por String
' properties = Array( _
' Array("Color", RGB(145,249,251)), _
' Array("LineWidth", 100), _
' )
series(1).X = "Hoja1.C5:C10011"
series(1).Y = "Hoja1.D5:D10011"
series(1).Title = "Hoja1.D4"
'series(1).Color = 16728590
series(1).Properties = properties
' Posición del gráfico
pos_size.X = 0
pos_size.Y = 0
pos_size.Width = 26000
pos_size.Height = 14000
' Características del gráfico
data.Doc = doc
address.Sheet = "Graficos" ' Se redefine la hoja para poder hubicar el gráfico
data.Sheet = util.getSheet(address)
data.Name = "Grafico01"
data.Type = "XYDiagram"
data.PosSize = pos_size
data.Series = series
'----------------------------------------------------------------------------------------------
Temp= "Caso 5: Propiedades de eje Y como Array"
properties = Array( _
Array("Title", Temp), _
Array("HasLegend", True), _
)
' Array("HasSecondaryYAxis", True), _
' Array("HasXAxisTitle", True), _
' Array("HasYAxisTitle", True), _
' Array("HasSecondaryYAxisTitle", True), _
' )
' Array("HasSecondaryYAxis", True), _
' )
data.Properties = properties
'----------------------------------------------------------------------------------------------
chart = util.chartAdd(data)
'----------------------------------------------------------------------------------------------
' Título
properties = Array( _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 18), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(255,0,0)), _
Array("LineWidth", 100) _
)
title = chart.getTitleObject()
util.imageFormat(title, properties)
' Leyenda
legend = chart.Legend
'https://www.openoffice.org/api/docs/common/ref/com/sun/star/chart/ChartLegendPosition.html
properties = Array( _
Array("Alignment", 4), _
Array("CharColor", RGB(0,0,255)), _
Array("CharHeight", 12), _
Array("CharWeight", 150), _
Array("CharFontName", "Liberation Serif"), _
Array("LineStyle", 1), _
Array("LineColor", RGB(0,0,0)), _
Array("LineWidth", 10) _
)
util.imageFormat(legend, properties)
'----------------------------------------------------------------------------------------------
axis = chart.getDiagram().getXAxis()
axis.Min = 37074
axis.Max = 37075
' axis = chart.getDiagram().getYAxis()
' axis.Min = -5
' axis.Max = 7
' axis.axisTitle.String = "Eje Y"
' axis = chart.getDiagram().getYAxis()
' properties = Array( _
' Array("Min", -1), _
' Array("Max", 10), _
' Array("axisTitle.String", " Array Eje Y"), _
' )
' Array("AxisTitle.String", "Eje Y"), _
' )
util.imageFormat(axis, properties)
axis = chart.getDiagram().getSecondaryYAxis()
axis.Min = -50
axis.Max = 50
axis.Visible=true
axis.axisTitle.String = "YSecundario"
axis = chart.getDiagram().getYAxis()
properties = Array( _
Array("Min", -3), _
Array("Max", 10), _
Array("String", "Eje Y Array"), _
)
util.imageFormat(axis, properties)
' axis = chart.getDiagram().getSecondaryYAxis()
' properties = Array( _
' Array("Min", -5), _
' Array("Max", 7), _
' )
' util.imageFormat(axis, properties)
End Sub
Código: Seleccionar todo
Function fGrfPr001(Hoja As Integer, ColX As Integer, ColY As Integer, FilA As Long, FilZ As Long, FilT As Long, EjeY As Integer, Form As Integer) As New org.universolibre.EasyDev.ChartSerie
'Sub GraficandoRangosED()
' Con EasyDev 2.3
Dim util as Object
Dim Address as Object
Dim data as Object
Dim doc as Object
Dim rango_X as Object
Dim rango_Y as Object
Dim Title_1 as Object
Dim Properties as Object
util = createUnoService("org.universolibre.EasyDev")
address = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
data = createUnoStruct("org.universolibre.EasyDev.ChartData")
doc = ThisComponent
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = Hoja
address.Col = ColX
address.Row = FilA
address.EndCol = ColX
address.EndRow = FilZ
'------------------------------------------------------------
' R A N G O S
'------------------------------------------------------------
' Rango de las ordenadas
rango_X = util.getRange(address)
' Los valores que no cambian mantienen su valor
address.Col = ColY
address.EndCol = ColY
' Rango de las abscisas
' rango_Y = address
rango_Y = util.getRange(address)
' Asignación de rangos a la serie
SerieTr.X = rango_X
SerieTr.Y = rango_Y
fGrfPr001=SerieTr
'End Sub
End Function
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Public Series(1) As New org.universolibre.EasyDev.ChartSerie
Sub Main
Series(0) = fGrfPr001(0, 0, 1, 4, 10010, 3, 0, 2)
End Sub
Function fGrfPr001(Hoja As Integer, ColX As Integer, ColY As Integer, FilA As Long, FilZ As Long, FilT As Long, EjeY As Integer, Form As Integer) As New org.universolibre.EasyDev.ChartSerie
'Sub GraficandoRangosED()
' Con EasyDev 2.3
Dim util as Object
Dim Address as Object
Dim data as Object
Dim doc as Object
Dim rango_X as Object
Dim rango_Y as Object
Dim Title_1 as Object
Dim Properties as Object
util = createUnoService("org.universolibre.EasyDev")
address = createUnoStruct("org.universolibre.EasyDev.CellRangeAddress")
data = createUnoStruct("org.universolibre.EasyDev.ChartData")
doc = ThisComponent
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = Hoja
address.Col = ColX
address.Row = FilA
address.EndCol = ColX
address.EndRow = FilZ
'------------------------------------------------------------
' R A N G O S
'------------------------------------------------------------
' Rango de las ordenadas
rango_X = util.getRange(address)
' Los valores que no cambian mantienen su valor
address.Col = ColY
address.EndCol = ColY
' Rango de las abscisas
' rango_Y = address
rango_Y = util.getRange(address)
' Asignación de rangos a la serie
SerieTr.X = rango_X
SerieTr.Y = rango_Y
fGrfPr001=SerieTr
'End Sub
End Function
Código: Seleccionar todo
' Definición de rango de datos por índice
address.Doc = doc
address.Sheet = "Hoja1"
address.Col = 0
address.Row = 4
address.EndCol = 0
address.EndRow = 10010
' Rango de las ordenadas
rango_X = util.getRange(address)