Exportando para XML

A extensão XML de renderização retorna um relatório no formato XML. O esquema para o XML do relatório é específico para este relatório e contém somente dados. As informações de layout não são renderizadas e a paginação não é mantida pela extensão XML de renderização. O XML gerado por esta extensão pode ser importado para um banco de dados, usado como mensagem de dados XML ou enviado para um aplicativo personalizado.

A tabela a seguir descreve como são renderizados os itens de relatório.

Item

Comportamento da renderização

Relatório

Renderiza como elemento de nível superior do documento XML.

Regiões de dados

Renderiza como um elemento dentro do elemento do respectivo contêiner.

Seções de grupos e detalhes

Cada instância renderiza como um elemento dentro do elemento do respectivo contêiner.

Caixa de texto

Renderiza como um atributo ou elemento do respectivo contêiner.

Retângulo

Renderiza como um elemento dentro do respectivo contêiner.

Grupos de colunas de matriz

Renderiza como elementos dentro de grupos de linhas.

Os relatórios renderizados usando a extensão de renderização XML também seguem essas regras:

  • Os elementos e atributos XML são renderizados na ordem em que aparecem na definição do relatório.

  • A paginação é ignorada.

  • Cabeçalhos e rodapés nas páginas não são renderizados.

  • Os itens ocultos que não podem se tornar visíveis pela alternância não são renderizados. Inicialmente, os itens visíveis e os ocultos que podem tornar-se visíveis por meio da alternância são renderizados.

  • Images, lines, and custom report items são ignorados.

Tipos de dados

Ao elemento ou atributo da caixa de texto é atribuído um tipo de dados XSD baseado nos valores que a caixa de texto exibe.

Se todos os valores da caixa de texto forem:

O tipo de dados atribuído será:

Int16, Int32, Int64, UInt16, UInt32, UInt64, Byte, SByte

xsd:integer

Decimal (ou Decimal e qualquer tipo de dados inteiro ou byte)

xsd:decimal

Float (ou Decimal e qualquer tipo de dados inteiro ou byte)

xsd:float

Double (ou Decimal e qualquer tipo de dados inteiro ou byte)

xsd:double

DateTime or DateTime Offset

xsd:dateTime

Time

xsd:string

Boolean

xsd:boolean

String, Char

xsd:string

Outro

xsd:string

XML - Regras específicas de renderização

As seções a seguir descrevem como as extensões de renderização XML interpretam os itens dentro do relatório.

Corpo do relatório

Um relatório é renderizado como elemento raiz do documento XML. O nome do elemento é obtido do conjunto de propriedades DataElementName no painel Propriedades.

As definições do XML namespace e os atributos de referência do esquema estão também incluídos no elemento do relatório. As variáveis estão observadas em tipo de face em negrito:

<Relatório xmlns=”SchemaName” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instância” xsi:schemaLocation=”SchemaNameReportURL&amp;rc%3aSchema=true” Name=”ReportName”>

Os valores das variáveis são os seguintes:

Nome

Valor

Relatório

Report.DataElementName

ReportURL

URLEncoded URL absoluto para o relatório no servidor.

SchemaName

Report.SchemaName. Se nulo, então Report.Name. Se o Report.Name for usado, ele será codificado primeiro com XmlConvert.EncodeLocalName.

ReportName

O nome do relatório.

Caixas de texto

Caixas de texto são renderizadas como elementos ou atributos de acordo com a DataElementStyle propriedade RDL. O nome do elemento ou do atributo é obtido do TextBox.DataElementName Propriedade do RDL.

Gráficos

Os gráficos são renderizados em XML. Os dados dos gráficos são estruturados.

Sub-relatórios

Um sub-relatório é renderizado como um elemento. O nome do elemento é obtido da DataElementName propriedade RDL. A configuração da propriedade TextBoxesAsElements do relatório anula aquela do sub-relatório. Namespace e atributos XSLT não são adicionados ao elemento de sub-relatório.

Retângulos

Um retângulo é renderizado como um elemento. O nome do elemento é obtido da DataElementName propriedade RDL.

Itens de Relatório Personalizados

CustomReportItems (CRI) não são visíveis à extensão de renderização. Se um item de relatório personalizado existir no relatório, a extensão de renderização o executa como um item de relatório convencional.

