Criação de um relatório localizado em uma fonte de dados do cubo do Analysis Service do SQL Server 2005

Brian Larson

Publicado em: 18 de setembro de 2006

Resumo: Saiba como usar um cubo do Analysis Services como fonte de dados, usando consultas MDX parametrizadas, e como localizar seqüências de caracteres de rótulo em um relatório no SQL Server 2005. (17 páginas impressas)

Aplica-se a:

  • Reporting Services do SQL Server 2005

  • Analysis Services do SQL Server 2005

  • Localização

Nesta página

Introdução Introdução
Criação do relatório de análise de entrega Criação do relatório de análise de entrega
Carregamento de relatórios usando .NET Assemblies Carregamento de relatórios usando .NET Assemblies
Livros relacionados Livros relacionados
Conclusões Conclusões

Introdução

Este artigo apresenta um excerto do livro Microsoft SQL Server 2005 Reporting Services, Brian Larson. Saiba como usar um cubo do Analysis Services como fonte de dados via consultas MDX parametrizadas, bem como localizar seqüências de caracteres de rótulo em um relatório. Para acessar todos os códigos de exemplo neste artigo, clique aqui.

Galactic Delivery Services

Os relatórios de exemplo deste excerto baseiam-se nas necessidades comerciais de uma empresa chamada Galactic Delivery Services (GDS). Para uma melhor compreensão dos relatórios de exemplo, apresentamos agora algumas informações gerais sobre a GDS.

Informações gerais da empresa

A GDS fornece serviço de entrega de pacotes entre vários sistemas planetários na região galática vizinha. Sua especialidade é a entrega rápida, destacando-se entregas para o mesmo dia, para o dia seguinte e para o dia anterior. Essa última opção é possível graças aos transportes do novo Fóton III, que viaja mais rápido do que a velocidade da luz. Esse recurso mais rápido que a luz permite à GDS explorar as propriedades da relatividade geral e entregar, de verdade, um pacote no dia anterior ao que foi enviado.

Apesar das ofertas de entrega exclusivas da GDS, ela possui as mesmas necessidades de processamento de dados que qualquer serviço de entrega de pacotes mais convencional. Ela usa um banco de dados do SQL Server 2005 para rastrear os pacotes à medida que se movem de um hub interplanetário para outro. Ela também usa um banco de dados do Analysis Services do SQL Server 2005 para hospedar um datamart usado para aplicativos de inteligência comercial. Além disso, o Reporting Services do SQL Server 2005 é usado para criar e gerenciar relatórios de ambos os armazenamentos de dados.

Criação do relatório de análise de entrega

Recursos destacados por este relatório

Os seguintes recursos do Reporting Services do Microsoft SQL Server 2005 são destacados durante a criação do Relatório de análise de entrega:

  • Uso de um cubo do Analysis Services como fonte de dados, via consulta MDX.

  • Parametrização de uma consulta MDX.

  • Localização das seqüências de caracteres de rótulo de um relatório.

Necessidade comercial

O comitê de planejamento de longo prazo da Galactic Delivery Services está trabalhando para prever o equipamento e a força de trabalho necessários para atender a um crescimento futuro. Eles precisam de um relatório que mostre o número de entregas e seu peso médio, agrupados por cliente e por trimestre. Eles também gostariam de selecionar se os dados incluem entregas para o dia seguinte, entregas para o mesmo dia, entregas para o dia anterior ou alguma combinação das três. Os dados desse relatório devem vir do cubo GalacticDeliveriesDataMart, hospedado pelo Analysis Services do Microsoft SQL Server 2005.

Existem membros no comitê oriundos de diversos planetas. A maioria fala inglês, mas também há vários membros falantes de espanhol. (Sei que parece um pouco estranho para pessoas de uma galáxia muito, muito distante, mas a maioria de vocês não tem os idiomas borlaronês e noxicomiano carregados no Windows e, portanto, inglês e espanhol vão facilitar bastante as coisas.)

Visão geral da tarefa

O Relatório de análise de entrega é criado através da realização de duas tarefas:

Tarefa 1

  1. Copiar o .NET Assembly para o local apropriado.

  2. Criar um novo relatório.

  3. Criar uma referência para o Assembly.

  4. Criar um Dataset usando o MDX Query Designer.

Tarefa 2

  1. Adicionar uma tabela no layout do relatório.

  2. Preencher a tabela.

  3. Localizar as seqüências de caracteres do relatório.

Relatório de análise de entrega, Tarefa 1

Nota   É necessário fazer o download do projeto GalacticOLAP e implantá-lo em um servidor do Analysis Services do SQL Server para poder criar este relatório.

  1. Se você ainda não fez isso, faça o download do ReportUtil.dll e de seu código-fonte.

  2. Copie esse arquivo para a pasta Report Designer. O caminho padrão para a pasta Report Designer é: C:\Arquivos de Programas\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies.

  3. Inicie o programa Microsoft .NET Framework 2.0 Configuration na seção Administrative Tools de seu Painel de controle.

  4. Clique em Configure Code Access Security Policy.

  5. Clique em Increase Assembly Trust.

  6. Selecione Make changes para este computador e clique em Next.

  7. Clique em Browse. Procure a pasta PublicAssemblies e selecione ReportUtil.dll. Clique em Open e, em seguida, clique em Next.

  8. Selecione This one assembly e clique em Next.

  9. Altere o controle deslizante Trust level para Full Trust e clique em Next.

  10. Clique em Finish.

  11. Feche o programa .NET Framework 2.0 Configuration.

  12. Abra novamente o projeto Chapter08 no Report Designer, se tiver sido fechado.

  13. Crie um novo relatório chamado DeliveryAnalysis usando o modelo GDSReport.

  14. Abra a caixa de diálogo Report Properties. Selecione a guia References.

  15. Clique em ..., próximo da área References. A caixa de diálogo Add Reference é exibida.

  16. Role para baixo e selecione o assembly ReportUtil. Clique em Add para adicionar esse arquivo à lista Selected projects and components.

  17. Clique em OK para sair da caixa de diálogo Add Reference. Clique em OK para sair da caixa de diálogo Report Properties.

  18. Crie um novo conjunto de dados chamado DeliveryInfo. Selecione New Data Source na lista suspensa Data source. A caixa de diálogo Data Source é exibida.

  19. Em Nome, insira GalacticDM. Selecione Microsoft SQL Server Analysis Services na lista suspensa Type.

  20. Clique em Edit, próximo à caixa de texto Connection string. A caixa de diálogo Connection Properties é exibida.

  21. Insira o nome do servidor do Analysis Services do SQL Server em Server name.

  22. Selecione GalacticOLAP na lista suspensa Select or enter a database name. Você pode testar a conexão se quiser, mas se GalacticOLAP aparecer na lista suspensa, significa que a conexão já foi testada.

  23. Clique em OK para sair da caixa de diálogo Connection Properties. Clique em OK para sair da caixa de diálogo Data Source. Clique em OK para sair da caixa de diálogo Dataset. O MDX Query Designer é exibido, como mostra a Figura 1.

    Figura 1. O MDX Query Designer

  24. Expanda Measures no painel Metadata. Expanda o grupo de medidas Delivery e a entrada Delivery dentro dele.

  25. Arraste a medida Delivery Count para o painel Results (que tem no centro as palavras Drag levels or measures here to add to the query). A contagem total de todas as entregas presentes atualmente no cubo GalacticDeliveriesDataMart é exibida no painel Results.

  26. Expanda a dimensão Customer no painel Metadata. Arraste o atributo CustomerName para o painel Results, à esquerda de Delivery Count. O painel Results mostra, agora, a contagem total de todas as entregas feitas para cada cliente.

  27. Expanda a dimensão Time no painel Metadata. Arraste o atributo Delivery-Quarter para o painel Results, à esquerda da coluna CustomerName. O painel Results mostra, agora, a contagem total de todas as entregas feitas para cada cliente, em cada trimestre.

  28. Clique com o botão direito do mouse no painel Calculated Members e selecione New Calculated Member no menu Context. A caixa de diálogo Calculated Member Builder é exibida.

  29. Insira AvgWeight em Name.

  30. Na área Expression , insira ROUND(. Expanda a área Measures in the Metadata, expanda o grupo de medidas Delivery e, em seguida, expanda a entrada Delivery dentro dele. Clique duas vezes em Package Weight para adicioná-lo à expressão.

  31. Insira / no final da expressão. Clique duas vezes em Delivery Count para adicioná-la à expressão.

  32. Insira ,2) no final da expressão e clique em Check para verificar a sintaxe da expressão. Clique em OK para fechar a caixa de diálogo Check Syntax. Faça as correções necessárias à expressão, se for encontrado um erro de sintaxe.

  33. Clique em OK para sair da caixa de diálogo Calculated Member Builder.

  34. Arraste o membro calculado AvgWeight para o painel Results, à direita de Delivery Count.

  35. No painel Filter (localizado no canto superior direito do MDX Query Designer) selecione Service Type na lista suspensa da coluna Dimension.

  36. Selecione Description na lista suspensa da coluna Hierarchy.

  37. Selecione Equal na lista suspensa da coluna Operator.

  38. Examine os valores na janela suspensa da coluna Filter Expression, mas não faça nenhuma seleção. A coluna Filter Expression lhe permite selecionar um ou mais valores para o lado direito da expressão do filtro. Em vez de fazer isso no momento da criação, vamos deixar para que os usuários o façam no momento da execução. Clique em Cancel para sair da janela suspensa.

  39. Marque a caixa da coluna Parameters. Esta seleção permite ao usuário selecionar os valores da expressão do filtro no momento da execução. Deve aparecer o MDX Query Designer, como mostra a Figura 2.

    Figura 2. O MDX Query Designer contendo a consulta do Relatório de análise de entrega (clique na imagem para vê-la ampliada)

