Gauge com Reporting Services

 

  • Neste artigo, vamos abordar mais conteúdo sobre como utilizar Gauge no Report Services. Gauge tem o objetivo de mostrar indicadores, além de ser muito utilizado em projetos de Business Intelligence (BI).

    Pra começar, precisamos de uma base de dados para exibir os gauges. Vou utilizar a modelagem abaixo, acompanhe:

    Para esse exemplo, peço que você insira alguns registros na tabela. Após inserir os registros, abra o SQL Server Business Intelligence Development Studio, clique em FileNew Project, selecione Report Server Project, dê um nome para seu projeto e clique em OK.

    Vamos criar uma conexão com nossa base de dados. No soluction explorer, clique com o botão direito em Shared Data Sources, selecione Add New Data Source e crie a conexão com sua base de dados.

    Ainda no soluction explorer, clique com o botão direito no mouse em Reports e selecione AddNew Reports, coloque um nome no seu relatório e clique em OK.

    Acesse o Report Data, caso ele não esteja visível (normalmente do lado esquerdo da tela), acesse o menu viewreport data.

    No Report Data, clique em NewDataSet, coloque um nome para o Data Set. Em Data Source clique em New, na tela seguinte, clique na opção Use Shared data source reference e selecione o Data Source que criamos anteriormente, e clique em OK.

    Precisamos definir nossa query agora, vamos usar a seguinte:

    SELECT C.CODIGOCATEGORIA,
           C.NOMECATEGORIA,
           SUM(D.QUANTIDADE) AS QUANTIDADEVENDIDA
      FROM DETALHESPEDIDO D INNER JOIN
           PRODUTO P on P.CODIGOPRODUTO = D.CODIGOPRODUTO INNER JOIN
           CATEGORIA C ON C.CODIGOCATEGORIA = P.CODIGOCATEGORIA
    GROUP BY C.CODIGOCATEGORIA, C.NOMECATEGORIA

    Essa query vai retornar a quantidade de produtos vendido por categoria. Clique em OK e teremos nossa query finalizada.

    Clique com o botão direito em qualquer parte do relatório (fundo branco) e selecione a opção InsertGauge. Veja que existem vários tipos de gauges disponíveis para utilizamos. Nesse caso, vamos utilizar o modelo 180 Degress North, conforme imagem abaixo:

    Acesse as propriedades do gauge e procure pela propriedade RadialGauge e acesse essa propriedade para que a tela RadialGauge Collection Editor seja aberta. Procure a propriedade Scales e a acesse para que a tela RadialScale seja aberta.

    Procure a propriedade Maximum Value e altere seu valor para 10 mil. Procure a propriedade Ranges e acesse para abrir a tela RadialRange Collection Editor.

    Já existe um RadialRange adicionado, você deve adicionar mais três. Altere as seguinte propriedades de cada range:

    Range 1:

    • FillGradientEndColor: Red
    • FillGradientType: StarToEnd
    • EndValue: 2000
    • StartValue: 0
    • DistanceFromScale: 0
    • Placement: Outside
    • StarWidth: 50

    Range 2:

    • FillGradientEndColor: Gold
    • FillGradientType: StarToEnd;
    • EndValue: 5000
    • StarValue: 2001
    • DistanceFromScale: 0
    • Placement: Outside
    • StarWidth: 50

    Range 3:

    • FillGradientEndColor: Lime
    • FillGradientType: StarToEnd;
    • EndValue: 7500
    • StarValue: 5001
    • DistanceFromScale: 0
    • Placement: Outside
    • StarWidth: 50

    Range 4:

    • FillGradientEndColor: Blue
    • FillGradientType: StarToEnd;
    • EndValue: 10000
    • StarValue: 7501
    • DistanceFromScale: 0
    • Placement: Outside
    • StarWidth: 50

    Com as propriedades configuradas, nosso gauge deve ficar como da imagem abaixo:

    Agora selecione a propriedade do gauge e procure pela propriedade DataSetName e coloque o DataSet que você criou anteriormente.

    Acesse o Report Data, abra os campos de seu dataset e arraste o campo QUANTIDADEVENDIDA acima do gauge conforme imagem abaixo:

    Falta pouco para terminar nosso projeto, mas antes quero explicar o que estamos fazendo.

    Imagine uma empresa que vende produtos e define algumas metas, por exemplo, todos os produtos precisam ser vendidos acima de 5001 unidades ao mês. Então definimos em nosso gauge que se a venda do produto for até 2000 unidades, o gauge está no vermelho, mostrando que o produto está longe da meta. Caso sejam vendidos entre 2001 a 5000 itens, a cor de indicação é a gold (amarelo), mostrando que o produto merece atenção, já que o produto ainda não atingiu a meta por completo.

    Acima de 5001, fica definida a cor verde, mostrando que a venda está na meta. Se ainda houver vendas acima de 7500 itens, o gauge indicará azul, que mostra que o trabalho de vendas está indo muito bem, obrigado.

    Com tudo explicado, só falta um detalhe - recordando nossa query, não utilizamos filtros e o gauge deve indicar somente uma categoria, então vamos filtrar o dado. Clique com o botão direito do mouse sobre o gauge e selecione Gauge Panel Properties e selecione a opção filters.

    Clique no botão Add para que seja permitido adicionar um filtro, então clique no botão Fx para digitarmos uma fórmula. Digite a seguinte fórmula:

    =CInt(Fields!CODIGOCATEGORIA.Value)

    Para finalizar nosso projeto, selecione as propriedades do Gauge e acesse a propriedade Labels. Em GaugeLabel Collection Editor, clique no botão Add e nas propriedades, do lado direito, procure por Text. Clique em Text e em Expression e digite. Clique em OK, selecione o filtro como Integer, o operador como igual (=) e Value como 1 clique em OK.

    =Fields!NOMECATEGORIA.Value

    Altere também as propriedades Top = 3 e Left = 8.

    Pronto! Nosso projeto chegou ao fim, clique em Preview para ver o resultado. Você pode duplicar os gauges e apenas alterar o filtro para ter vários resultados. Veja como ficou meu relatório abaixo: