Errores-de-estructura-al-disenar-informes-RDLC-como-solucionarlos

Errores de estructura al diseñar informes RDLC y cómo solucionarlos

Sandra CruzTutoriales Leave a Comment

Cuando necesitamos crear un informe en Microsoft Dynamics NAV/BC la parte del diseño suele ser la más compleja. Da igual qué herramienta de las permitidas utilicemos (Microsoft Visual Studio, Microsoft SQL Report Builder…). Las características a tener en cuenta son prácticamente las mismas, al igual que los fallos generados por no seguirlas.

En este artículo hablaremos de algunos errores que podemos encontrarnos a la hora de probar nuestros informes RDLC y cómo solucionarlos para no volvernos locos buscando dónde está el problema. ¿Empezamos?

Al imprimir se solapan tablas diferentes:

Puede ocurrir que al imprimir un report, la información aparezca solapada. Como consecuencia, no podemos ver bien el contenido.

El problema vendrá porque esos objetos Tablix en el layout estarán solapados. Es muy común añadir una tabla con líneas de detalle, y que debajo de esa tabla haya otra con p. ej. comentarios. Creamos ambas tablas y ajustamos los espacios. Pero de repente, necesitamos crear más líneas en nuestra tabla de detalle, con lo que realizamos la acción Nueva línea y añadimos el contenido a nuestra línea sin acordarnos del resto de tablas.

Al-imprimir-se-solapan-tablas-diferentes-informes-RDLC

Si dejamos así el informe y probamos, la información del cuadro de arriba se verá solapada por la información del cuadro de abajo. Un caso así se soluciona revisando las tablas que tengas en tu layout y separándolas.

Al-imprimir-se-solapan-tablas-diferentes-informes-RDLC-2

Al imprimir un rango de documentos, lo mezcla todo en una página

Imaginad un rango de documentos de venta, que al imprimirlo obtenéis toda la información mezclada en una sola página, cuando lo que vosotros queríais es obtener un registro por página. ¿Qué puede haber pasado?

  • En la tabla principal que conforme el cuerpo, no se indique que se realice un salto de página por cada cambio de grupo. En esa tabla principal se debe haber creado una agrupación por nº documento en la que se configure el salto de página como hemos indicado.
Realizar-salto-de-pagina-informes-RDLC
  • O puede ser que, directamente, no se haya creado una tabla general para estructurar el cuerpo, sino que directamente en la sección Cuerpo se hayan empezado a añadir las tablas para imprimir la información.

El cuerpo de un informe debe estructurarse de la siguiente forma:

  1. Primero creamos una tabla en la que solo dejamos una celda (no la celda de detalle, la que genera de cabecera). Pondremos a esta tabla un nombre para poder buscarla desde las Propiedades, por ejemplo list1.
  2. En las Propiedades de esta tabla, estableceremos como Nombre del conjunto de datos “Dataset_Result”, para obtener toda la información del conjunto de datos del informe.
  3. Dentro de esta celda, insertaremos un rectángulo. También es conveniente que le demos un nombre significativo, de forma que identifiquemos rápidamente si los objetos que lo conforman lo tienen como Parent. Por ejemplo, list1_contents.
  4. Una vez tengamos esto, podemos ir creando dentro de este rectángulo todas las tablas u objetos que necesitemos para mostrar la información. Los objetos que necesitemos deben tener como Parent al rectángulo generado, o no mostrarán bien la información.
  5. Por último, en el caso de, por ejemplo, los documentos de venta, esta tabla inicial (list1) tendrá que tener una agrupación sobre la que queramos que el informe haga un salto de página al imprimir un rango de documentos. En esta agrupación, configuraremos el campo que agrupa, e indicaremos que se realizará un salto de página por cada instancia en ese grupo.
Agrupacion-salto-de-pagina-informes-RDLC

Al imprimir un rango de documentos, la cabecera es igual en todos los documentos

Es muy común realizar una impresión con rango cuando se trata de documentos, ya sean de venta, compra… de forma que ahorramos tiempo al no tener que ir imprimiendo uno por uno. Pero podemos encontrarnos al probar nuestros informes con que los datos que aparecen en la cabecera (nº documento, datos de cliente, etc.) son los mismos para todos los documentos, aunque sabemos que no es verdad. Aquí pueden darse dos problemas:

  1. Hemos puesto campos en la cabecera directamente, en vez de referenciarlos mediante getdata.
  2. Hemos referenciado los datos mediante getdata, pero el textbox que incluye la sentencia setdata no está bien configurado

En el caso 1, habría que revisar si los campos que necesitamos mostrar están configurados en el textbox donde se configura en SetData. Una vez comprobados (y añadidos si es necesario), se configurarán en los campos correspondientes de la cabecera.

El caso 2 se nos puede dar ya desde el principio, o una vez hayamos realizado los cambios del caso 1. En este caso habría que revisar la propiedad Parent de la tabla que contengan el textbox con el SetData. ¿Por qué? Porque lo más probable es que no esté apuntando al rectángulo contenedor del cuerpo (recordemos lo explicado antes para la creación del cuerpo, primero tabla, después rectángulo, y entonces ya ir añadiendo dentro las distintas tablas que formen nuestro informe, siempre con el rectángulo como Parent). Tendremos que mover esa tabla de sitio para que el layout recoja al rectángulo como su Parent.

¡Espero que estas anotaciones os ayuden en vuestros futuros diseños!

Sandra-Cruz-Aitana

Sandra Cruz
Dynamics

Deja un comentario