Tarefa 1 Notas

O MDX Query Designer funciona quase que inteiramente por meio do ato de arrastar e soltar. Arrastamos medidas, dimensões e hierarquias do painel Metadata Browser e as colocamos no painel Results para criar nossa consulta. Podemos, igualmente, definir membros calculados e adicioná-los ao painel Results.

Na parte superior do painel Metadata encontra-se o nome do cubo que está sendo consultado. Para selecionar um cubo diferente, clique no botão ... e faça a seleção na caixa de diálogo Cube Selection exibida.

Note que existem dois botões de atualização na barra de ferramentas para o designer. O botão à esquerda atualiza os campos referentes ao conjunto de dados na janela Datasets. O botão à direita atualiza os metadados do cubo. O botão picareta da barra de ferramentas alterna do MDX Query Designer para o DMX Query Designer. O botão eixo X e eixo Y da barra de ferramentas alterna de volta para o MDX Query Designer. O MDX Query Designer é usado para consultar cubos, enquanto que o DMX Query Designer é usado para consultar modelos de mineração de dados em um banco de dados do Analysis Services. Uma vez que o mesmo banco de dados do Analysis Services pode conter tanto cubos, quanto modelos de mineração de dados, o Report Designer talvez não seja capaz de indicar qual Query Designer é necessário apenas examinando o banco de dados. Portanto, é necessário haver um modo de alternar entre os dois.

O botão Show Empty Cells da barra de ferramentas alterna entre exibir e ocultar células vazias no painel Results. Uma célula vazia é uma combinação de dimensão e de membros de hierarquia que possuem um valor nulo para cada medida, calculada ou não, no painel Results. Se as células vazias estiverem ocultas no painel Results, elas também estarão ocultas na consulta de relatório final. O botão Design Mode da barra de ferramentas lhe permite alternar entre o modo de design e o modo de consulta da consulta MDX. Se você se sentir confortável com a sintaxe de consulta MDX, convém digitar suas consultas em modo de exibição de consulta, em vez de criá-las através do método de programação de arrastar e soltar do modo de exibição de design. O botão Auto Execute da barra de ferramentas alterna para o modo auto-executar no Query Designer. Quando o modo auto-executar está ativado, o cubo é consultado novamente e o painel Results é atualizado toda vez que um item é adicionado ou removido dele.

