Gracias OZ!
 

-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de oscar.zarate
Enviado el: Lunes, 06 de Noviembre de 2006 07:26 p.m.
Para: GUFA List Member
Asunto: [GUFA] Ms chart 8.0

OK, Marito, esta respuesta consta de dos partes. Una entrega pescado y 
la otra es para enseñar a pescar.

Pescado: en el prg attachado. Si no te sirve como idea, pasa el 
requerimiento y el form /  prg y lo modificamos en conjunto con la lista 
como para hacer un taller :)


Como pescar:

DO "c:\program files\microsoft visual foxpro 9
\samples\solution\main.prg"  
Ahí elegis Foundation Classes – Run Word, Excel and Graph Automation. 
Podes ejecutar o click en Ver codigo ejemplo y unas cuantas 
explicaciones de esto en http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/fox7help/html/ffcgraph_object.asp 

Otro es http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/fox7help/html/samManipulate_Display_Characteristics_of_a_Graph.asp


Ahora, lo que mas me gusta a mi es usar la Web. Encuentro muchas cosas 
que me sirven como para iniciar y luego las avanzo (como este código que 
copie de la revista Española FoxPress 
http://www.fpress.com/revista/Num0401/aarticulo3.htm o 
http://www.fpress.com/revista/Num9812/Dic98.htm ) pero en el caso de 
gráficos hay una herramienta que me gusta más que Internet y es Excel y 
VBA.
La idea es la siguiente: 
1.      Abrís Excel. 
2.      Haces una tablita equivalente a la tabla de resultados de tu 
consulta.
3.      Menú: Tools – Macro – Record a new macro (Menú: Herramientas – 
Macro – Grabar una nueva macro)
4.      Le pones un nuevo nombre y click OK
5.      Ahora haces todos los pasos para crear un grafico (selecciona 
las celdas, elegis tipo de grafico, etc, etc, etc y muchas veces estos 
etc son el detalle que te falta, por ejemplo como cambiar un titulo o 
algún color o algo)
6.      Cuando terminas, apretas el botón de finalizar la grabación.
7.      Ahora, vas al menú y abrís Tools – Macro – Visual basic editor o 
lo que sea en español :) 
8.      En el editor de VBA, abrís el Tree view que tenes a la derecha y 
buscas Modules – Module1
9.      Doble click sobre eso y tenes el codigo VBA del grafico que 
hiciste.

VBA no es idéntico a VFP, por supuesto, pero es muy fácil de traducir 
(creo).

Un problema, es las constantes usa VBA, eso lo podes solucionar buscando 
en Internet o encontrando el archivo de constantes, pero creo que te va 
a gustar esta del método Munuce:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 7/11/2006 by Oscar
'
Range("A1:A1").Value = xlColumnClustered

'
End Sub

La idea es hacer una macro que escriba en una celda, en este caso en A1, 
el valor de la constante, o sea 51 que es el valor de xlColumnClustered. 
Evidentemente el error que vos tenias es porque tus datos (el cursor) no 
tiene los valores necesarios para este tipo de grafico, fijate que con 
los string concatenando los valores para hacer filas y columnas no es lo 
mas intuitivo pero es mejor.



Bueno, creo que para empezar debe ser suficiente, pero insisto, manda el 
proyecto y lo vemos.


PS: Este también te va gustar, o no es un gran ejemplo del método Munuce 
(ojo, niños no lo hagan en sus casas, jajaja):

public pantalla
pantalla = createobject("form")
pantalla.addobject("objeto", "olecontrol", "msgraph.chart.8")
pantalla.objeto.top = 0
pantalla.objeto.left = 0
pantalla.objeto.height = pantalla.height
pantalla.objeto.width = pantalla.width
pantalla.visible = .t.
pantalla.objeto.visible = .t.
pantalla.lockscreen = .t.
pantalla.objeto.object.application.chart.charttype = 106 && -4100
pantalla.objeto.object.application.datasheet.range("00").value = ""
pantalla.objeto.object.application.datasheet.range("01").value = "Pedro"
pantalla.objeto.object.application.datasheet.range("02").value = "Luis"
pantalla.objeto.object.application.datasheet.range("A0").value = "Enero"
pantalla.objeto.object.application.datasheet.range("A1").value = 25
pantalla.objeto.object.application.datasheet.range("A2").value = 40
pantalla.objeto.object.application.datasheet.range("B0").value 
= "Febrero"
pantalla.objeto.object.application.datasheet.range("B1").value = 35
pantalla.objeto.object.application.datasheet.range("B2").value = 55
pantalla.objeto.object.application.datasheet.rows("4").delete
pantalla.objeto.object.application.datasheet.rows("5").delete
pantalla.objeto.object.application.datasheet.columns("4").delete
pantalla.objeto.object.application.datasheet.columns("4").delete
pantalla.objeto.object.application.chart.hastitle = .t.
pantalla.objeto.object.application.chart.charttitle.text = "Mi gráfico"
pantalla.lockscreen = .f.


SaludOZ
 |\_/|
 (.. )
  - /


-----Original Message-----
From: "Mario Munuce" <[EMAIL PROTECTED]>
To: "GUFA List Member"  <[email protected]>
Date: Sun, 5 Nov 2006 22:44:13 -0600
Subject: [GUFA] Ms chart 8.0

> 
> 
> From TheCount's Desk
> _____________________ 
> 
> Hoola zorros!
> Gracias al aporte de Pablito Canonico y a codigo que chorre de la web,
> puede
> hacer mi grafiquito!
> 
> Si abro el cursorcito de marras, me muestra el grafico.. 'hasta aqui
> voy
> bien' (decia Olmedo, mientras caia por el cuarto piso).
> 
> Cuando quiero mostrarlo en un form.
> 
> If fn_PedidosDeEsteArticulo(This.articuloid,This.clienteid)
>       Select GraficarEsto
>       With This.oleboundcontrol1
>               .ControlSource='GraficarEsto.Grafico'
>               .ChartType=51
>               .Height=This.Height-20
>               .Width = This.Width-20
>               .Left=0
>               .Top=0
>               .Visible=.T.
>               .Refresh
>       Endwith
> Endif
> 
> Me da el error chartype property is not found
> Que estoy haciendo mal?
> 
> Desde ya gracias!
> Abreso,
> M.
> Nota: Los acentos han sido removidos intencionalmente, para que este
> mensaje
> pueda ser leido por todos los programas de correo.
> 


Responder a