.ActiveChart.ChartType = 65por el codigo para "tortas" y configurar los titulos.
* Ejemplo de alguien que no recuerdo *========================================================= SET DATE DMY set date french SET SAFETY OFF close data all *--- Crea las tablas que simulan las consultas DO CreaArchivos *--- Genera gráfico anual DO GraficoAnual *--- Genera gráfico semanal DO GraficoSemanal CLOSE TABLES ALL RETURN *========================================================= *------------------------------------------------------- * PROCEDURE CreaArchivos *------------------------------------------------------- * Crea y llena las tablas de ejemplo y las copia * como archivo tipo .XLS *------------------------------------------------------- PROCEDURE CreaArchivos LOCAL lnI, ldFechaIni *--- Inicializo la funcion RAND() lnI = RAND(-1) ldFechaIni = ctod("27/12/1998") *---- Creo tablas CREATE TABLE Semana (Dia C(10), Item01 N(10,2), ; Item02 N(10,2), Item03 N(10,2), Item04 N(10,2)) CREATE TABLE Anio (Mes C(10), TOTAL N(10,2)) *--- Cargo datos de los 7 días y los 12 meses FOR lnI = 1 TO 12 IF lnI <= 7 INSERT INTO Semana ; (Dia, Item01, Item02, Item03, Item04) ; VALUES (CDOW(ldFechaIni+lnI), RAND()*1000, ; RAND()*1000, RAND()*1000, RAND()*1000 ) ENDIF INSERT INTO Anio (Mes, TOTAL) ; VALUES (CMONTH(GOMONTH(ldFechaIni,lnI)), RAND()*10000 ) ENDFOR *--- Guardo como tipo XL5 SELECT Semana COPY TO Semana TYPE XL5 SELECT Anio COPY TO Anio TYPE XL5 RETURN ENDPROC *------------------------------------------------------- * PROCEDURE GraficoAnual *------------------------------------------------------- * Creo un gráfico de Lineas en Excel *------------------------------------------------------- PROCEDURE GraficoAnual LOCAL lnFil, lnCol, lcRango, lcPlanilla, lcHoja, loExcel lnFil = RECCOUNT("Anio") + 1 lnCol = FCOUNT("Anio") lcRango = "A1:" + CHR(64+lnCol) + ALLTRIM(STR(lnFil)) lcHoja = "Anio" lcPlanilla = SYS(5) + CURDIR() + "Anio.xls" *--- Creo objeto Excel loExcel=CREATEOBJECT("Excel.application") WITH loExcel.APPLICATION .VISIBLE = .F. && oculto el trabajo en la aplicacion Excel .workbooks.OPEN(lcPlanilla) *---- Añado grafico de líneas .Charts.ADD .ActiveChart.ChartType = 65 && xlLineMarkers .ActiveChart.SetSourceData(.Sheets(lcHoja).RANGE(lcRango), 2) .ActiveChart.Location(1, "Grafico") .ActiveChart.HasDataTable = .F. *--- Estilo y ancho línea .ActiveChart.SeriesCollection(1).SELECT WITH .SELECTION.BORDER .Weight = 4 && xlThick .LineStyle = 1 && xlContinuous ENDWITH *--- Titulo gráfico .ActiveChart.HasTitle = .T. .ActiveChart.ChartTitle.TEXT = "Ventas acumuladas anuales" .ActiveChart.ChartTitle.SELECT WITH .SELECTION.FONT .NAME = "Arial" .FontStyle = "Negrita" .SIZE = 16 ENDWITH *--- Leyenda .ActiveChart.HasLegend = .T. .ActiveChart.Legend.SELECT .SELECTION.Position = -4160 && xlTop *--- Ejes WITH .ActiveChart .Axes(1, 1).HasTitle = .T. .Axes(1, 1).AxisTitle.TEXT = "Meses del año" .Axes(2, 1).HasTitle = .T. .Axes(2, 1).AxisTitle.TEXT = "Totales en U$S" .Deselect ENDWITH *--- Grabo planilla y cierro .VISIBLE = .F. .ActiveWorkbook.SAVE .workbooks.CLOSE ENDWITH RELE loExcel RETURN ENDPROC *------------------------------------------------------- * PROCEDURE GraficoSemanal *------------------------------------------------------- * Gráfico de Barras Apiladas en Excel *------------------------------------------------------- PROCEDURE GraficoSemanal LOCAL lnFil, lnCol, lcRango, lcPlanilla, lcHoja, loExcel lnFil = RECCOUNT("Semana") + 1 lnCol = FCOUNT("Semana") lcRango = "A1:" + CHR(64+lnCol) + ALLTRIM(STR(lnFil)) lcHoja = "Semana" lcPlanilla = SYS(5) + CURDIR() + "Semana.xls" *--- Creo objeto Excel loExcel=CREATEOBJECT("Excel.application") WITH loExcel.APPLICATION .VISIBLE = .f. && oculto el trabajo en la aplicacion Excel .workbooks.OPEN(lcPlanilla) *---- Añado grafico barras apiladas .Charts.ADD .ActiveChart.ChartType = 52 && xlColumnStacked .ActiveChart.SetSourceData(.Sheets(lcHoja).RANGE(lcRango), 2) .ActiveChart.Location(1, "Grafico") .ActiveChart.HasDataTable = .F. *--- Titulo gráfico .ActiveChart.HasTitle = .T. .ActiveChart.ChartTitle.TEXT = "Ventas semanales por items" .ActiveChart.ChartTitle.SELECT WITH .SELECTION.FONT .NAME = "Arial" .FontStyle = "Negrita" .SIZE = 16 ENDWITH *--- Leyenda> .ActiveChart.HasLegend = .T. .ActiveChart.Legend.SELECT .SELECTION.Position = -4160 && xlTop *--- Ejes WITH .ActiveChart .Axes(1, 1).HasTitle = .T. .Axes(1, 1).AxisTitle.TEXT = "Días de la semana" .Axes(2, 1).HasTitle = .T. .Axes(2, 1).AxisTitle.TEXT = "Totales en U$S" .Deselect ENDWITH *--- Grabo planilla y cierro .VISIBLE = .F. .ActiveWorkbook.SAVE .workbooks.CLOSE ENDWITH RELE loExcel RETURN ENDPROC *------------------------------------------------------- *------------------------------------------------------- * PROCEDURE CargarCelda *------------------------------------------------------- * Gráfico de Barras Apiladas en Excel *------------------------------------------------------- procedure CargarCelda lparameters pnFila, pnColumna, pValor LOCAL lnFil, lnCol, lcRango, lcPlanilla, lcHoja, loExcel lcPlanilla = SYS(5) + CURDIR() + "Semana.xls" *--- Creo objeto Excel loExcel=CREATEOBJECT("Excel.application") WITH loExcel.APPLICATION .VISIBLE = .F. && oculto el trabajo en la aplicacion Excel .workbooks.OPEN(lcPlanilla) .worksheets(1).cells(pnFila, pnColumna).value = pValor *--- Grabo planilla y cierro .VISIBLE = .F. .ActiveWorkbook.SAVE .workbooks.CLOSE ENDWITH RELE loExcel RETURN ENDPROC *-------------------------------------------------------