O painel Filters lhe permite tanto codificar expressões do filtro no momento da criação, quanto usar parâmetros de relatório para que o usuário faça as seleções no momento da execução. Quando a caixa de seleção Parameters está marcada, é criado um filtro parametrizado. Várias coisas acontecem quando movemos da guia Data para a guia Layout pela primeira vez, depois que um filtro parametrizado é adicionado à consulta. Quando isso ocorre, o Report Designer cria um novo conjunto de dados para cada item usado no filtro parametrizado. Esse conjunto de dados inclui todos os membros válidos daquele item.

Além dos conjuntos de dados, são criados novos parâmetros de relatório para cada filtro parametrizado. Eles são usados para preencher os valores disponíveis para esses parâmetros de relatório. Os parâmetros de relatório aceitam vários valores. Usando este mecanismo, o usuário pode selecionar um ou mais membros válidos para utilização nos filtros parametrizados no momento em que o relatório é executado.

Relatório de análise de entrega, Tarefa 2

  1. Selecione a guia Layout.

  2. Coloque uma caixa de texto no corpo do relatório e configure suas propriedades da seguinte maneira:

    Tabela 1

    Propriedade

    Valor

    Fonte: TamanhoDaFonte

    20 pt

    Fonte: EspessuraDaFonte

    Negrito

    Local: Esquerda

    0 cm (0 pol)

    Local: Em cima

    0 cm (0 pol)

    Tamanho: Largura

    14,92 cm (5,875 pol)

    Tamanho: Altura

    0,95 cm (0,375 pol)

  3. Configure o conteúdo da caixa de texto com a seguinte expressão:

    =ReportUtil.Localization.LocalizedString("DeliveryReportTitle",User!Language) 
    
  1. Coloque uma matriz no corpo do relatório.

  2. Expanda o banco de dados DeliveryInfo e arraste DeliveryQuarter para a célula Columns. Clique no botão Bold e no botão Center da barra de ferramentas.

  3. Arraste CustomerName para a célula Linhas. Clique no botão Bold da barra de ferramentas.

  4. Arraste Delivery_Count para a célula Data.

  5. Arraste AvgWeight para a mesma célula em que Delivery_Count foi colocada. Arraste-a para o lado direito da célula. Isso faz com que uma segunda coluna de dados seja criada, à direita da primeira.

  6. Insira a seguinte expressão na caixa de texto que contém Delivery:

    =ReportUtil.Localization.LocalizedString("DeliveryCountColHead",User!Language) 
    
  1. Insira a seguinte expressão na caixa de texto que contém AvgWeight:

    =ReportUtil.Localization.LocalizedString("AvgWeightColHead",User!Language) 
    
  1. Abra a caixa de diálogo Report Parameters. É possível observar o parâmetro de relatório ServiceTypeDescription, criado para atuar com o filtro parametrizado.

  2. Insira Select Service Types no Prompt.

  3. Clique em OK para sair da caixa de diálogo Report Parameters.

  4. Selecione a guia Preview. Marque All na lista suspensa Select Service Types e clique em View Report. O relatório é exibido na Figura 3.

    Figura 3. O Relatório de análise de entrega (clique na imagem para ampliá-la)

  5. Selecione Save All na barra de ferramentas.

Tarefa 2 Notas

Você deve ter observado que nós não digitamos as seqüências de caracteres de texto para o título e os dois cabeçalhos de coluna do relatório. Em vez disso, usamos as expressões que chamam o método LocalizedString da classe Localization no assembly ReportUtil. (Localization se refere ao processo de fazer com que um relatório ou programa de computador seja exibido no idioma de determinado local.) Este método requer dois parâmetros: o nome da seqüência de caracteres a localizar e o idioma para o qual deve ser localizada. O nome da seqüência de caracteres está codificada em cada expressão. O idioma é proveniente da variável global User!Language. Essa variável global é preenchida com o idioma do aplicativo cliente que solicita o relatório.

O assembly ReportUtil usa vários arquivos de recurso para gerenciar a localização. Existe um arquivo de recurso para cada idioma a que deve oferecer suporte. No código de demonstração fornecido neste exemplo, o ReportUtil possui apenas dois arquivos de recurso: um para inglês e outro para espanhol. Para oferecer suporte a outro idioma, basta adicionar outro arquivo de recurso e criar novamente o projeto.

Nós usamos o método LocalizedString para obter versões localizadas do título do relatório e dos cabeçalhos das duas colunas. O restante do conteúdo do relatório são nomes próprios ou algarismos. Eles não precisam ser traduzidos. Se você for atento, notará que o prompt e os itens da lista suspensa de parâmetros de relatório não foram localizados. Não podemos usar expressões para nenhum desses itens, portanto, não podemos usar nosso método inteligente LocalizedString.

O conteúdo da lista suspensa é selecionado a partir do banco de dados e, portanto, uma parte da localização dos dados poderia ser feita como parte da consulta. O parâmetro de relatório é um problema maior. Na verdade, a versão atual do Reporting Services não possui um bom modo de lidar com isto.

Carregamento de relatórios usando .NET Assemblies

Agora, vamos observar as etapas necessárias para mover um relatório que faz referência a um .NET assembly para o Report Server.

Copiando o .NET Assembly para o Report Server

Para que um relatório acesse um .NET assembly, ele deve estar na pasta de aplicativos do Report Server. Não é necessária nenhuma rotina especial de implantação, carregamento ou instalação. Apenas copie o arquivo DLL do assembly para o diretório apropriado. Podemos dar um exemplo disto usando o Relatório de análise de entrega e seu .NET assembly, o ReportUtil.dll. As etapas são as seguintes:

  1. Localize o arquivo ReportUtil.dll. É necessária também a pasta ES, que contém a versão em espanhol do ReportUtil.dll. Essa versão em espanhol se chama ReportUtil.dll. (O nome da pasta, ES, é o código de duas letras para espanhol.) Se não encontrá-los em nenhum outro lugar, eles devem estar na pasta Public Assemblies do seu computador de desenvolvimento. O caminho padrão para a pasta Public Assemblies é:

    C:\Arquivos de Programas\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies.

  2. Copie e cole o arquivo e a pasta ES na pasta de aplicativos do Report Server no computador que estiver funcionando como seu servidor de relatórios. O caminho padrão para a pasta de aplicativos do Report Server é:

    C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.3\Reporting Services\ ReportServer\bin.

Segurança do Acesso ao Código

Como o Reporting Services é um aplicativo .NET, ele usa a segurança de acesso a código para determinar quais permissões de execução cada assembly possui. Um grupo de acesso ao código associa assemblies com permissões específicas. Os critérios para associação em um grupo de acesso ao código são determinados por uma classe de segurança e as permissões são determinadas por conjuntos de permissões nomeadas.

A Figura 4 exibe uma ilustração da segurança de acesso ao código. Um .NET assembly ou um serviço da Web só ganhará entrada em um grupo de acesso ao código se atender aos critérios especificados pela classe de segurança. Ao receber autorização a um grupo de acesso ao código, o .NET assembly ou o serviço da Web pode usar o conjunto de permissões nomeadas associadas ao grupo para ganhar direitos. Esses direitos permitem ao .NET assembly ou serviço da Web realizar tarefas em um computador. Uma série de diferentes tipos de direitos pode ser incluída em um conjunto de permissões nomeadas.

Figura 4: Segurança de Acesso ao Código

