Data

13 abr, 2011

Gauge com Reporting Services

Publicidade

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:

Espero que tenham gostado e até a próxima.