cracks for soft
cracksmachine
cracks serials db
crackssearchdb
download rapidshare files
downloadcracksdb
free cracks 4 all
download free serials
dola dll warez
keygen machine
Mono, Gnome.Print y Pango « il libero

Het downloaden van klingeltöne, Download von klingeltöne, Het downloaden van klingeltöne, Descargar tonos, Téléchargez des sonneries, scarica suonerie, Beltonen downloaden, Nedlasting av ringetoner, Download ringtones

Mono, Gnome.Print y Pango

Cuando entregamos el TP de diseño, Catedrax usaba como generador de reportes a NeoDataType. Éste es un generador gratuito, pero no libre, por lo que decidimos dejar de usarlo.

Me puse a buscar en SourceForge algún reemplazo, pero no encontré nada que convenza. Ahora un requisito más es que funcione con Mono, ya que nos pasamos a esta implementación libre de .NET.

Entonces me puse a ver la documentación de Gnome.Print (API de impresión para Gnome), y probé algunos ejemplos. Ahora tengo armado un proyecto, MonoReporter, un generador de reportes para Mono. Pronto, cuando tenga algo mas pulido, lo voy a publicar.

Pango es una API para manejo avanzado de fuentes. Lo empecé a utilizar cuando vi la necesidad de centrar un texto en una celda, por ejemplo. Es decir, para centrarlo necesito las medidas del texto, y esto no se puede hacer con Gnome.Print. Es necesario algo mas avanzado.

Por ahora, éste es el código necesario para crear un reporte:

Reporte reporte = new Reporte ("Reporte de prueba", 75, 50, 75, 50);
Pagina pagina = reporte.AgregarPagina();

string[][] datos = new string[10][];
for (int i=0; i<datos.Length; i++)
        datos[i] = new string[3];

datos[0][0] = "Nombre";
datos[0][1] = "Apellido";
datos[0][2] = "Ciudad";

datos[1][0] = "Milton";
datos[1][1] = "Pividori";
datos[1][2] = "Avellaneda";

datos[2][0] = "Nombre1";
datos[2][1] = "Apellido1";
datos[2][2] = "Ciudad1";

double[] anchura = {125, 125, 200};
Tabla tabla = new Tabla (pagina, 55, 800, "Listado de alumnos", datos, anchura);
pagina.AgregarObjeto(tabla);
reporte.Imprimir();

Ese código genera esto:

Jugando con Eufruncio

Si, es un reporte MUY humilde. Pero lo importante es que los pasos básicos ya estan hechos.

Hay cosas que están de más en el código anterior: El usuario no debería agregar las páginas, de esto se encargaría MonoReporter. Eso es verdad, pero por cuestiones de pruebas, va a quedar así hasta que libere una versión funcional. Otra cuestión es el array de arrays de strings: no debería ir eso, sino un DataTable.

Estaría bueno poder usar algo ya existente, como JasperReports, pero éste esta disponible sólo para Java. Aca podemos hablar de una de las ventajas del framework .NET: independencia del lenguaje. Hay un proyecto, IKVM.NET, que intenta ser una implementación de Java para .NET y Mono. Lamentablemente, aunque goza de un desarrollo activo, carece de una buena implementación de AWT (usado por JasperReports), y de la página del proyecto leemos:

IKVM.AWT.WinForms.dll: Very limited and broken implementation of a few AWT peers. This is a low priority issue for me.

Por lo que no esperemos usar, por lo menos en el corto plazo, ese generador de reportes. Yo seguiré con MonoRerpoter…

Google
 

  • Hola Lucas, muchas gracias por tu comentario e indicaciones.

    A MonoReporter lo dejé por bastante tiempo. Hace unos meses que comencé con su desarrollo otra vez, pero ahora utilizando GtkPrint, la nueva API de impresión de Gtk. Lo que hago es diseñar el reporte en un SVG con Inkscape, leerlo desde MonoReporter y traducirlo a las instrucciones correctas para que forme un archivo PDF, o lo mandes a imprimir, lo que sea que permita GtkPrint.

    Pronto un post sobre esto :)
  • Lucas Arteaga
    Que bueno!!! hace mucha falta esa herramienta.
    Aunque he estado estos dias en la labor de busqueda de herramientas y creo que algo que tendria mucho exito seria una que ejecute reportes en formato JasperReports en Mono. Para diseño se podria seguir usando iReport con java por supuesto, pero en ambiente de produccion no es necesario, por lo menos en primera instancia, el diseñador.

    Seria mejor enfocar tu proyecto a esta idea. Por lo menos se partiria ya de un diseño ya probado.
  • Exacto, no se veían los tabs. Probé con pre, pero no paso nada... :( El editor visual de WP no me agrada mucho. Sebastián me recomendó bajarme algún otro plugin para eso (edición)... ¿vos usas el que viene en wp? ¿no tenes estos problemas a veces? ¿o sino que a veces, sin una razón, se descompagina todo?
  • btw, a que te referís con que no se veía bien el código en WP? No salían los tabs? Probá poner el código entre marcas <pre>
  • Muy bueno MIlton!
blog comments powered by Disqus