Pergunta

No ActiveReports, como posso alterar a formatação com base nos valores nos dados do relatório?

Especificamente, quero mostrar ou ocultar imagens com base em um valor nos dados. O relatório é vinculado a uma lista de objetos por meio de um conjunto para sua propriedade DataSource. Esses objetos têm um Condition Propriedade com valores "pobre", "normal", etc. Tenho algumas fotos no relatório que correspondem às diferentes condições e quero ocultar todas as imagens, exceto a correspondente ao valor.

Devo assinar o Format Evento para a seção de detalhes? Se sim, como faço para chegar aos dados do "registro atual"?

Foi útil?

Solução

Ok, ainda não sei como obter o objeto de dados atual, mas descobri que você pode usar o relatório Fields propriedade para recuperar valores do objeto de dados atual.

O código abaixo se inscreve na seção de detalhes Format evento. Fields["Condition"].Value obtém o valor do objeto de dados atual Condition Propriedade (que por acaso é um valor de enumeração).

    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:

Desde então, aprendi que o acesso à coleção Fields a partir de um evento de formato é contra as regras do ActiveReports Design, porque não funciona em certos casos de esquina estranhos. Agora eu uso este método: http://www.datadynamics.com/forums/showpost.aspx?postid=133642#133642

A Datadynamics possui uma solicitação de recurso 22786 para fornecer acesso aos objetos de dados a partir de eventos de formato.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top