Os grupos de acesso ao código podem ser aninhados um dentro do outro. Um .NET assembly ou um serviço da Web pode ser admitido em um grupo pai e ganhar suas permissões; em seguida, pode tentar se associar a grupos filhos de acesso ao código, para acumular direitos adicionais. Um grupo de acesso ao código pode ser um grupo de códigos de primeira correspondência, no qual um .NET assembly ou um serviço da Web consegue se associar somente a um único grupo - o primeiro que ele se corresponde. Ou, então, pode ser um grupo de códigos de união, no qual um .NET assembly ou um serviço da Web é admitido como membro em uma série de grupos de acessos ao código, reunindo as permissões de cada grupo.

Classes de segurança

Uma classe de segurança descreve as condições que um .NET assembly ou um serviço da web precisa atender para entrar em um grupo de acesso ao código. Nós usamos a classe de segurança StrongNameMembershipCondition para o assembly ReportUtil.dll.

A classe de segurança UrlMembershipCondition diz que todo assembly ou serviço da Web que estiver sendo executado a partir de uma URL específica pode ser incluído em um grupo de acesso ao código em particular. A URL a ser correspondida é listada em cada grupo de acesso ao código, usando a classe de segurança UrlMembershipCondition. Por exemplo, o grupo de acesso ao código MeuServidor pode usar a UrlMembershipCondition e indicar http://MeuServidor/* como a URL a ser correspondida. Qualquer serviço da Web em execução em MeuServidor seria incluído nesse grupo de acesso ao código.

A classe de segurança StrongNameMembershipCondition usa o nome forte associado ao assembly para identificá-lo. O nome forte, uma seqüência de caracteres de dígitos hexadecimais longa que identifica exclusivamente um assembly, é atribuído ao assembly quando ele é criado. A classe de segurança StrongNameMembershipCondition é uma boa forma de garantir que somente o assembly tencionado receba autorização para o grupo de acesso ao código.

Existem algumas outras classes de segurança na configuração de segurança do Report Server. A classe de segurança AllMembershipCondition permite a entrada a todos os .NET assemblies e serviços da Web. A classe de segurança ZoneMembershipCondition permite a entrada de .NET assemblies e serviços da Web originários de uma zona em particular. Alguns exemplos de zona são Meu Computador, intranet e Internet.

Conjuntos de permissões nomeadas

Os conjuntos de permissões nomeadas agrupam as permissões a serem atribuídas por grupos de acesso ao código. A configuração de segurança usada pelo Report Server contém três conjuntos de permissões nomeadas:

  • A permissão Nothing, que não concede direitos, é usada para afastar inicialmente todos os direitos de um .NET assembly ou serviço da Web antes dos direitos específicos serem adicionados novamente por grupos de acesso ao código subseqüentes. Isso assegura que cada .NET assembly ou serviço da Web tenha apenas os direitos apropriados.

  • A permissão Execution concede direitos de execução a um .NET assembly ou serviço da Web. Isso significa que o .NET assembly ou serviço da Web pode ser executado. Eles, porém, não têm o direito de acessar nenhum recurso protegido, como o sistema de arquivos, o registro ou a Internet.

  • A permissão FullTrust concede-lhes acesso a tudo. Incluindo acesso a todos os recursos protegidos. A permissão FullTrust deve ser concedida apenas a .NET assemblies e serviços da Web nos quais você confie plenamente e que não vão bagunçar o seu computador!

Modificação da configuração de segurança do Report Server

Agora que você tem uma compreensão básica da segurança de acesso ao código, podemos modificar a configuração de segurança do Report Server para permitir a execução do ReportUtil.dll.

Cuidado   Consulte o administrador da rede ou do servidor antes de fazer qualquer alteração na segurança de servidores.

Precisamos acrescentar algumas coisas à configuração de segurança do Report Server para fornecer a nossos assemblies personalizados os direitos de que necessitam para executar. A configuração de segurança do Report Server está no arquivo rssrvpolicy.config. O caminho padrão para o arquivo é:

