Envío de una gráfica realizada en fox a Excel

Una vez realizada una gráfica en visual fox como la puedo enviar a Excel.

1 respuesta

Respuesta
1
Código para crear un gráfico de Visual FoxPro en Excel
Primero que todo hay que tener en cuenta que no se puede pasar un gráfico de Visual FoxPro a Excel, simplemente enviar los datos de Visual FoxPro a Excel para luego crear el gráfico en Excel, el cual será obviamente el mismo de Visual FoxPro, es decir, la información con la que se crea el gráfico de Visual FoxPro será la misma que se envíe a Excel para crear un gráfico con las mismas características del gráfico de Visual FoxPro, ejemplo:
Supongamos que hay una tabla de productos de la cual hemos creado un gráfico de cantidad de existencias por producto, entonces esa misma información la enviamos a Microsoft Excel para crear el gráfico:
Select Productos
MsExcel = Createobject("Excel.Application")
If Type("MsExcel") = "O" Then
  MsExcel.Visible = .T. && Esta línea se coloca para ver si llega los datos no es recomendable colocarla.
  MsExcel.Workbooks.Add()       
  WkpGxtab = MsExcel.ActiveSheet
* Pasamos los datos de la tabla a la hoja de cálculo 2 de Excel With MsExcel. Worksheets("Hoja2"). Range(MsExcel. Worksheets("Hoja2"). Cells(3,1), MsExcel. Worksheets("Hoja2").Cells(3,2))
    .Borders.LineStyle = 7
    .Borders(1).Weight = 3
    .Borders(2).Weight = 3
    .Borders(3).Weight = 3
    .Borders(4).Weight = 3
    .Font.Bold = .T.
    .Font.ColorIndex = 5
    .Interior.ColorIndex = 6
    .HorizontalAlignment = 3
    .VerticalAlignment = 2
  Endwith
  MsExcel.Worksheets("Hoja2").Cells(1,1).Value = "Datos para el gráfico."
  MsExcel.Worksheets("Hoja2").Cells(1,1).ColumnWidth = 30
  MsExcel.Worksheets("Hoja2").Cells(3,1).Value = "Producto"
  MsExcel.Worksheets("Hoja2").Cells(3,2).Value = "Existencias" 
For i = 1 To Reccount()
    Go i
    Enviar los datos de la tabla a la hoja de cálculo.
    MsExcel.Worksheets("Hoja2").Cells(i+3,1).Value = Prod_nom
    MsExcel.Worksheets("Hoja2").Cells(i+3,2).Value = Exist_prod   
    With MsExcel.Worksheets("Hoja2").Range(MsExcel.Worksheets("Hoja2").Cells(i+3,1), MsExcel.Worksheets("Hoja2").Cells(i+3,2))
      .Borders.LineStyle = 7
      .Borders(1).Weight = 2
      .Borders(2).Weight = 2
      .Borders(3).Weight = 2
      .Borders(4).Weight = 2
    Endwith
  Endfor
  Crear el gráfico.
  Gráfico = WkpGxtab.ChartObjects.Add(100, 100, 200, 200).WkpGxtab.Chartobjects(1).Chart.Chartwizard(MsExcel.Worksheets("Hoja2").Range(MsExcel.Worksheets("Hoja2").Cells(4,1), MsExcel.Worksheets("Hoja2").Cells(i+2,2)),COLUMN3D,4,1,0,1,1,"","","","")
  WkpGxtab.ChartObjects(1).Select
  WkpGxtab.ChartObjects(1).Copy
  WkpGxtab.ChartObjects(1).Chart.Axes(1).HasTitle = .T.
  WkpGxtab.ChartObjects(1).Chart.Axes(1).AxisTitle.Caption = "Gráfico de Visual FoxPro"
Realice la tabla y la llene con 8 registros los cuales ya puedo ver en excel, pero en esta parte del código me aparecen 2 errores:
Crear el gráfico.
  Gráfico = WkpGxtab.ChartObjects.Add(100, 100, 200, 200).WkpGxtab.Chartobjects(1).Chart.Chartwizard(MsExcel.Worksheets("Hoja2").Range(MsExcel.Worksheets("Hoja2").Cells(4,1), MsExcel.Worksheets("Hoja2").Cells(i+2,2)),COLUMN3D,4,1,0,1,1,"","","","")
  WkpGxtab.ChartObjects(1).Select
  WkpGxtab.ChartObjects(1).Copy
  WkpGxtab.ChartObjects(1).Chart.Axes(1).HasTitle = .T.
  WkpGxtab.ChartObjects(1).Chart.Axes(1).AxisTitle.Caption = "Gráfico de Visual FoxPro"
Error1 "No se encuentra la variable COLUMN3D"
Error2 "codigo de error OLE 0x800a03e:codigo de estado de COM desconocido"
De tal forma que no puedo ver el gráfico.
Saludos.
Incluye estas constantes en tu programa:
#Define AREA            1    
#Define BARS            2
#Define COLUMNS         3 
#Define LINES           4
#Define PIE            5
#Define RADAR          -4151
#Define POINTXY         -4169 
#Define AREA3D          -4098
#Define BAR3D           -4099
#Define COLUMN3D        -4100 
#Define LINES3D         -4101 
#Define PIE3D           -4102 
#Define RUSK            -4120
Sirven como parámetros para los tipos de gráficos.
Estamos hablando...
Coloque el código que me dijo y ya no me aparecen esos errores pero salio el siguiente error: "Código de error OLE 0x8002000e: Numero de parámetros no válido" haciendo referencia a estas lineas de código.
Gráfico = WkpGxtab.ChartObjects.Add(100, 100, 200, 200).WkpGxtab.Chartobjects(1).Chart.Chartwizard(MsExcel.Worksheets("Hoja2").Range(MsExcel.Worksheets("Hoja2").Cells(4,1), MsExcel.Worksheets("Hoja2").Cells(i+2,2)),COLUMN3D,4,1,0,1,1,"","","","")
Gracias y disculpe por las molestias
Veo que la cosa está más complicada de lo que pensé ¿Será posible que me envíes una copia de tu programa?
Voy a revisar detalladamente cuál es el problema...
Mi correo es [email protected]
Le acabo de enviar los archivos a su correo.
Saludos y muchas gracias
Ya te envi{e el proyecto corregido a tu correo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas