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: