"Error de Coherencia en Visual Fox"

Hola, disculpa no se si tu puedas ayudarme sobre unas dudas que tengo en VFP 7
1.-Lo que pasa es que estoy usando un objeto mschart, para crear gráficas, el problema es que no se como mandarlas a imprimir, ya intente, mandándola a portapapeles de windows, también con un Appen General, pero nada ha funcionado.
2.-Al mandar a imprimir un reporte me sale un error que dice "Error de coherencia" y solo tiene un botón de aceptar, al darle aceptar, cierra por completo mi aplicación y hasta visual fox.
3.- ¿Dónde puedo encontrar información relacionada con el control Msgraph?
De antemano gracias.

2 respuestas

Respuesta
1
Lo del error de coherencia lo puedes resolver (creo) con una actualización al Visual Fox. Chequea esta dirección:
http://www.microsoft.com/latam/vfoxpro/downloads/VFP7_SP1Readme_ESN.htm
Lo del control msgraph, tal vez esto te pueda ayudar:
**********************************************************
* Crear un gráfico en Ms Graph 8.0 con Fox y Ole
*
* Se pretende Seleccionar:
* 1. El color para el titulo de los ejes x,y.
* 2. El color para el rótulo de datos.
* 3. El color para ajustar el color interior de cada serie del conjunto
*
* Con este ejemplo se busca dar mas creatividad a todos los foxeros para mejorar
* las presentaciones de los gráficos y permitir al usuario que configure sus titulos,
* tamaños, fuentes, colores o seleccionar el tipo de grafico que desee.
*
* Espero TE sirva como ejemplo
*
* Este codigo es una modificación de uno que aparecia en la revista de * Foxpress (España)
*
*
**********************************************************
public Grafico, TxtColorTitulos, TxtColorRotulos, TxtColorInterior
TxtColorTitulos=16711680 && Color para los titulos por defecto (Azul)
TxtColorRotulos=255 && Color para los titulos por defecto (Rojo)
TxtColorInterior=65408 && Color para los titulos por defecto (Verde)
Grafico = CREATEOBJECT('Form') && Crea un formulario.
Grafico.caption="Gráficos con Fox y MS Graph 8.0"
Grafico.height=160
Grafico.width=290
Grafico.AutoCenter=.t.
Grafico.AddObject('CmdColorTitulos','CmdColorTitulos') && Botón Color.
Grafico.AddObject('CmdColorRotulos','CmdColorRotulos') && Botón Rótulos.
Grafico.AddObject('CmdColorInterior','CmdColorInterior') && Botón Interior.
Grafico.AddObject('CmdGraficar','CmdGraficar') && Botón Graficar.
Grafico.CmdColorTitulos.Visible =.T. && Botón Color visible.
Grafico.CmdColorRotulos.Visible =.T. && Botón Color visible.
Grafico.CmdColorInterior.Visible =.T. && Botón Color visible.
Grafico.CmdGraficar.Visible =.T. && Botón Grafico visible.
Grafico.SHOW && Muestra el formulario.
*READ EVENTS && Inicia el procesamiento de eventos.
DEFINE CLASS CmdColorTitulos AS COMMANDBUTTON && Crea un botón de comando.
Caption = 'Color Titulos...' && Título del botón de comando.
Left = 50 && Columna del botón de comando.
Top = 25 && Fila del botón de comando.
Height = 25 && Alto del botón de comando.
width=190 && Ancho del botón de comando.
ForeColor=RGB(0,0,255) && Color Azul
PROCEDURE Click
TxtColorTitulos=getcolor()
tnColor=_Col2RGB(TxtColorTitulos)
Thisform.CmdColorTitulos.Caption = 'Color Titulos...'+Tncolor && Modificar Título del botón de comando.
Thisform.CmdColorTitulos.forecolor=&Tncolor
ENDDEFINE
DEFINE CLASS CmdColorRotulos AS COMMANDBUTTON && Crea un botón de comando.
Caption = 'Color Rotulos... ' && Título del botón de comando.
Left = 50 && Columna del botón de comando.
Top = 60 && Fila del botón de comando.
Height = 25 && Alto del botón de comando.
width=190 && Ancho del botón de comando.
ForeColor=RGB(255,0,0) && Color Rojo
PROCEDURE Click
TxtColorRotulos=getcolor()
tnColor=_Col2RGB(TxtColorRotulos)
Thisform.CmdColorRotulos.Caption = 'Color Rotulosr...'+Tncolor && Modificar Título del botón de comando.
Thisform.CmdColorRotulos.forecolor=&Tncolor
ENDDEFINE
DEFINE CLASS CmdColorInterior AS COMMANDBUTTON && Crea un botón de comando.
Caption = 'Color Interior...' && Título del botón de comando.
Left = 50 && Columna del botón de comando.
Top = 90 && Fila del botón de comando.
Height = 25 && Alto del botón de comando.
width=190 && Ancho del botón de comando.
ForeColor=RGB(0,255,0) && Color Verde
PROCEDURE Click
TxtColorInterior=getcolor()
tnColor=_Col2RGB(TxtColorInterior)
Thisform.CmdColorInterior.Caption = 'Color Interior...'+Tncolor && Modificar Título del botón de comando.
Thisform.CmdColorInterior.forecolor=&Tncolor
Thisform.CmdColorInterior.refresh
ENDDEFINE
DEFINE CLASS CmdGraficar AS COMMANDBUTTON && Crea un botón de comando.
Caption = 'Procesar Grafico...' && Título del botón de comando.
Left = 50 && Columna del botón de comando.
Top = 120 && Fila del botón de comando.
Height = 25 && Alto del botón de comando.
width=190 && Ancho del botón de comando.
picture="C:\graficos\Bmp\nubes.bmp"
PROCEDURE Click
Wait windows "Espere por favor mientras procesa el gráfico" nowait
x=Time()
public pantalla
pantalla = createobject("form")
pantalla.height=400
pantalla.width=700
Pantalla.Caption="Grafico Ms Graph 8.0"
Pantalla.Autocenter=.t.
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.
** Definir el tipo de grafico -4100 es xl3DColumn
pantalla.objeto.object.application.chart.charttype = -4100
** Definir las series que posee el grafico (en este caso una serie)
pantalla.objeto.object.application.datasheet.range("00").value = ""
pantalla.objeto.object.application.datasheet.range("01").value = "Ventas"
** Llevar valores para la columna A
pantalla.objeto.object.application.datasheet.range("A0").value = "Enero"
pantalla.objeto.object.application.datasheet.range("A1").value = 24
** Llevar valores para la columna B
pantalla.objeto.object.application.datasheet.range("B0").value = "Febrero"
pantalla.objeto.object.application.datasheet.range("B1").value = 48
** Borrar las filas que están llenas por defecto por el graph y no se van a utilizar
** si usted trabaja con 3 o más series no debe hacer lo siguiente.
pantalla.objeto.object.application.datasheet.rows("4").delete
pantalla.objeto.object.application.datasheet.rows("3").delete
** Borrar las columnas que están llenas por defecto por el graph y no se van a utilizar
** si usted trabaja con 4 o más columnas no debe hacer lo siguiente.
pantalla.objeto.object.application.datasheet.columns("5").delete
pantalla.objeto.object.application.datasheet.columns("4").delete
** Cambiar el titulo del grafico
pantalla.objeto.object.application.chart.hastitle = .t.
pantalla.objeto.object.application.chart.charttitle.text = "Ventas Bimestre"
** Permite Modificar el color de las series con el color verde.
pantalla.objeto.SeriesCollection(1).Interior.Color = TxtColorInterior && Seleccionado en le form.
** Lo siguiente activa el rótulo de datos del primer punto de la serie uno (1) del gráfico,
** y establece el texto del rótulo de datos.
With pantalla.objeto
With .SeriesCollection(1).Points(1)
.HasDataLabel = .t.
.DataLabel.Text = 24 && Valor de la columna A1.
.DataLabel.Font.color = TxtColorRotulos && Seleccionado en le form.
EndWith
EndWith
** Lo siguiente activa el rótulo de datos del segundo punto de la serie uno (1) del gráfico,
** y establece el texto del rótulo de datos.
With pantalla.objeto
With .SeriesCollection(1).Points(2)
.HasDataLabel = .t.
.DataLabel.Text = 44 && Valor de la columna B1
.DataLabel.Font.color = TxtColorRotulos && && Seleccionado en le form
EndWith
EndWith
** Modificar titulo, tamaño, color y fuente del eje X.
With pantalla.objeto.Axes(1)
.HasTitle = .t.
With .AxisTitle
.Caption = "Meses"
.Font.Name = "bookman"
.Font.Size = 20
.Font.color = TxtColorTitulos && Color seleccionado en el form
EndWith
EndWith
** Modificar titulo, tamaño, color y fuente del eje Y.
With pantalla.objeto.Axes(2)
.HasTitle = .t.
With .AxisTitle
.Caption = "Miles Pesos"
.Font.Name = "bookman"
.Font.Size = 20
.Font.color = TxtColorTitulos && Color seleccionado en el form.
EndWith
EndWith
pantalla.lockscreen = .f.
Wait windows "Proceso terminado" nowait
ENDDEFINE
*------------------------------------------------
FUNCTION _Col2RGB(tnColor)
*------------------------------------------------
* Pasa un número de color a formato RGB.
* USO: _Col2RGB(1547)
* RETORNA: Caracter - "RGB(nR, nG, nB)"
*------------------------------------------------
LOCAL lcRGB, ln
lcRGB="RGB("
FOR ln=1 TO 3
lcRGB=lcRGB+TRAN(tnColor%256,"999")+IIF(ln=3, "", ",")
tnColor=INT(tnColor/256)
ENDFOR
lcRGB=lcRGB+")"
RETURN lcRGB
Endfunc
--Devilzito--
Respuesta
1
El error de coherencia yo lo resolví instalando el sp1 de vfp 7, con referente al Msgraph realmente no te puedo ayudar mucho, cuando yo trabajaba en vfp 5.0 trate de usarlo y me fue muy complicado, por consiguiente me cambie a excel y ahora todos mis gráficos los hago por excel. Voy a verificar quien sabe de Msgraph y te aviso

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas