Partilhar via


Compreendendo os conjuntos de dados de relatório

É possível visualizar os dados de um conjunto de dados de relatório como um conjunto de linhas e colunas. Deve haver pelo menos uma coluna e zero ou mais linhas. Em tempo de design, você cria uma consulta que especifica as colunas a serem recuperadas da fonte de dados. Você está trabalhando com metadados durante o tempo de design, logo, é possível vincular campos de conjunto de dados a regiões de dados e itens de relatório na superfície de design. Em tempo de execução, o processador de relatório recupera os dados reais e os integra ao layout de relatório. Em seguida, o relatório é passado para um processador de relatório, usado para exibir o relatório.

Ao executar uma consulta de conjunto de dados em um designer de consulta no tempo de design, você vê um conjunto de linhas da fonte de dados que mostra dados de exemplo. Em tempo de execução, quando um usuário exibe o relatório, a consulta de conjunto de dados pode produzir valores diferentes porque os dados foram alterados na fonte. Sempre que o relatório é processado, podem aparecer dados novos.

Compreendendo dados de conjunto de dados do relatório

Um conjunto de dados de relatório pode consistir nos seguintes tipos de dados:

  • Um conjunto de resultados de um banco de dados relacional, que pode ser resultante da execução de comandos de banco de dados, procedimentos armazenados ou funções definidas pelo usuário. Caso vários conjuntos de resultados sejam recuperados com uma única consulta, apenas o primeiro será processado e todos os demais serão ignorados. Por exemplo, quando você executa a seguinte consulta no designer de consulta baseado em texto, apenas o conjunto de resultados de Production.Product é exibido no painel de resultados:

    SELECT ProductID FROM Production.Product
    GO
    SELECT ContactID FROM Person.Contact
    
  • Um conjunto de linhas bidimensional de fontes de dados multidimensionais que usam o protocolo XMLA (XML for Analysis). Alguns provedores de dados fornecem propriedades adicionais de célula e dimensão da fonte de dados que não é possível ver no conjunto de resultados, mas que estão disponíveis no relatório.

  • Um conjunto de resultados bidimensional de fontes de dados XML que incluem elementos XML, seus atributos e elementos filhos.

  • Um conjunto de resultados de qualquer provedor de dados do .NET Framework registrado e configurado.

  • Dados de um modelo de relatório criado para uma fonte de dados específica, com entidades predefinidas, relações entre entidades e campos. Para obter mais informações, consulte Usando modelos de relatórios como conjuntos de dados predefinidos.

Quando o relatório é processado em tempo de execução, o conjunto de resultados real retornado para uma consulta pode ter zero ou mais linhas. Também é possível que as colunas definidas na consulta não sejam encontradas na fonte de dados. Valores nulos da fonte de dados são mapeados para o .NET Framework valor System.DBNull.Value.

Definindo propriedades de dados

Ao definir um conjunto de dados de relatório, você pode configurar propriedades de dados na consulta ou aceitar os padrões definidos pelo provedor de dados. É possível alterar um tipo de dados usando uma das seguintes estratégias:

  • Reescreva a consulta de conjunto de dados para converter especificamente um campo em um tipo de dados diferente.

  • Edite o campo no conjunto de dados e forneça um formato personalizado.

  • Crie um novo campo personalizado com base em um campo do banco de dados e forneça um formato personalizado.

Para fontes de dados que ofereçam suporte a dados internacionais, talvez você precise ajustar as propriedades de um conjunto de dados que afetam a ordem de classificação, as propriedades de caractere internacional e se deve tratar caracteres em maiúsculas e minúsculas como sendo equivalentes. Entre essas propriedades estão maiúsculas/minúsculas, Kana, largura, acentuação e agrupamento. Para obter mais informações, consulte Considerações internacionais para aplicativos de banco de dados e aplicativos do Mecanismo de Banco de Dados e Trabalhando com agrupamentos. Para obter mais informações sobre como definir essas propriedades, consulte Caixa de diálogo Propriedades do Conjunto de Dados, Opções.

Compreendendo os tipos de dados de uma coleção de campos do conjunto de dados

Na fonte de dados, os dados são armazenados em tipos de dados aos quais a fonte de dados oferece suporte. Por exemplo, os dados em um banco de dados do SQL Server devem ser tipos de dados SQL Server para os quais há suporte como, por exemplo, nvarchar ou datetime. Quando você recupera dados de uma fonte de dados, os dados passam por uma extensão de processamento ou um provedor de dados associado ao tipo da fonte de dados. Dependendo da extensão de processamento de dados, os dados podem ser convertidos dos tipos de dados usados pela fonte de dados nos tipos de dados aos quais a extensão de processamento de dados oferece suporte. O Reporting Services usa tipos de dados para os quais o CLR (Common Language Runtime) instalado com o Business Intelligence Development Studio oferece suporte. O provedor de dados mapeia todas as colunas do conjunto de resultados do tipo de dados nativo para um tipo de dados CLR do .NET Framework.