Imagens

As imagens não são renderizadas.

Linhas

As linhas não são renderizadas.

Tabelas, Matrizes e Listas

Tabelas, matrizes e listas são renderizadas como um elemento. O nome do elemento é obtido da DataElementName propriedade RDL da Tablix.

Linhas e Colunas

As colunas são renderizadas dentro das linhas.

Canto do Tablix

O canto não é renderizado. Apenas o conteúdo do canto é renderizado.

Células Tablix

As células Tablix são renderizadas como elementos. O nome do elemento é obtido da DataElementName propriedade RDL da célula.

Subtotais automáticos

Os subtotais automáticos do Tablix não são renderizados.

Itens de linha e de coluna que não se repetem com um grupo

Os itens que não se repetem com um grupo, como os rótulos, subtotais e totais são renderizados como elementos. O nome do elemento é obtido do TablixMember.DataElementName Propriedade do RDL.

A TablixMember.DataElementOutput propriedade RDL controla se um item não repetente é renderizado.

Se a propriedade DataElementName do membro do Tablix não é fornecida, um nome para o item não repetente é gerado dinamicamente neste formulário:

RowX – Para linhas não-repetentes, onde X é um índice de linha baseado em zero dentro do pai atual.

ColumnY. Para as colunas não-repetentes, onde ix Y é um índice de coluna baseado em zero dentro do pai atual.

Um cabeçalho não-repetente é renderizado como um filho da linha ou coluna que não se repete em um grupo.

Se um membro não-repetitivo não tiver nenhuma Tablix célula correspondente, ele não será renderizado. Isto pode ocorrer no case de uma célula Tablix onde atravessa mais de uma coluna.

Linhas e Colunas que se repetem com um grupo

Linhas e colunas que se repetem dentro de um grupo são renderizadas de acordo com as regras Tablix.DataElementOutput. O nome do elemento é obtido da DataElementName propriedade.

Cada valor exclusivo dentro de um grupo é renderizado como um elemento filho do grupo. O nome do elemento é obtido da propriedade Group.DataElementName.

Se o valor da propriedade DataElementOutput for igual à Saída, o cabeçalho de um item repetente será renderizado com um filho do elemento de detalhes.

Formatos Personalizados e transformações de XSL

Os arquivos XML produzidos pela extensão de renderização XML podem ser transformados em qualquer formato que utiliza as Transformações de XSL (XSLT). Esta funcionalidade pode ser usada para produzir dados em formatos que já não têm suporte pelas extensões de renderização existentes. Considere o uso da extensão de renderização XML e o XSLT antes de tentar criar sua própria extensão de renderização.

Nomes em duplicidade

Se houver nomes de elemento de dados duplicados dentro do mesmo escopo, o processador exibirá uma mensagem de erro.

Transformações XSLT

O processador XML pode aplicar uma transformação de XSLT do lado de servidor para os dados de XML originais. Quando um XSLT é aplicado, o processador emite o conteúdo transformado ao invés dos dados XML originais. A transformação ocorre no servidor, não no cliente.

O XSLT a ser aplicado à saída é definido no arquivo de definição do relatório com a propriedade DataTransform do relatório ou com o parâmetro XSLT DeviceInfo. Se nenhum desses valores for definido, a transformação ocorre sempre que o processador XML é usado. Ao usar assinatura, o XSLT deve ser definido na propriedade RDL DataTransform.

Se um arquivo XSLT estiver especificado, tanto pela propriedade de definição DataTransform como pela definição das informações do dispositivo, o XSLT especificado no DataTransform ocorre primeiro, seguido pelo XSLT configurado pelas definições das informações do dispositivo.

Configurações de informações de dispositivo

Você pode alterar algumas configurações padrão para este processador alterando as configurações de informações de dispositivo, inclusive o seguinte:

  • Uma transformação (XSLT) para aplicar ao XML.

  • O tipo MIME do documento XML.

  • Se for aplicar strings de formato aos dados.

  • Se recuar a saída do XML.

  • Se incluir o nome de esquema XML.

  • A codificação para o documento XML.

  • A extensão de arquivo do documento XML.

Para obter mais informações, consulte Configurações de Informações de Dispositivo para Relatórios.