C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.3\Reporting Services\ ReportServer.

Esse arquivo contém as informações de segurança de acesso ao código em uma estrutura XML.

Cuidado   Faça um backup do arquivo rssrvpolicy.config antes de modificá-lo. Se você, por acidente, criar uma estrutura XML inválida ou causar algum outro problema na configuração de segurança, o Report Server não conseguirá executar nenhum relatório.

A estrutura XML do arquivo rssrvpolicy.config pode ser dividida em três seções: Classes de segurança, Conjuntos de permissões nomeadas e Grupos de códigos. Precisamos fazer alterações apenas na seção Grupos de códigos do documento. São estas as etapas a cumprir:

  1. Abra o arquivo rssrvpolicy.config no Bloco de notas ou em outro editor de texto.

  2. Role para baixo até localizar a parte Grupo de códigos do documento. A parte Grupo de códigos começa na linha seguinte à marca XML de fechamento dos conjuntos de permissões nomeadas:

    </NamedPermissionSets> 
  3. O primeiro grupo de códigos é o pai, que usa AllMembershipCondition para atribuir a permissão Nothing a todos os .NET assemblies e serviços da Web. Um outro grupo de códigos pai usa ZoneMembershipCondition para atribuir Execute permissions to all .NET assemblies and Web services na zona MyComputer. Vamos adicionar um novo grupo de códigos filho abaixo dele. Insira o novo grupo de códigos conforme mostrado aqui (adicione as linhas que estão em negrito). Observe que Description e PublicKeyBlob devem ser inseridos cada um em uma linha.

  4. Salve o arquivo modificado e saia do editor de texto.

Implantando o relatório

Queremos apenas uma fonte de dados compartilhada para cada conexão distinta de que necessitam nossos relatórios. Esse pequeno grupo de fontes de dados compartilhadas deve ser colocado em um local central. O que ainda nos deixa com a tarefa de apontar manualmente cada relatório no grupo central de fontes de dados compartilhadas, depois do carregamento de cada relatório.

Há uma propriedade na caixa de diálogo Property Pages do projeto de relatório que especifica o caminho para a pasta em que a fonte de dados compartilhada deve ser implantada. Vamos tentar implantar o Relatório de análise de entrega do Report Designer utilizando essa propriedade. Tente o seguinte:

  1. Abra o projeto Chapter08 no Visual Studio ou no Business Intelligence Development Studio.

  2. No menu Main, selecione Project | Chapter08 Properties. A caixa de diálogo Chapter08 Property Pages é exibida.

  3. Insira /Serviços de Entrega Galática/Fontes de Dados Compartilhadas/ em TargetDataSourceFolder.

  4. Insira /Serviços de Entrega Galática/Chapter 08/ em TargetReportFolder.

  5. Insira http://Nome do Computador/ReportServer em TargetServerURL. Substitua o nome do computador que hospeda o Reporting Services em ComputerName.

  6. Clique em OK para fechar a caixa de diálogo Chapter08 Property Pages.

  7. Selecione Save All na barra de ferramentas.

  8. Clique com o botão direito do mouse na entrada do relatório DeliveryAnalysis na janela Solution Explorer e selecione Deploy no menu Context.

  9. Alterne para o navegador e vá até a pasta Chapter 08.

  10. Execute o relatório DeliveryAnalysis.

  11. Selecione um número dos tipos de serviço na lista suspensa e clique em View Report. O relatório é exibido utilizando a fonte de dados compartilhada localizada na pasta Shared Data Sources.

Alguns aspectos de localização

Você deve se lembrar de que usamos o assembly ReportUtil.dll para apresentar os rótulos do relatório tanto em inglês, quanto em espanhol. O parâmetro User!Language foi transmitido para que o método LocalizedString recupere os rótulos do relatório no idioma apropriado. O parâmetro User!Language contém a definição de idioma do aplicativo que solicita o relatório. Quando utilizamos o Report Manager, esse aplicativo é o navegador.

