Resulta que saco unos valores de una db, y con eso tengo que graficar, como lo podria hacer?
Hay algun componente que me genere una imagen para que los clientes la puedan ver?
Gracias!
| |||
Graficar con ASP ? Resulta que saco unos valores de una db, y con eso tengo que graficar, como lo podria hacer? Hay algun componente que me genere una imagen para que los clientes la puedan ver? Gracias!
__________________ I'm Windows. |
| |||
Claro que se puede. Puedes hacerlo con HTML, usando tablas, De forma más profesional yo uso owc. En este ultimo caso tendrías que estar un poco acostumbrado con VBA, me refiero a los objetos de excel. Ejemplo: Set pie = server.CreateObject("MSGraph.Chart") Set ds = pie.Application.DataSheet ds.Cells.Clear pie.Width = 500 pie.Height = 500 ds.Cells(1, 2).Value = "TITI alain" ds.Cells(2, 2).Value = "11,20" ds.Cells(1, 3).Value = "vient gérard" ds.Cells(2, 3).Value = "15" ds.Cells(1, 4).Value = "TOTO FABRICE" ds.Cells(2, 4).Value = "17" ds.Cells(1, 5).Value = "EMILE CLAUDE" ds.Cells(2, 5).Value = "19" ds.Cells(1, 6).Value = "BERNARD BERNARD" ds.Cells(2, 6).Value = "20" ds.Cells(1, 7).Value = "TUTU ALAIN" ds.Cells(2, 7).Value = "22" pie.ChartType = 99 pie.HasLegend = true pie.HasTitle = true pie.ChartTitle.Text = "A test Chart" pie.Legend.Font.Size = 50 pie.Legend.AutoScaleFont = false pie.ApplyDataLabels pie.SeriesCollection(1).DataLabels.AutoScaleFont = True pie.SeriesCollection(1).DataLabels.Font.Size = 8 pie.ChartArea.Interior.ColorIndex = 2 pie.PlotArea.Width = 200 pie.PlotArea.Height = 200 tFile = Server.MapPath("pie.gif") pie.Export tFile %> <img src="pie.gif"> |
| |||
Estoy probando el ejemplo y me da este error: Tipo de error: Error de Microsoft VBScript en tiempo de ejecución (0x800A03EC) Error desconocido en tiempo de ejecución /sitios/index2.asp, line 38 y la linea 38 es: pie.Export tFile A la carpeta le di permisos de escritura, pero sigue dando el error... :(
__________________ I'm Windows. |
| ||||
Puede que no sea eso, pero ¿te has acordado de abrir la etiqueta de ASP (<%)? A orharo2003 se le escapó. A mí el ejemplo me funcionó sin cambiar absolutamente nada.
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
Asi es, se me paso el <% ... Algunos puntos que faltaron por mencionar: El archivo pie.gif (o ponerle el nombre que sea) debera de existir, aunque no tenga nada, ya que se utilizará para escribir el resultado. En cuanto a los tipos,(ChartType) mencionar que solo funcionan con constantes. |
| ||||
Yo grafico con applets, solo bajo alguno de los cientos que hay gratis o no (total, se decompilan y listo) y los modifico. Tambien son buena alternativa. En cuanto este ejemplo, la linea "pie.Export tFile" me sigue dando error. Supongo por que tengo MSOffice 2003, ya que he gastado algo de tiempo (http://www.aspfr.com/code.aspx?ID=8657) y lo logro hechar a andar. Última edición por Myakire; 08/07/2004 a las 08:23 |
| ||||
A mí se me creó pie.gif solo, sin que hiciera nada más. En cuanto a lo de ChartType, ¿a qué te refieres con constantes? Probé, por ejemplo con ChartType = xlArea y no funcionaba, pero sí con ChartType = 1, que es lo mismo. Por cierto, yo tengo el Office XP.
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
gráfico en la caché? Hoñaaa! Coincido con meru-kun, muy bueno orharo2003!! Pero a propósito del tema... cómo hacer para que se refresque la gráfica si cambian los datos? Quiero decir, el archivo "pie.gif" sí se actualiza, evidentemente, pero como también está en la caché del sistema pues no se ve a menos que se pulse F5, por ejemplo. He probado con las cabeceras "no-cache" y "no-store" pero como si nada. Como se puede hacer para que el gráfico no quede almacenado en caché y cada vez que muestres el IMG que apunta al gráfico recién generado se muestre correctamente? En fin, no sé si me he explicado Gracias saludos = saludos + 1
__________________ Et lux in tenebris lucet... s.f.wil |
| |||
wilby, para que se te actualicen automaticamente los datos, tendrias que ponerle un tag html del tipo refresh... abajo pego un ejemplo... el numero 10 es cada cuantos segundo se refresca, y luego llama a la misma pagina donde se genera el grafico... <META HTTP-EQUIV=Refresh CONTENT="10; URL=pagina.asp"> Martyn, el error que te da en la segunda linea puede ser porque no tienes instalado el Office 2000, y/o OWC (Office Web Components, creo que era)... Ahora viene otra consulta, como puedo cargarle los parametros para graficas si los saco de una DB con SQL por ejemplo SELECT * FROM TABLA? Saludos!
__________________ I'm Windows. Última edición por Windows; 09/07/2004 a las 17:43 |
| ||||
Pues supongo que símplemente cambiando los valores por los que obtienes de la tabla. Haces la consulta a la base de datos, guardas esos datos dentro de variables o directamente los metes en el gráfico: ds.Cells(1, 2).Value = RS("Categoría") ds.Cells(2, 2).Value = RS("Valor")
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
Hola Bravenap, si lo hago de esa forma, tendria que ir llenando todas las celdas una por una no? moviendo el recordset, y con variable para Cells(a,b), seria asi ? Saludos...
__________________ I'm Windows. |
| ||||
Sí, claro, supongo que esa es la única forma. Sabes cómo hacerla ¿no?
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
si, ya estoy haciendo algunas pruebas... ahora si yo quisiera que se pudiera seleccionar una zona determinada de la imagen y hacer un zoom ? se podria ? gracias!
__________________ I'm Windows. |
| ||||
Ufff.... eso ya es harina de otro costal. Me parece que lo que a lo mejor quieres es quitar la leyenda ¿no? Aparece como un cuadro un poco feo a mi parecer. Lo del zoom ya sería utilizando componentes ASP de otro tipo (problemas con el servidor) o bien mediante capas (clip) en XHTML y CSS, pero tendrías que cargar toda la imagen igualmente.
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
claro, si, una vez que obtengo la imagen, no se si se podra generar un maparea o algo por el estilo, para tener referencias y asi poder generar otra consulta con los datos para hacer un tipo zoom... en cuanto a la leyenda si, seria interesante poder quitarla... ahora no puedo probar bien el script porque me empezo a dar otra vez el error 0x800A03EC, justo en la linea donde hace el export, no se si sera por los permisos (aunque ya los revise a todos) o porque ahora estoy usando una version de office 97 y antes era 2000, no se si tendran el mismo componente... saludos!
__________________ I'm Windows. |
| ||||
supongo que podrías hacerlo cambiando el tipo de gráfico. Prueba con: pie.ChartType = 102
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| ||||
hola, alguien tiene una tabla de valores con el numero de todas los tipos de grafica, por ejemplo el numero para graficas circulares, el numero para barras, etc? gracias
__________________ Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia http://www.controldevisitantes.com |
| ||||
Como ya había indicado antes, no es exactamente una tabla con los valores pero puedes encontrarlo en el examinador de objetos de VBA. Vas a Excel, pulsas Alt+F11 y se abre el editor de Visual Basic. Una vez allí pulsas F2 (examinador de objetos) y buscas XlChartType. Esta clase contiene una serie de miembros que son precisamente todos los tipos de gráficos que se soportan. Pulsando sobre cada uno de ellos aparece en la descripición algo así: Const xlConeBarClustered = 102 (&H66) Miembro de Excel.XlChartType El número en negrita te indica lo que tienes que poner en el código ASP: pie.ChartType = 102 'Conos pie.ChartType = 70 'Supongo que el gráfico de tarta etc. Un saludo. PD: si alguien se lo curra que ponga la lista completa de tipos de gráficos, je je.
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| |||
excelente dato! ;) yo sigo sin poder cambiar la escala... porque lo que quiero es darle un rango en el eje Y, para que me grafique, no necesito cambiar el tipo de grafico... se podra para el charttype 4 ?
__________________ I'm Windows. |
| ||||
Lo único que te puedo decir es que intentes hacer todos esos cambios que quieres en Excel mientras grabas una Macro con VBA. Luego, mirando el código generado puede que obtengas pistas de cómo hacerlo. A mí esto me ha resultado bastante útil en muchas ocasiones, aunque no para lo mismo, claro. Un saludo y suerte.
__________________ ¡¡NO A LA GUERRA!! Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares! |
| ||||
Segui todos los pasosy me marca el siguiente error a ver si alguien me puede ayuda Error de Microsoft VBScript en tiempo de ejecución (0x800A03EC) Error desconocido en tiempo de ejecución /goya/grafica.asp, line 38 siguiendo el mismo codigo |