Está en la página 1de 16
Mostrando e imprimiendo graficos Un muy buen valor agregadio que podemos darle a nuestras aplicaciones es que permitan mostrar geificos e imprimirlos. Hay muchas formas de conseguir ese objetivo con Visual FoxPro, aqui se muestra una de esas ténicas. Para ello, haremos uso de las, bibliotecas de clases visuales llamadas: FOXCHARTS.VCX y GDIPLUS.VCX y de los archivos de aplicacién REPORTOUTPUT.APP y SYSTEM.APP, Estas bibliotecas de clases visuales y los archivos de aplicacién debes copiarlos en la misma carpeta donde se encuentra tu archivo EXE. ‘en alguna de las carpetas del PATH de bisqueda GDIPLUS.VCX es una biblioteca grifica y es ampliamente usada. FOXCHARTS.VCX es la biblioteca que contiene las funcionalidades que ahora nos interesan, pero depende de GDIPLUS.VCX, por lo cual ésta debe también ser accesible REPORTOUTPUT.APP es requerido para tener las caracteristicas de objetos de informes, SYSTEM.APP es parte de GDIPLUS.VCX y es requerido para que los graficos funcionen. Nuestro primer paso serd crear un formulario e insertar un control FoxCharts en ese formulario, tal y como podemos ver en la Captura 1 Fe Tere EEE Ee ee ee fom fom ioe Popa Mw Hp = fee Fame Fs o (Oee@oiteeo- |! oom sao Captura 1. El aspecto del formulario después de insertarle un control FoxChart El segundo paso seri cambiarle el nombre al control FoxCharts insertado. Su nombre por defecto es FoxCharts1 pero para que sea mis corto serd abreviado a FCI. A continuacién agregaremos un control Combobox que mostraré todos los tipos de graficos disponibles, un botén «Grabar grifico» para poder grabar el grafico que esté visible y un botén «imprimir grafico» para poder imprimir ese prio. IMPORTANTE: A Ia propiedad Value del Combobox detes asignarle un valor entre 1 y 17. Si nolo haces, obtendrds un mensaje de error porque por defecto la propiedad Value de un Combobox es de tipo cardcter. Captura 2. Después de insertarle un Combobox y dos botones al formulario Listado 1, El método INIT del formulario DEFINE CLR1 Rgb(255, 255, 0) DEFINE CLR2 Rgb(255, @, 255) DEFINE CLRI3 Rgb(255, 255, 224) DEFINE CLR RED( DEFINE CLALS RED( DEFINE CLAIG RED CREATE CURSOR CURSOR_GRAY @, 255, 255) @, 0, 255) @, 255, @) 1 (TEM_CFILL1 C(80), TEM_LFILLT L, TEMLFILL2 L, TEMNFILLI N(2€ INSERT INTO CURSOR_GRAFICOL ; (TeM_cFILLA, VALUES ("Ene” , .F. TEM_LFILLA, TEM_LFILL2, » 1280, CLR1) INSERT INTO CURSOR_GRAFICOL ; (TEM_CFILLA, VALUES ("Feb” , -F. TEM_LFILLL, TEM_LFILL2, » 2150, CLR 2) INSERT INTO CURSOR_GRAFICOL 5 (TEM_CFILLA, VALUES ("Mar” , .F TEM LFILLA, TEM LFILL2, 5 +P, 3020, CLR 3) INSERT TNTO CURSOR_GRAFICOL ; (Tem_crrtta, VALUES ("Aabr” , oF TeM_LFTLLA, TEM_LFTLL2, » oF. , Iie, CR4) INSERT INTO CURSOR_GRAFICOL ; (TEM_CFILLA, VALUES ("May” , =F. TEM_LFILLA, TEM_LFILL2, » 1948, CLRS ) INSERT INTO CURSOR_GRAFICOL 5 (TeEM_cFILLA, VALUES ("3un” , Fe WITH ThisFoom.Fc2 TEM_LFILLL, TEM _LFILL2, » 2104, LRG ) TEM_NFILLA, TEM_NFILLA, TEM _NFILU, TEM_NFILU, TEM_NFILU, TEM_NFILLA, TEM_NFILU TeM_NFLLL TEM_NFILL TEM_NFTLL TEM_NFILL TEM_NFLLL 42 -ChartsCount 1 a8 Cantidad de colunn 43 ‘Fieleaxis2 TEMCFILLA" —&& Etiquetas que se x 44 iFlelecolor NFILL2" && Colores que tendré 43 ‘Flelebetachslice LFILLI" && Las porciones ser 46 FieleHideslice && Las porclones ser a7 ‘Flelategend && Leyenda que se mos 43 ‘Fields(1).Fieldvalue 28 Valor nunérico de 49 Fielés(1) -Legend && Cuando hay mas de 50 Fields(1) -Color RGB(@, @, 128) 88 Azul oscuro 51 ‘Fielas(1)-shape = 1 88 Estrella 52 ‘Sourcealias ‘CURSOR_GRAFICO1 53 ‘SubTitle.caption ‘Conpras del primer senestre” 54 ‘Title.Caption Mi Gran Empresa S.A." 55 ‘visible 1. 56 Didvcis Caption Meses: 57 lyaxds {Caption ‘en délares” 58 ‘Drawchart() 59 | _ ENDWITH 60 | ThisForm.Conbo1.Value = 1 61 | -DODEFAULT() 62 63 | RETURN ea) * 65 | * LLos valores ingresados en CURSOR_GRAFICOI son un ejemplo, ti debes obtener y colocar los valores correctos en el campo ‘TEM_NFILLI. Similarmente, los colores puestos en la columna TEM_NFILL2 también son un ejemplo, tt puedes poner cualquier color que te gust. Y desde luego no hace falta que tu cursor se lame CURSOR_GRAFICOI ni que los campos se llamen TEM_CFILL1, TEM_NFILLI, ‘TEM_NFILL2, etc Listado 2, El métade LOADO del formulario _REPORTOUTPUT = FULLPATH("REPORTOUTPUT.APP") Do SYSTEM. APP RETURN 1| — this.adgProperty(*acharts(1]") 2 3 | DIMENSION This.acharts(17) 4 S| WITH this 6 -acharts( 1) = Torta " 7 ‘acharts( 2) = rosea" a ‘acharts( 3) = Bareas apiladas-conpletas 9 ‘acharts( 4) = Puntos 10 ‘acharts( 5) = Lineas * n ‘acharts( 6) = Area * 2 “acharts( 7) > Barras simples * B ‘acharts( 8) > Barras miltiples * 4 ‘acharts( 9) = Barras apiladas ” 15 ‘acharts(10) = Area apilads * 16 ‘acharts(11) = Barras en 30 " v ‘acharts (12) = Barras simples horizontales * 18 ‘acnarts(13) = Barras Ultiples horizontales * 19 acharts(i4) = "14 - Barras apiladas horizontales 20 ‘acharts(15) = "15 - Barras apiladas horizontales completas" 2 ‘acharts(16) = "16 - Area apiiada completa 22 acharts(17) = "17 = Barras horizontales enparejadas * 23 RowSourceType = 5 && Array 2a ‘Rowsource = “Tais.acharts" 25) ENO!TTH 26 27 | RETURN 23) + 23 | + 2] LOCAL Inchart 2 3) Inchart = This.Value 4 S| IF Inchart == 2 THEN && Rosca 6 ThisForm.FC1.Shadow = .F. 7| ENDIF a 9| IF Inchart == 16 THEN && No funciona, siempre muestra un mens 10 RETURN a | eNoIF 2 33 | RETURN ule as | * —_—_=____ » Listado 5. El método VALIDO del Combat 2] LOCAL Inchart 2 3) Inchart = This.ListIndex 4 5| IF Anchart = 16 THEN 8% No funciona, siempre muestra un mens 6 RETURN 7 | ENDIF 8 9| WITH ThisForm.Fe1 10 sChartType = Inchart ua ‘orawchart() | enowrt a aa | RETURN as) * ae | * 6 > 1] LOCAL LeIngFormatTypes, 1cFile 2 3 | — etngFormatTypes = “BNP52G;GIFSPNGSTZE; EME" 4 5 | 1cFile = PutFile("Grabar imagen como...", "", IcIngFormatTypes) 6 7 | IF Empty(1cFile) THEN 88 Nonbre de archivo invalido a RETURN (.F.) 9| ENDIF 10 11 | ThisForm.Fc1.SaveToFile(IcFile) 2 33 | RETURN aa) * as| * Listado 7, El método CLICK() del botfin «Imprimir gréficon PRIVATE oF oxChart SET REPORTBEHAVIOR 90 oFoxchart = ThisForm.FC1.chartCanvas REPORT FORM FoxchartsView PREVIEW NOWALT RETURN BB emvausunn Algunos ejemplos: Mi Gran Empresa S.A. Compras del vimer semestre Captura 3, Un grifico de torta mostrado en el formulario ves Mi Gran Empresa S.A Captura 4. Un grafico de rosea mostrado en el formulario ‘Mi Gran Empresa S.A Compras de primer semeste Captura 5. Un grifico de lineas mostrado en el formulario, Mi Gran Empresa S.A. Compras del pmer samests Captura 6, Un grafico de barras simples mostrado en el formulario Mi Gran Empresa S.A. Captura 7. Un grifico de barras simples pero mostradas horizontalmente Conclusin: Las aplicaciones que pueden mostrarles graficos a los usuarios tienen un plus, porque como sabemnos «un grifico vale més que mil palabras», En este articulo hemos visto lo facil que resulta mostrar grificos de buena calidad. El control FOXCHART tiene muchisimas més opciones y ya queda a tu cargo investigarlas,incluir esas opciones en este articulo del blog ya lo hubiera alargado demasiado, Pero con lo visto hasta aqui ya tienes para mostrar graficos vistosos a tus usuarios. El indice del blog VEPavanzado Descargas: |htspulluvww mediafire com/file/35343hrepdSdm31/GR%C3%81FICOS ZIP

También podría gustarte