Vamos tentar alterar a definição de idioma do navegador e ver se nossa localização funciona como deve. (As orientações a seguir se aplicam ao Microsoft Internet Explorer.)

  1. Selecione Ferramentas | Opções da Internet no menu principal do Internet Explorer. A caixa de diálogo Opções da Internet é exibida.

  2. Clique em Idiomas. A caixa de diálogo Preferência de idioma é exibida.

  3. Se não houver uma entrada para Espanhol (México) [es-mx] na lista Idioma, clique em Adicionar. A caixa de diálogo Adicionar idioma é exibida.

  4. Realce Espanhol (México) [es-mx] na lista Idioma e clique em OK para sair da caixa de diálogo Adicionar idioma.

  5. Realce Espanhol (México) [es-mx] na lista Idioma e clique em Mover para cima quantas vezes forem necessárias para mover a entrada Espanhol para a parte superior da lista.

  6. Clique em OK para sair da caixa de diálogo Preferência de idioma. Clique em OK para sair da caixa de diálogo Opções da Internet.

  7. Clique no botão Atualizar relatório da barra de ferramentas do Report Viewer. Agora, o parâmetro User!Language tem o valor es-mx, pois você definiu o idioma principal de seu navegador como Espanhol (México). Por isso, o título do relatório e os cabeçalhos das colunas agora estão em espanhol, como mostra a Figura 5.

    Figura 5. Relatório de análise de entrega com título e cabeçalhos de coluna localizados em espanhol (clique na imagem para aumentá-la)

  8. Use a caixa de diálogo Preferência de idioma para excluir a entrada Espanhol, caso a tenha criado nas Etapas 3 e 4. Certifique-se de colocar novamente o idioma correto na parte superior da lista Idioma.

O assembly ReportUtil.dll possui arquivos de recurso para inglês e espanhol. Inglês é o idioma padrão. Se o parâmetro transmitido ao método LocalizedString for uma das variações culturais do espanhol, o método usará o arquivo de recurso Espanhol para buscar o texto do título do relatório ou de um cabeçalho de coluna. Se qualquer outra coisa for transmitida ao método LocalizedString, será usado o arquivo de recurso Inglês.

Livros relacionados

Microsoft SQL Server 2005 Reporting Services

Delivering Business Intelligence with Microsoft SQL Server 2005

Microsoft SQL Server 2000 Reporting Services

Conclusões

Antes de instalar o SQL Server, o Administrador deve efetuar os três passos de preparação para efetuar a instalação de forma simples e tranqüila. Os passos da pré-instalação são: Escolha da Edição, baseado nas necessidades do ambiente; Verificação do Hardware, para que o mesmo atenda as necessidades do SQL Server; e Verificação do Software, garantindo que o Sistema Operacional oferecerá o suporte solicitado ao SGBD.

Você pode encontrar mais informações sobre as edições e requisitos do SQL Server 2005 no endereço: https://www.microsoft.com/brasil/sql/. No próximo artigo, abordaremos as considerações e passos necessários para efetuar uma instalação do SQL Server 2005 em um servidor que possui instalada uma versão anterior do SQL Server. Até lá.

Herleson Paiva Pontes (herleson@hotmail.com) é Estudante Embaixador Microsoft, Culminis Speaker Member, líder do Grupo Office.CE e Office Specialist. Diretor de TI da StudioSphere, empresa de desenvolvimento de soluções Web e suporte de computadores. Possui 5 anos de experiência em desenvolvimento Web e 8 anos em desenvolvimento de Sistemas Desktop. Articulista da SQL Magazine, Integrante do TheSpoke e Palestrante Oficial da Microsoft. Já foi professor em cursos como SOS Computadores, Sigma e Active Brasil. Atualmente ensina cursos Microsoft e Adobe na Evolução Informática. Certificado pela Microsoft, Adobe, IBM e Intel; Técnico em Programação e em Hardware.