Reportes Simples usando Word-Correspondencia

Entrada mega corta, simplemente para compartir esta “forma” de generar reportes desde Word, usando la herramienta de Correspondencia.

Para un sistema que me pidieron, tuve que imprimir ciertos datos sobre una hoja de papel a modo de plantilla.

Originalmente pensé hacerlo con Crystal Reports, pero no tenía el instalador, y no quería descargar/aprender a usarlo.

Así que se me ocurrió la forma de generar los reportes desde Word😀

Ahora, esta forma es casi a Fuerza Bruta … así que no es muy eficiente que digamos, pero hace el trabajo😉

Primero, generamos un diccionario (en mi caso C#) con el key/value correspondiente:

Dictionary<String, String> Data = new Dictionary<String, String>();
Data["FECHAINRESO"] = "01-01-2013";
Data["CUI"] = 12345;
Data["blabla"] = "blabla";

Y así con todas las variables que necesitamos.

Luego, pasamos el diccionario a un archivo .csv, de esta forma:

StringBuilder header = new StringBuilder();
StringBuilder values = new StringBuilder();
foreach (var value in this.DataNacimiento)
  {
    header.Append(value.Key).Append(";");
    values.Append(value.Value).Append(";");
  }
try
  {
    String RutaActa = @"C:\\DocActas\\Acta.csv";
    using (StreamWriter outfile = new StreamWriter(RutaActa))
    {
      outfile.Write(header.ToString()+"\n"+values.ToString());
    }
  }
catch (Exception ex)
  {
    Message.Show(ex.ToString());
  }

Y eso es todo, nos sale algo así: Captura

Ahora, vamos a Word y en Correspondencia, vamos a Seleccionar destinatarios y Usar lista existente. buscamos el archivo .csv que generamos.

Ahora, bajo Insertar campo combinado nos aparecen todas las variables. Es cosa de darle click a la que queramos y listo !

Un ejemplo: Captura

De esta forma, sabemos dónde insertar el campo cosa que, al imprimir quede sobre la plantilla.

Antes, obviamente, tenemos que eliminar la imagen de fondo y listo🙂

Para ver cómo va quedando, darle click a Vista previa de resultados

Acerca de MaritoCares

Ingeniero Informático. Con tendencias a la programación en [C#, VB].NET, Java(Web principalmente...), PHP, JavaScript, algo mínimo de [ruby, python], y el clásico C.
Esta entrada fue publicada en C#, Tips. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s