A cada estágio, os dados são representados pelos tipos de dados descritos na lista a seguir:

  • Fonte de dados Os tipos de dados para os quais a versão do tipo da fonte de dados oferece suporte e ao qual você está se conectando.

    Por exemplo, entre os tipos de dados típicos de uma fonte de dados do SQL Server estão int, datetime e varchar. Os tipos de dados introduzidos pelo SQL Server 2008 adicionaram suporte a date, time, datetimetz e datetime2. Para obter mais informações, consulte Tipos de dados (Transact-SQL).

  • Provedor de dados ou extensão de processamento de dados   Os tipos de dados para os quais há suporte na versão do provedor de dados da extensão de processamento de dados que você seleciona ao se conectar com a fonte de dados. Os provedores de dados baseados no .NET Framework usam tipos de dados para os quais o CLR oferece suporte. Para obter mais informações sobre tipos de dados do provedor de dados do .NET Framework, consulte Mapeamentos de tipos de dados (ADO.NET) e Trabalhando com tipos base no MSDN.

    Por exemplo, entre os tipos de dados típicos suportados pelo .NET Framework estão Int32 e String. A estrutura DateTime oferece suporte a datas e horas do calendário. O .NET Framework 2.0 Service Pack 1 introduziu suporte à estrutura DateTimeOffset para datas com deslocamento de fuso horário.

    ObservaçãoObservação

    O servidor de relatório usa os provedores de dados instalados e configurados no servidor de relatório. Clientes de criação de relatório em modo de Visualização usam as extensões de processamento de dados instaladas e configuradas na máquina cliente. Você deve testar o relatório no ambiente do cliente de relatório e do servidor de relatório.

  • Processador de relatório   Os tipos de dados se baseiam na versão do CLR instalada quando você instalou o Reporting Services. O SQL Server 2008Reporting Services instala o CLR baseado no .NET Framework 3.5.

    Por exemplo, os tipos de dados que o processador de relatório usa para os tipos de data e hora novos introduzidos no SQL Server 2008 são mostrados na tabela a seguir:

    Tipo de dados SQL

    Tipo de dados CLR

    Descrição

    Date

    DateTime

    Somente data

    Time

    TimeSpan

    Somente hora

    DateTimeTZ

    DateTimeOffset

    Data e hora com deslocamento de fuso horário

    DateTime2

    DateTime

    Data e hora com milissegundos fracionários

Para obter mais informações sobre os tipos de bancos de dados do SQL Server, consulte Tipos de dados (Mecanismo de Banco de Dados) e tipos de dados e funções de data e hora (Transact-SQL).

Para obter mais informações sobre como incluir referências a um campo de conjunto de dados de uma expressão, consulte Trabalhando com tipos de dados em expressões (Reporting Services).

Usando vários conjuntos de dados

Normalmente, um relatório tem mais de um conjunto de dados. A seguinte lista descreve como é possível usar conjuntos de dados em um relatório:

  • Você exibe os dados de cada conjunto de dados usando uma região de dados separada. Para obter mais informações, consulte Trabalhando com regiões de dados.

  • Você pode vincular mais de uma região de dados ao conjunto de dados e fornecer várias exibições dos mesmos dados. Para obter mais informações, consulte Vinculando várias regiões de dados ao mesmo conjunto de dados.

  • É possível usar conjuntos de dados para fornecer uma lista suspensa dos valores disponíveis ou padrão de um parâmetro de relatório. Para obter mais informações, consulte Adicionando parâmetros ao relatório.

  • É possível vincular dados relacionados de vários conjuntos de dados usando parâmetros com relatórios de detalhamento ou sub-relatórios. Por exemplo, um relatório de vendas pode mostrar dados resumidos de todas as lojas, e um link para detalhamento pode especificar o identificador da loja como parâmetro de um relatório com uma consulta de conjunto de dados que recupera as vendas individuais da loja especificada. Para obter mais informações, consulte Adicionando relatórios de detalhamento e Adicionando sub-relatórios.

  • Não é possível exibir dados detalhados de vários conjuntos de dados em uma única região de dados. No entanto, você pode exibir valores de função de agregação ou interna de vários conjuntos de dados em uma região de dados. Para obter mais informações, consulte Usando funções internas de relatório e de agregação em expressões (Reporting Services). Caso precise integrar dados detalhados de vários conjuntos de dados a uma região, você deve reescrever a consulta para recuperar os dados como um conjunto único.

Importando consultas existentes de um conjunto de dados

Ao criar um conjunto de dados, você pode criar uma nova consulta ou importar uma existente de um arquivo ou de outro relatório. Só há suporte para os tipos de arquivo .sql e .rdl. As consultas MDX ou DMX (Data Mining Prediction) só podem ser geradas por um designer de consulta do Reporting Services porque é preciso recuperar um conjunto de resultados como um conjunto de linhas bidimensional.

Ao importar uma consulta de outro relatório, você pode escolher qual consulta deve ser importada da lista dos conjuntos de dados no relatório.

Exibindo uma mensagem quando nenhuma linha de dados é recuperada em tempo de execução

Durante o processamento do relatório, quando a consulta a um conjunto de dados é executada, o conjunto de resultados pode não conter nenhuma linha. No relatório renderizado, uma região de dados vinculada a um conjunto de dados vazio é exibida como uma região de dados vazia. É possível especificar um texto a ser exibido no relatório renderizado em lugar da região de dados vazia. Também é possível especificar uma mensagem para sub-relatórios quando as consultas a todos os conjuntos de dados não produzem nenhum dado em tempo de execução. Para obter mais informações, consulte Como definir uma mensagem Nenhum Dado para uma região de dados.

Detectando campos ausentes

Quando o relatório é processado, o conjunto de resultados de um conjunto de dados pode não conter valor algum em relação a todas as colunas especificadas porque elas não existem mais na fonte de dados. É possível usar a propriedade de campo IsMissing para detectar se os valores de um campo foram retornados em tempo de execução. Para obter mais informações, consulte Usando referências de coleções de campos de conjuntos de dados em expressões (Reporting Services).

Exibindo conjuntos de dados ocultos

Quando você cria uma consulta parametrizada a algumas fontes de dados multidimensionais, o Reporting Services cria automaticamente conjuntos de dados para fornecer valores válidos ao parâmetro. Por padrão, esses conjuntos de dados não são exibidos no painel Dados do Relatório. Para obter mais informações, consulte Como mostrar conjuntos de dados ocultos.