Baixar capítulo de amostra

Propaganda
Parte 1
Começando
Capítulo 1
Vamos Começar Bem do
Princípio
Neste Capítulo
„Compartilhando Inteligência de
Negócios
„Arquitetura de Construção de
Relatórios (Report Authoring
Architecture)
„Arquitetura de Servidor de
Relatório (Report-Serving
Architecture)
„Conhecendo o Produto
4 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
O
SQL Server 2000 Reporting Services foi a introdução da Microsoft na
arena dos relatórios baseados na web. Essa primeira versão do Reporting
Services permitia que você compartilhasse facilmente informação de
negócios – o que é comumente chamado hoje em dia de “inteligência de negócios” –
com a gerência, colegas de trabalho, parceiros de negócios e clientes do mundo todo.
Num local de trabalho interconectado, faz sentido que sua solução de relatório ofereça
comunicação que abranja toda a empresa, todo o país e até mesmo o mundo todo.
O SQL Server 2005 Reporting Services se fundamentou no sucesso do original.
Enquanto a metade dos aspectos da versão 2005 do SQL Server representava uma plataforma completamente nova, o Reporting Services simplesmente acrescentava à sólida
base proporcionada pela sua versão anterior para tornar um produto ainda melhor. A
versão 2005 fornecia um ambiente adicional report-authoring, melhorava recursos de
desenvolvimento de relatório, e incrementava capacidades para distribuir relatórios.
Agora, a versão 2008 do SQL Server traz importantes mudanças no Reporting Services. O processamento dos relatórios e a ferramenta de rendering foram completamente
redesenhados. Isto permitiu que o Reporting Services se tornasse mais robusto, especialmente ao renderizar relatórios extensos. Essa revisão conduziu a várias outras mudanças.
A estrutura de definição do relatório agora inclui algo chamado tablix, um item de
relatório cujo nome e definição representam a combinação dos itens de relatório tabela
(table) e matriz (matrix). O tablix permite maior flexibilidade no layout do relatório
enquanto na verdade simplifica o trabalho interno da ferramenta de renderização do
relatório. (Foi dito que este novo objeto poderia facilmente ser chamado de mable. Eu
acredito que a Microsoft tenha tomado a melhor decisão com relação ao seu nome.)
O Reporting Services ganhou o codinome de Rosetta durante seu desenvolvimento
original na Microsoft. Esse nome deriva da Pedra de Rosetta, um bloco de granito encontrado em 1799 e que contém uma inscrição em hieróglifos egípcios e em grego. Essa
pedra foi a peça-chave para revelar o mistério dos hieróglifos egípcios para o mundo
moderno. Assim como a Pedra de Rosetta trouxe a informação desde 1400 anos de
história, o Rosetta, ou o Reporting Services foi desenhado para trazer informação chave
através de longas distâncias para revelar o mistério do sucesso para o seu negócio.
O projeto Rosetta foi originalmente concebido como um recurso do SQL Server
2005. Entretanto, quando a Microsoft falou sobre os recursos do Rosetta a prospectivos clientes e demonstrou as primeiras versões alpha, a reação foi veemente: “Nós
precisamos desse produto e precisamos agora!” Por causa dessa reação, a Microsoft
decidiu que o Rosetta não esperaria por 2005, mas, ao invés disso, tornaria-se um
produto em si para funcionar com o SQL Server 2000.
Mas quais são os recursos do Reporting Services que entusiasmaram todo mundo? O Reporting Services proporciona um ambiente para criar vários tipos diferentes
de relatórios a partir de várias fontes de dados diferentes. Os relatórios são pré-visualizados e refinados usando-se a ferramenta de authoring. Uma vez finalizados, os
relatórios são implementados num servidor de relatório, o que disponibiliza os relatórios via Internet num ambiente estruturado e seguro. Por último, mas não menos
importante, o gerenciamento de relatórios e a porção de distribuição do Reporting
Services é gratuito quando instalado num servidor que já roda o SQL Server.
Por que esse conjunto de recursos gera tanto entusiasmo? Quando você os junta,
o resultado é um produto que facilita a criação, gerenciamento e oportuno uso da
inteligência de negócios.
Capítulo 1: Vamos Começar B em do Pr incípio 5
Compartilhando a Inteligência de Negócios
Se você está lendo este livro, você provavelmente guarda algum tipo de informação
importante para sua organização. Você pode ter informação sobre vendas, finanças,
produção, entrega – ou qualquer outra de uma centena de áreas. Toda essa informação
torna a inteligência de negócios necessária para que as atuais entidades corporativas,
acadêmicas e governamentais funcionem harmonicamente.
A Necessidade de Compartilhar
Além de conservar essa informação, você precisa compartilhá-la com outros. Essa
necessidade de compartilhar pode ter vindo de uma importante lição que você aprendeu no jardim de infância (“O mundo seria um lugar muito mais feliz se todos nós
aprendêssemos a dividir”) ou, mais provavelmente, essa necessidade de compartilhar
sua informação foi sugerida a você por um gerente ou executivo de algum lugar acima
na cadeia alimentar. Veja se algum destas situações soa familiar.
O Gerente de Produção
O sistema de order-entry da sua empresa atualiza automaticamente o banco de dados do inventário de tantas em tantas horas. Na linha de negócios da sua empresa,
alguns pedidos podem requerer uma grande quantidade de um determinado produto. Por isso, é importante que o gerente de produção saiba a respeito dessas mudanças nas quantidades do inventário de maneira ágil, para que ele possa ajustar a
produção de acordo.
O gerente de produção lhe pediu um relatório atualizado sobre o inventário, criado imediatamente depois de cada atualização do banco de dados do inventário durante o horário comercial. Ele gostaria que esse relatório chegasse ao seu PC tão
rapidamente quanto possível, para que ele possa fazer modificações na programação
da produção dentro do prazo de uma hora após as atualizações. Ele também gostaria
de poder imprimir esse relatório para poder acrescentar suas próprias notas enquanto
faz sua nova agenda de produção.
Mais um fato para se ter em mente: O sistema de inventário da sua empresa está
em Cleveland, mas as instalações de produção estão em Portland!
O Vice Presidente de Vendas
Você é responsável por manter informação sobre a quantidade de crédito que a sua
empresa irá estender a cada um de seus clientes. Essa informação é atualizada diariamente no banco de dados da empresa. Um relatório contendo informação sobre o
crédito de todos os clientes é impresso semanalmente na sede da empresa e enviada
para casa representante de vendas.
O vice-presidente de vendas pediu para que a informação sobre crédito fique disponível para o staff de vendas de forma mais ágil. Ele pediu para que esse relatório
seja acessível pela Internet a partir de qualquer lugar do país. Os representantes de
vendas irão imprimir o relatório quando tiverem acesso à Internet, e então o levarão
consigo para as horas em que não puderem estar online. O vice-presidente também
pediu para que essa versão online do relatório seja a mais atualizada possível.
6 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
A Diretora Executiva
A diretora executiva (Chief Executive Officer – CEO) da sua empresa tem o estilo “mão
na massa”. Ela gosta de participar de todas as facetas do processo de tomada de decisão
e, portanto, precisa estar muito bem informada sobre todos os aspectos da empresa. Isso
inclui o balanço corporativo, o inventário, a produção e o preço das ações da empresa.
A CEO espera que todas essas informações estejam disponíveis no seu desktop
quando ela chegar ao trabalho todas as manhãs às 07h00min. As informações devem
estar num formato próprio para imprimir e compartilhar com os vice-presidentes da
empresa na sua reunião diária às 09h00min da manhã. Enquanto você busca a solução para este último pedido, lembre-se de que não há orçamento para este projeto – e,
é claro, seu emprego está em jogo.
Possíveis Soluções
Estas situações, e milhares de outras semelhantes, confrontam o mercado hoje em dia. No
nosso mundo de conectividade massiva, requisições desse tipo não são inviáveis. Mesmo
que seja o caso, isto não significa que essas requisições sejam fáceis de satisfazer.
Uma Solução em HTML
O primeiro candidato a ser explorado quando você procura mover informação através
da Internet é, claro, o Hypertext Markup Language (HTML). Você poderia usar
uma das numerosas ferramentas para criar páginas HTML data-driven. Isto incluiria
Active Server Pages da Microsoft, ColdFusion da Macromedia, uma série de ambientes Java, PHP: Hypertext Preprocessor (PHP) – a lista é interminável.
Cada ambiente desses é bom para criar conteúdo dinâmico para a web. Entretanto, todos eles demandam tempo e um nível de conhecimento em programação.
Com os deadlines assomando, você pode não ter tempo de criar aplicações para a
web personalizadas para resolver cada um desses problemas. Se você está acostumado
a manipular dados com o Crystal Reports ou Access reporting, provavelmente não
estará pronto para pular para o desenvolvimento de aplicações maduras, e também
poderá não desejar fazê-lo em qualquer momento no futuro.
Mesmo que você tenha criado uma aplicação para cada um destes cenários, um
importante requisito é este: A informação deve poder ser impressa. Telas HTML
podem parecer lindas na janela de um browser, mas também podem causar problemas
quando impressas. O conteúdo pode ser grande demais para caber em uma página e
não há controle das quebras de página. Na verdade, a quebra de página pode acontecer exatamente no meio de uma linha de texto, com a metade superior dos caracteres
numa página e a metade inferior na página seguinte! Esses tipos de problemas de formatação podem tornar o output difícil para que representantes de vendas e gerentes
de produção leiam. Pedir para que a CEO leve esse tipo de relatório a uma reunião
executiva pode fazer com que você seja despedido.
Vamos procurar outra opção!
Uma Solução em PDF
Já que a capacidade de controlar o output impresso é importante, o Adobe PDF deve ser
considerado. Arquivos PDF aparentam bem tanto na tela quanto impressos. Você pode
Capítulo 1: Vamos Começar B em do Pr incípio 7
controlar onde vão ocorrer as quebras de página e se certificar de que tudo vai ter boa
aparência. Entretanto, vários problemas com arquivos PDF precisam ser superados.
Antes de tudo, você precisa de algum utilitário para produzir um output em formato PDF. Este pode ser a versão completa do Adobe Acrobat ou algum outro utilitário. Uma vez que isso tenha sido feito, deve ser criado um documento que contenha
a informação do banco de dados desejada. Depois de criado esse documento, ele é
convertido em um documento PDF usando-se uma função de exportação ou um
driver de impressora especial.
Uma vez que o documento PDF for criado, ele pode ser copiado para um website
para que seja acessado através da Internet. Entretanto, tão logo o documento PDF
seja criado, ele se torna uma entidade estática. Ele não consulta novamente o banco
de dados a cada vez que é solicitado e acessado pelo website. Para se manter atualizado, o documento PDF deve ser recriado cada vez que a fonte de dados for modificada. Além disso, você deve retornar ao seu ambiente de programação para controlar o
acesso ao documento PDF que está no website.
Talvez haja um modo melhor.
Um Ambiente de Relatório Terceirizado (Third Party)
Ambientes de relatório de outras empresas certamente superam as limitações das
nossas duas primeiras opções. Estes produtos alternativos permitem que relatórios
sejam construídos sem que demandem grande quantidade de programação. Eles
também podem gerar output dinamicamente num formato como o Adobe PDF, que
se comportará bem tanto na tela, quanto impresso.
O problema com o ambiente de relatório terceirizado (third party) é o custo. Alguns programas podem custar milhares ou algumas dezenas de milhares de dólares.
Isso pode ser o suficiente para quebrar o orçamento – se é que há um orçamento –
para projetos de relatório como os discutidos acima.
Microsoft Reporting Services
Agora você pode começar a ver porquê as empresas ficam tão entusiasmadas com o
Reporting Services. Ele fornece uma solução elegante para todas as demandas dos
três usuários – o gerente de produção, o vice-presidente de vendas e a diretora executiva. O Reporting Services não tem problemas, desvantagens (drawbacks)inerentes às
possíveis soluções consideradas anteriormente.
Nenhuma Programação Necessária
O Reporting Services fornece uma abordagem simples, do tipo clique-e-arraste (dragand-drop), para criar relatórios a partir das informações do banco de dados. Você pode
usar três diferentes ferramentas para construir relatórios. O Ad Hoc Report Buider permite que você crie relatórios básicos, mesmo que não saiba muito sobre banco de dados
e linguagens de consulta (query). O Standalone Report Builder e o Report Designer
permitem que você destrave verdadeiramente a potência do Reporting Services para conduzir informações complexas.
Você não precisa ser um programador para criar relatórios com o Reporting Services.
Todavia, se você está confortável com construções de programação, os Capítulos 7 e 8 incluem algumas expressões simples do Visual Basic que podem ser usadas para apimentar
a apresentação do seu relatório. Note, entretanto, que essas expressões não são necessárias
8 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
para se criarem relatórios úteis. Elas são também simples o suficiente para que aqueles que
não estão familiarizados com o Visual Basic possam usá-los com maestria.
Um Servidor com Visualização (View)
Com o Reporting Services você pode visualizar os relatórios no seu browser. O Reporting Services oferece apresentação de alta qualidade para cada relatório usando
HTML dinâmico. Os relatórios são apresentados em várias páginas com controles
“VCR” para navegar entre as páginas.
O Reporting Services usa HTML dinâmico então não há necessidade de se baixar qualquer programa adicional no seu PC. Não há qualquer controle ActiveX para
ser instalado, nenhum applet Java para fazer download. Qualquer browser que suporte HTML 4.0 pode visualizar os relatórios.
Interage Bem com Impressoras
Além de apresentar relatórios no seu browser usando HTML dinâmico, o Reporting Services pode renderizar um relatório em vários outros formatos. Isso inclui um
documento em Adobe PDF, uma imagem Tagged Image File Format (TIFF), uma
tabela do Excel, e até mesmo um documento do Word. Todos estes formatos são
perfeitamente visualizados na tela, ou no papel quando são impressos.
NOTA
Quando o Reporting Service gera um relatório, ele busca os dados mais recentes do banco de dados,
formata-os da maneira que o autor do relatório especificou, e fornece o relatório no formato selecionado
(HTML, PDF, TIFF, e assim por diante).
Entrega Especial
O Reporting Services oferece vários meios diferentes de fornecer relatórios para usuários finais. O website do Report Manager permite que os usuários acessem os relatórios através da Internet. E também inclui recursos de segurança, o que assegura que
os usuários acessem apenas os relatórios que devem acessar.
Os usuários também podem assinar relatórios que gostariam de receber regularmente. O Reporting Services manda uma cópia do relatório anexado a uma mensagem de correio para cada assinante, com a freqüência que for agendada. Como alternativa, um administrador do Reporting Services pode mandar uma cópia do relatório
como anexo de e-mail para vários destinatários de uma lista de contatos (mailing list).
Se isso não é o suficiente, os relatórios podem ser embutidos em aplicações .NET.
O Preço é Justo
Para qualquer um que tenha uma cópia licenciada do SQL Server 2008, o preço do
Reporting Server é justo. Gratuito! Desde que o servidor de relatório seja instalado
no mesmo computador que a ferramenta de banco de dados do SQL Server, sua
licença do SQL Server 2008 cobrirá tudo. Com esta arquitetura única de servidor,
compartilhar seus relatórios com outros usuários do Reporting Service não custará
nem um centavo a mais.
Capítulo 1: Vamos Começar B em do Pr incípio 9
O Reporting Services para o Salvamento
Vamos dar mais uma olhada nos três cenários que consideramos acima – o gerente de
produção, o vice-presidente de vendas e a diretora executiva. Como você pode usar os
recursos do Reporting Services para satisfazer as necessidades de cada um?
O gerente de produção quer um relatório que mostre o inventário atual. Certamente que não é problema consultar os dados do inventário no banco de dados e
colocá-los em um relatório. A seguir ele deseja uma nova cópia do relatório a cada
vez que o inventário for atualizado durante o horário comercial. O gerente de produção pode assinar seu relatório e, como parte da assinatura, pedir que um novo
relatório seja fornecido às 8h15min, 12h15min e 16h15min. Finalmente, o sistema
de inventário fica em Cleveland, mas o gerente de produção está em Portland. Como
a assinatura de um relatório pode ser enviada por e-mail, o Reporting Services pode
ser configurado em Cleveland, produzir um relatório a partir da fonte de dados local,
e então enviar um relatório por e-mail para Portland.
A solução para o vice-presidente de vendas é ainda mais direta. Ele quer um relatório com informações sobre crédito para cada cliente. Nenhum problema. A seguir,
ele quer que o relatório fique disponível para o seu staff de vendas, acessível via Internet. Para tal, você pode publicar o relatório no website do Report Manager. Você
pode até configurar os dispositivos de segurança para que apenas os representantes de
vendas com user names e senhas apropriados possam acessar o relatório.
Além disso, o vice-presidente de vendas quer que o relatório tenha bom aspecto
quando impresso. Isso se consegue sem trabalho adicional do lado do desenvolvimento. Quando os representantes de vendas buscarem o relatório do website, este será
exibido em HTML. Isso tem bom aspecto no browser, mas pode não ter no papel.
Para se ter um relatório que pareça bem sempre que impresso, os representantes de
vendas simplesmente precisam exportar o relatório para um formato PDF ou TIFF
e então exibir e imprimir o arquivo exportado. Agora eles estão prontos para sair
batendo em portas!
Para a diretora executiva CEO, você pode construir um relatório, ou talvez uma
série de relatórios, que reflitam o estado de sua empresa. Isto servirá para mantê-la
informada acerca de todas as facetas do seu negócio. Para que esses relatórios estejam
disponíveis em sua mesa às 7h00min, você pode configurar set up uma assinatura que
irá rodar os relatórios e enviá-los por e-mail para ela todas as manhãs às 6h15min.
Finalmente, porque ela quer imprimir esse relatório e partilhá-lo com os vicepresidentes corporativos, você pode se assegurar de que o serviço de assinatura entregue o relatório em formato PDF sou TIFF. A melhor parte é que dado que você já
tem uma licença do SQL Server 2008, a solução Reporting Services não custa nada à
empresa. Você ganhou vários pontos de bônus e ela o fará chefe da informação antes
do final do ano!
Arquitetura de Construção de Relatório
(Report Authoring Architecture)
Como mencionado anteriormente, os relatórios do Reporting Services são criados
usando-se uma das três ferramentas: o Ad Hoc Report Builder, o Standalone Report
1 0 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
Builder ou o Report Designer. O Ad Hoc Report Builder é direcionado para aqueles
usuários avançados e analistas que querem fazer seus relatórios ad hoc por conta própria sem precisar aprender as entradas e saídas da estrutura do banco de dados e da
linguagem query. O Ad Hoc Report Builder apresenta aos autores de relatórios um
modelo simplificado dos seus bancos de dados, portanto esses autores não precisam
saber detalhes sobre consultas a banco de dados para criar relatórios. Uma vez que o Ad
Hoc Report Builder tenha criado um relatório, esse relatório pode ser implementado
no servidor de relatório e funcionará exatamente como um relatório criado com o Standalone Report Builder ou o Report Designer.
O Standalone Report Builder é novo no SQL Server 2008. Esse ambiente de
construção de relatório suporta a construção de relatórios full-featured do Reporting
Services. Todavia, o Standalone Report Builder não possui todas as ferramentas de
programa e de organização de projeto encontradas no Report Designer.
Como nós queremos cobrir inteiramente a riqueza de capacidades encontradas
no Reporting Services, este livro está focado na construção de relatórios usando-se o
Report Designer, e não o Ad Hoc Report Builder ou o Standalone Report Builder.
Vamos dar uma olhada no Standalone Report Builder mais adiante neste livro quando discutirmos a construção de relatórios. Se você está interessado em aprender mais
sobre o Ad Hoc Report Builder, por favor, refira-se ao Apêndice C.
O Report Designer oferece maiores capacidades para criar relatórios interessantes
e altamente funcionais, usados para transmitir a inteligência de negócios aos usuários
de relatórios. Este livro pode ajudá-lo a aproveitar mais este ambiente de construção
de relatórios extremamente rico. O Report Designer contém tudo o que é necessário
para criar uma ampla variedade de relatórios para o Reporting Services. Tudo o que
você precisa para selecionar a informação das fontes de dados, criar um layout de
relatório e testar a sua criatividade está ao alcance das suas mãos. E o melhor de tudo
é que o Report Builder é encontrado tanto no Business Intelligence Development
Studio quanto no Visual Studio.
Tanto o Business Intelligence Development Studio quanto o Visual Studio
são do tipo de software de construção de relatório chamado de ambiente de desenvolvimento integrado (integrated development enviroment) (IDE). (Na verdade o Business Intelligence Development Studio é uma versão especial do Visual Studio funcionando sob um nome diferente.) Os IDEs surgiram quando as
pessoas que criavam linguagens de programação pensaram que seria mais conveniente que o editor, compilador e o debugger estivessem no mesmo pacote. Antes
do advento dos ambientes de desenvolvimento integrado, criar e fazer debug em
um software poderia ser um longo e tedioso processo. Com um IDE, entretanto,
um programador pode ser muito mais eficiente quando estiver escrevendo e testando uma aplicação.
Mesmo que você esteja criando relatórios ao invés de construindo um software,
o Report Designer oferece um ambiente de trabalho simpático. Você não vai fazer
edição, compilação ou debug, mas você vai selecionar dados, vai fazer o layout do
relatório e vai ter a pré-visualização do resultado final. Tudo isso é feito rápida e facilmente com o Report Designer.
O Projeto do Tipo Inteligência de Negócios
O Business Intelligence Development Studio e o Visual Studio podem ser usados
para várias tarefas de inteligência de negócios e de desenvolvimento de software. O
Capítulo 1: Vamos Começar B em do Pr incípio 11
Business Intelligence Development Studio é usado para criar pacotes do Integration
Services para extração, transformação e carga de dados (ETL).Também é usado para
criar estruturas multidimensionais do Analysis Services. O Visual Studio é usado
para criar aplicações do Windows, aplicações para a web e serviços web.
Para facilitar essa variedade de capacidades, estes IDEs suportam vários diferentes
tipos de projetos. Esses tipos de projetos organizam a multidão de soluções que podem ser criadas no IDE para grupos relacionados. Relatórios do Reporting Services
são criados usando-se o projeto do tipo Inteligência de Negócios.
Modelos de Projetos
Quando você escolhe criar um novo projeto no IDE, vê-se uma caixa de diálogo New
Project como mostra a figura 1-1. A área Project Types na tela mostra o tipo de projeto no qual você estará interessado: Business Intelligence Projects. Business Intelligence
Projects inclui modelos para vários tipos de projetos.
Você verá três modelos de projeto neste livro: Report Server Project Wizard, Report
Server Project e Report Model Project. Os dois primeiros modelos criarão, basicamente, um projeto de relatório. O modelo do Report Server Project Wizard usa o Report
Wizard para guiá-lo através do processo de criação do primeiro relatório no seu novo
projeto de relatório. O modelo do Report Server Project simplesmente cria um projeto
de relatório vazio e deixa você à vontade. O Report Model Project cria um modelo de
dados para ser usado com a ferramenta de authoring do Ad Hoc Report Builder.
Estrutura de Relatório
Um projeto de relatório pode conter vários relatórios. Cada relatório contém
dois conjuntos de instruções que determinam o que o relatório irá conter. O
primeiro é a definição dos dados (data definition). O data def inition controla
Figure 1-1 A caixa de diálogo Novo Projeto.
1 2 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
de onde os dados para o relatório virão e que informações serão selecionadas
desses dados. O segundo conjunto de instruções é o layout do relatório (report
layout). O layout do relatório controla como a informação será apresentada na
tela ou no papel. Ambos os conjuntos de instruções são armazenados usando a
Report Definition Language.
A figura 1-2 mostra essa estrutura de relatório com um pouco mais de detalhe.
Definição de Dados (Data Definition)
O data definition contém duas partes: a fonte de dados (data source) e o dataset. O
data source é o servidor de banco de dados ou arquivo de dados que fornece as informações para o seu relatório. É claro, a fonte de dados propriamente dita não está
incluída no relatório. O que está incluído é o conjunto de instruções que o relatório
precisa para obter acesso a fonte de dados. Essas instruções incluem o seguinte:
„O
tipo de fonte que você vai usar para seus dados (por exemplo, o Microsoft SQL
Server 2008, Oracle, DB2, Informix, ou Microsoft Acess). O Reporting Services
usará essa informação para determinar como se comunicar com a fonte de dados.
„O nome do servidor de banco de dados ou o caminho para o arquivo de dados.
„O nome do banco de dados.
„O login para conectar com esta fonte de dados, se for pedido um login.
Quando o relatório está sendo executado, ele usa as informações da fonte de dados
contidas no relatório para ganhar acesso à fonte de dados. Ele extrai informações
da fonte de dados num formato novo que pode ser usado pelo relatório. Esse novo
formato é chamado dataset.
O conteúdo do dataset é definido usando-se uma ferramenta chamada Query
Designer. O Query Designer ajuda você a criar uma consulta a um banco de dados
(database query). A consulta (query) de banco de dados pode ser em TransactData
Source
Report Project
Report Builder
My Report
Data Region
RDL File
R
o
w
s
Columns
Dataset
Page 1
Figure 1-2 A Estrutura de um Relatório.
Structured Query Language (T-SQL) para consultar dados relacionais, Multidimensional Expression Language (MDX) para consultar dados multidimensionais, ou Data Mining Expression Language (DMX) para consultar dados pelo
processo de mineração de dados. A consulta (query) fornece instruções para a
fonte de dados, dizendo para ela que dados você quer selecionar para o seu relatório. A query é armazenada no seu relatório como parte da definição dos dados.
Capítulo 1: Vamos Começar B em do Pr incípio 13
Os dados selecionados pela query para o dataset consistem de linhas (rows)
e colunas (columns). As linhas correspondem aos registros (records) que a
query seleciona da fonte de dados. As colunas correspondem aos campos (fields) que a query seleciona da fonte de dados. (As queries MDX são unidas
numa única tabela de linhas e colunas.) As informações nos campos para serem
selecionadas para o dataset são armazenadas no relatório como parte da definição de dados. Apenas a informação sobre como serão chamados os campos
e o tipo de dados que eles irão possuir é armazenada na definição do relatório.
Os dados propriamente ditos não são armazenados na definição do relatório,
ao invés disso, são selecionados extraídos da fonte de dados cada vez que o
relatório é rodado.
O Layout do Relatório
Os dados que o relatório extraiu para um dataset não têm muito uso, a menos que
você tenha alguma forma de apresentá-los ao usuário. Você precisa especificar
quê campos vão para quê locais na tela ou no papel. Você também precisa acrescentar coisas como títulos, cabeçalhos e números de páginas. Tudo isso forma o
layout do relatório.
Na maioria dos casos, o layout do seu relatório incluirá uma área especial que interage com o dataset. Essa área especial é chamada de região de dados (data region).
Uma região de dados mostra todas as linhas no dataset repetindo uma seção do relatório para cada linha.
Linguagem de Definição de Relatório
(Report Definition Language)
As informações na definição de dados e no layout do relatório são armazenadas usando-se a Report Definition Language (RDL). A RDL é um padrão
Extensive Markup Language (XML) desenhado pela Microsoft especialmente
para armazenar definições de relatório. Isso inclui as instruções da fonte de
dados, as informações da query que define o dataset, e o layout do relatório.
Quando você cria um relatório no Report Designer, ele é salvo num arquivo
de extensão .rdl.
Se você nunca trabalhou com XML, ou nem mesmo tem certeza se sabe o que é
isso, não se preocupe. O Report Designer e o Reporting Services vão cuidar de toda
RDL para você. Para aqueles de vocês que querem aprender um pouco mais sobre
RDL, vamos dar uma espiada sob as aparências no Capítulo 7.
Report Designer
A figura 1-3 mostra o Report Designer. Essa é a ferramenta que você vai usar para
criar e editar relatórios através deste livro. Vamos examinar alguns recursos do Report
Designer agora e discuti-los mais detalhadamente no Capítulo 8.
1 4 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
Figure 1-3 A caixa de diálogo Novo Projeto.
Superfície de Design (Design Surface)
A superfície de desenho, no centro da figura 1-3, é onde você cria o layout do seu
relatório. Para fazer isso, você vai usar quatro das outras áreas visíveis na Figura 1-3:
a janela Report Data, a Caixa de Ferramentas (Toolbox), a janela Propriedades (Properties) e o painel de Grupamento. Você vai aprender como eles funcionam nas sessões seguintes. A superfície de design divide espaço com a aba Preview. A aba Preview vai mostrar como o layout do relatório e os dados se combinam para criar um
relatório bom e honesto.
Janela de Dados do Relatório
A Janela de Dados do Relatório (Report Data Window), no canto superior esquerdo
da Figura 1-3, fornece uma lista de bancos de dados e outros tipos de campos que
você pode usar no seu relatório. A Janela de Dados do Relatório torna fácil adicionar
informações do banco de dados ao seu relatório. Simplesmente arraste o campo desejado da janela de Dados do Relatório e solte-o no local apropriado no layout do seu
relatório. O Report Designer cuida do resto.
Caixa de Ferramentas (Toolbox)
A Caixa de Ferramentas, no canto inferior esquerdo da Figura 1-3, contém todos os
itens de relatório que você usa para criar seus relatórios. Esses itens, às vezes chamados de controles (controls), são responsáveis por reunir o texto e o gráfico para que
apareçam no lugar correto nos seus relatórios. Como em qualquer projeto de construção, você só pode construir relatórios adequadamente depois de aprender como
se usam as ferramentas (itens de relatório) na Caixa de Ferramentas. Você aprende a
usar cada item de relatório da Caixa de Ferramentas nos Capítulos 4,5 e 6.
Capítulo 1: Vamos Começar B em do Pr incípio 15
Como nos campos da janela de Dados do Relatório, os itens de relatório da Caixa
de Ferramentas são posicionados no layout do relatório com um simples arraste-esolte. Entretanto, enquanto campos estão muito mais prontos para ir quando são
largados sobre a superfície de design, os itens de relatório quase sempre precisam de
algumas mudanças de formatação para que fiquem do jeito que você quer. Isso é feito
mudando-se o tamanho, a cor, a fonte, ou qualquer uma das várias outras características do item de relatório.
Janela de Propriedades (Properties Window)
A Janela de Propriedades, mostrada no canto inferior direito da Figura 1-3, é o lugar
onde você controla as características de cada item de relatório. A janela de Propriedades sempre mostra as características, ou propriedades, do item de relatório que está
selecionado na superfície de design. Você vai ver uma entrada na janela de Propriedades para cada aspecto desse item de relatório que você pode controlar.
O topo da janela de Propriedades mostra o nome do item de relatório selecionado. Na Figura 1-3, a caixa de texto de nome “Textbox3” está selecionado. A coluna
da esquerda na janela de Propriedades mostra o nome de todas as propriedades que
podem ser modificadas para cada item de relatório. A coluna da direita mostra as
configurações atuais para cada uma dessas propriedades. Por exemplo, na Figura 1-3,
você pode ver que Textbox3 tem uma altura (Height) de 0,64 centímetros.
Painel de Grupamento (Grouping Pane)
O Painel de Grupamento está no final da superfície de design na Figura 1-3. Este
painel, feito pelas áreas de grupos de linhas e de grupos de colunas, é onde você controla como os grupamentos operam dentro do relatório. O grupamento de linhas e de
colunas avançados que são agora possíveis num relatório é o que tornam a tablix uma
ferramenta poderosa para criar layouts de relatórios complexos.
Standalone Report Builder
O Standalone Report Builder é um ambiente de construção de relatórios que existe
como sua própria aplicação, e não como uma aplicação guardada dentro do Buisiness
Intelligence Development Studio/Visual Studio. O Standalone Report Builder funciona de modo similar ao Report Designer. A Figura 1-4 mostra um relatório sendo
criado no Standalone Report Builder.
1 6 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
Figura 1-4 O Standalone Report Builder.
O Standalone Report Builder usa a interface de usuário estilo ribbon, encontrada
no Microsoft Office 2007. Essa é a principal diferença entre o Report Builder e o
Standalone Report Builder. O Standalone Report Builder não tem uma Caixa de
Ferramentas. Ao invés disso, os itens de relatório são encontrados na aba Insert do
ribbon. As outras abas do ribbon fornecem controles adicionais para formatar itens
de relatório posicionados na superfície de design.
Novamente, neste livro, vamos fazer a maior parte da criação dos nossos relatórios
usando o Report Designer. Entretanto, qualquer coisa que você possa fazer no Report
Designer, ao longo das linhas da criação de um relatório, você também poderá fazer
no Standalone Report Builder.
Arquitetura de Servidor de Relatório
Uma vez que você tenha terminado o seu relatório e ele tiver exatamente a aparência
que você deseja, está na hora de partilhá-lo com outros. Esta é a hora em que seu
relatório passa da segura infância dentro do Report Designer para sua vida adulta
num Report Server.
Isto se chama implementar ou publicar o relatório. Deixe-me assegurá-lo de que
os relatórios passam pela implementação muito mais facilmente do que você e eu
passamos pela adolescência!
Capítulo 1: Vamos Começar B em do Pr incípio 17
Servidor de Relatório (Report Server)
O Servidor de Relatório é a peça do quebra-cabeça que faz o Reporting Services ser
o produto que é. Este é o ambiente de software que permite que você compartilhe o
seu relatório com as massas – ao menos com as massas que têm direito de acessar o
seu servidor. A Figura 1-5 mostra a estrutura básica do Servidor de Relatório.
Catálogo de Relatório (Report Catalog)
Quando um relatório é implementado num Servidor de Relatório, uma cópia das
definições RDL do relatório é colocada no Catálogo de Relatório daquele servidor.
O Catálogo de Relatório é um conjunto de banco de dados usado para armazenar
as definições para todos os relatórios disponíveis em um determinado Servidor de
Relatório.
Mesmo que você use alguma fonte de dados compatíveis com ODBC ou OLE DB
para fornecer dados para seus relatórios, o banco de dados do Catálogo de Relatório só
poderá existir no SQL Server 2005 ou no SQL Server 2008. O banco de dados do Catálogo de Relatório é criado como parte do processo de instalação do Reporting Services.
A não ser que seja para criar backups regulares de algum banco de dados do Catálogo de
Relatório, provavelmente será uma boa idéia deixar o Catálogo de Relatório em paz.
Manipuladores
de Pedidos
(Report
Mananger)
(Report
Mananger)
Figure 1-5 Arquitetura do Servidor de Relatório.
Processador de Relatório (Report Processor)
Quando um relatório precisa ser executado, o componente processador de relatório
do Servidor de Relatório dirige o show. O processador de relatório recupera o relatório
do Catálogo de Relatório e orquestra a operação dos outros componentes do Servi-
1 8 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
dor de Relatório enquanto o relatório é produzido. Ele recolhe o output de cada outro
componente e os combina para criar o relatório completo.
Provedores de Dados (Data Providers)
Quando o processador de relatório encontra definições de dataset no RDL do relatório, ele obtém os dados para povoar o dataset. Ele faz isso primeiramente seguindo as
instruções na fonte de dados do relatório para conectar-se com o servidor de banco de
dados ou arquivo que contém os dados. O processador de relatório seleciona um fornecedor de dados que sabe como obter informações deste tipo de fonte de dados.
O fornecedor de dados então se conecta com a fonte dos dados e seleciona as
informações necessárias para o relatório. O fornecedor de dados retorna estas informações ao processador de relatório, onde elas são transformadas em um dataset para
ser usado no relatório.
Renderizadores
Uma vez que todos os dados para o relatório foram coletados, o processador de relatório está pronto para começar a processar o layout do relatório. Para fazê-lo, o
processador de relatório olha para o formato solicitado. Ele pode ser HTML, PDF,
TIFF ou outro dos vários formatos possíveis. O processador de relatório então usa o
renderizador que sabe produzir esse formato. Você vai aprender mais sobre as capacidades de cada um desses formatos de relatório no Capítulo 9.
O renderizador funciona com o processador de relatório para ler todo o layout do
relatório. O layout do relatório é combinado com o dataset e qualquer seção repetida
do relatório é duplicada para cada linha no dataset. Esse layout de relatório expandido é então traduzido para o formato de output solicitado. O resultado é um relatório
pronto para ser enviado ao usuário.
Manipulador de Pedidos (Request Handler)
O Manipulador de Pedidos é responsável por receber solicitações de relatórios e por
passar essas solicitações para o processador de relatórios. Uma vez que o processador
de relatórios tenha criado o relatório solicitado, o manejador de pedidos é também
responsável por entregar o relatório completo. Na próxima seção, você vai aprender
sobre os vários métodos que o manejador de pedidos usa para entregar relatórios.
Entrega de Relatórios
Nós discutimos sobre como um relatório é criado pelo Servidor de Relatórios. O
que não discutimos foi pra onde esse relatório vai depois que é criado. O relatório
pode ser enviado para um usuário através do website do Report Manager. Ele pode
ser enviado em resposta a uma solicitação de um serviço de web que veio, não de um
usuário, mas de outro programa. Ele também pode ser enviado por e-mail para um
usuário que assine esse relatório.
Website do Report Manager
Uma maneira que usuários têm de solicitar um relatório do Servidor de Relatório é através do website do Report Manager. Este website é criado para você quando você instala o
Reporting Services. A Figura 1-6 mostra uma tela do website do Reporting Services.
Capítulo 1: Vamos Começar B em do Pr incípio 19
O website do Report Manager organiza os relatórios em pastas. Os usuários podem navegar por essas pastas para encontrar os relatórios que precisam. Os usuários
também podem procurar pelos títulos e descrições para localizar os relatórios.
O Report Manager também inclui recursos de segurança que podem ser aplicados a
pastas e relatórios. Com esses recursos de segurança, o administrador do site pode criar
tarefas de segurança para usuários que vão acessar o site. Essas tarefas de segurança
controlam que pastas e que relatórios um usuário pode acessar. Você vai aprender sobre
segurança quando nós dermos uma olhada no Report Manager no Capítulo 10.
No Report Manager, os relatórios são sempre exibidos em formato HTML. Uma
vez que o relatório tenha sido exibido como uma página HTML, o usuário então
poderá exportá-lo para qualquer outro formato disponível.
Figura 1-6 O website do Report Manager.
SharePoint/Office Server
O SharePoint também pode ser configurado para server como meio para os usuários
solicitarem relatórios. Isso pode ser feito de duas maneiras. A primeira usa web parts
do Report Explorer ou do Report Viewer. Essas web parts podem ser usadas numa
aplicação web do SharePoint para permitir que os usuários naveguem pelas pastas de
relatórios e visualizem relatórios num servidor de relatórios do Reporting Services.
As web parts do Report Explorer e do Report Viewer foram originalmente disponibilizadas como parte do SQL Server 2000 Reporting Services Service Pack 2. Elas
também eram parte do SQL Server 2005 Reporting Services. As web parts continuam disponíveis na versão 2008, mas sua funcionalidade não foi atualizada para tirar
proveito dos novos recursos e funcionalidade.
A segunda maneira de utilizar o Reporting Services através do SharePoint envolve uma justa integração dos dois produtos. Nesta configuração, uma instalação do
Windows SharePoint Services 3.0 ou do Office SharePoint Server 2007 se tornará
de fato o host para o Catálogo de Relatório do servidor de relatório. Além disso, a
interface de usuário do SharePoint substitui o website do Report Manager como
interface do usuário para localizar e visualizar relatórios, e também para gerenciar
2 0 M i c r o s o f t S Q L S e r v e r 2 0 0 8 R e p o r t i n g S e r v i c e s
o servidor de relatório. Acessar relatórios através da integração do SharePoint é tão
fácil e intuitivo quanto acessar qualquer outro documento no site do SharePoint.
Entrega de Assinaturas
Se os usuários não querem ir ao relatório, o manejador de pedidos pode fazer com que o
relatório vá até eles. Em outras palavras, os usuários não precisam necessariamente vir ao
site do Report Manager para receber um relatório. Eles podem receber o relatório através
de um serviço de assinatura. O Report Manager permite que os usuários localizem um
relatório no site e então faça a assinatura para que o relatório lhe seja entregue no futuro.
Quando usuários assinam um relatório, eles fornecem um endereço de e-mail
para o qual o relatório será enviado, ou como o corpo de uma mensagem ou como um
anexo de uma mensagem, dependendo do formato requisitado. Os usuários podem
especificar o formato do relatório quando fazem a sua assinatura.
O administrador do site também pode configurar assinaturas de relatórios. Elas
funcionam como envio de mensagens em massa, usando uma lista de endereços de
e-mail. Ao invés de exigir que cada usuário acesse o Report Manager para criar sua
própria assinatura, o administrador do site pode criar uma assinatura que será enviada
para todos os usuários da lista.
Interface de Seviço Web (Web Service Interface)
Além de entregar relatórios aos usuários, tanto por solicitação sua quanto por assinatura, o manipulador de pedidos pode entregar relatórios para outras aplicações de
software. Isso é feito através de uma série de serviços da web. Um serviço da web é um
mecanismo que permite que programas se comuniquem entre si através da Internet.
Um programa chama serviço da web no Report Server solicitando um determinado relatório num determinado formato. O manipulador de pedidos retransmite esse
pedido ao processador de relatórios, exatamente como qualquer outra solicitação de
relatório. O relatório completo é devolvido ao programa que originou o pedido como
resposta a solicitação do serviço da web.
Serviços da web usam um protocolo chamado Simple Object Acess Protocol
(SOAP). SOAP é suportado tanto por ambiente Windows quanto não-Windows,
portanto um programa rodando num computador não-Windows que suporta SOAP
pode receber um relatório criado pelo Reporting Services.
Conhecendo a Fundo o Produto
Agora que você foi introduzido a todas as capacidades do Reporting Services,
espero que esteja pronto para mergulhar de cabeça e fazê-lo funcionar. No próximo
capítulo você vai aprender sobre a instalação e configuração do Reporting Services.
Se o Reporting Services já está instalado, você pode pular para o Capítulo 3.
No Capítulo 3, nós asseguramos que você tenha um firme entendimento dos
fundamentos sobre banco de dados antes de chegar a construção de relatórios propriamente dita no Capítulo 4. O Capítulo 3 também o introduz a Galactic Delivery
Services (GDS), a empresa que usamos como estudo de caso do início ao fim deste
livro. Mesmo que suas habilidades com bancos de dados sejam excelentes, você deveria gastar alguns minutos no Capítulo 3 para conhecer a GDS.
Download