Pregunta

En ActiveReports, ¿cómo puedo cambiar el formato basado en los valores de los datos del informe?

En concreto, quiero mostrar u ocultar las imágenes en base a un valor de los datos. El informe se une a una lista de objetos a través de un conjunto de su propiedad DataSource. Estos objetos tienen una propiedad Condition con los valores "pobre", "Normal", etc. Tengo algunas fotos en el informe que correspondan a las diferentes condiciones, y quiero ocultar todas las imágenes excepto la correspondiente al valor.

¿Debo suscribirse al evento Format para la sección de detalle? Si es así, ¿Cómo llego a los datos del mensaje "actual"?

¿Fue útil?

Solución

Ok, yo todavía no sé cómo conseguir el objeto de datos actual, pero he descubierto que puede utilizar la propiedad Fields del informe para recuperar valores fuera del objeto de datos actual.

El código de abajo suscribe al evento Format de la sección de detalle. Fields["Condition"].Value obtiene el valor de la propiedad Condition del objeto de datos actual (que pasa a ser un valor de enumeración).

    private void detail_Format(object sender, EventArgs e)
    {
        Condition? condition = Fields["Condition"].Value as Condition?;

        conditionUnknownPicture.Visible = (condition == Condition.Unknown);
        conditionPoorPicture.Visible = (condition == Condition.Poor);
        conditionNormalPicture.Visible = (condition == Condition.Normal);
        conditionNewPicture.Visible = (condition == Condition.New);
    }

Editar

He aprendido que el acceso a la colección Fields de un evento Format está en contra de las reglas de diseño ActiveReports, ya que no funciona en ciertos casos de esquina extraños. Ahora utilizo este método en lugar: http://www.datadynamics.com /forums/ShowPost.aspx?PostID=133642#133642

DataDynamics tiene una solicitud de función 22786 para proporcionar acceso a los objetos de datos de eventos de formato.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top