Report Definition Language (SSRS)

Report Definition Language (RDL) è una rappresentazione XML di una definizione di report SQL Server Reporting Services (SSRS). Una definizione di report contiene il recupero dati e le informazioni sul layout per un report. RDL è costituito da elementi XML corrispondenti a una grammatica XML creata per Reporting Services. È possibile personalizzare le proprie funzioni per controllare i valori, gli stili e la formattazione degli elementi del report accedendo agli assembly di codice all'interno dei file di definizione del report.

RDL promuove l'interoperabilità di prodotti per la creazione di report commerciali mediante la definizione di un schema comune che consente lo scambio di definizioni dei report. RDL consiste in:

  • XML Schema per le definizioni dei report.
  • Un formato di interscambio per aziende e terze parti.
  • Uno schema estensibile e aperto che supporta spazi dei nomi aggiuntivi ed elementi personalizzati.

Prerequisiti

Con RDL è possibile utilizzare qualsiasi protocollo o interfaccia programmatica appropriato per XML.

Specifiche RDL

Per scaricare le specifiche per versioni dello schema specifiche, vedere Specifica del linguaggio RDL.

XML Schema Definition RDL

Un file RDL di SSRS viene convalidato tramite un file XML Schema Definition (XSD). Lo schema definisce le regole relative alla posizione degli elementi RDL in un file rdl. Un elemento include il tipo di dati e la cardinalità, ovvero il numero di occorrenze consentite. Un elemento può essere semplice o complesso. Un elemento semplice non dispone di attributi o elementi figlio. Un elemento complesso dispone di elementi figlio e può avere degli attributi.

Ad esempio, lo schema seguente include l'elemento RDL ReportParametersche è il tipo complesso ReportParametersType.

  • Per convenzione, un tipo complesso per un elemento è il nome dell'elemento seguito dalla parola Type.
  • Un elemento ReportParameters può essere contenuto dall'elemento Report (un tipo complesso) e contenere elementi ReportParameter .
  • Un ReportParameterType è un tipo semplice che può essere solo uno dei seguenti valori: Boolean, DateTime, Integer, Floato String.

Per altre informazioni sui tipi di dati dell'elemento XML Schema, vedere XML Schema Parte 2: Tipi di dati Seconda edizione.

L'XSD RDL è disponibile nel file ReportDefinition.xsd, contenuto nella cartella Extras nel CD-ROM del prodotto. È anche disponibile nel server di report tramite l'URL seguente: https://servername/reportserver/reportdefinition.xsd.

Creare RDL

La natura aperta ed estensibile di RDL consente di compilare una varietà di strumenti e applicazioni per la generazione di codice RDL in base al relativo schema XML.

Reporting Services fornisce più strumenti per compilare i file RDL. Per altre informazioni, vedere Strumenti di Reporting Services.

  • Generare codice RDL da un'applicazione utilizzando le classi Microsoft .NET Framework dello spazio dei nomi System.Xml e System.Linq.
  • Utilizzare XmlTextWriter per scrivere il codice RDL. Con XmlTextWriterè possibile generare una definizione di report completa in qualsiasi applicazione .NET Framework. Per altre informazioni sulla classe XmlTextWriter e sullo spazio dei nomi System.Xml, vedere la Guida per gli sviluppatori di Microsoft .NET Framework.

Gli sviluppatori possono estendere il linguaggio RDL aggiungendo elementi del report personalizzati con proprietà personalizzate. Per ulteriori informazioni su LINQ (Language-Integrated Query), cercare "LINQ to XML" in Microsoft Developer Network.

L'estensione di file standard per i file di definizione dei report è .rdl. È possibile sviluppare file di definizione dei report del client la cui estensione è .rdlc. Il tipo MIME per entrambe le estensioni è text/xml. Per ulteriori informazioni, vedere Report di Reporting Services (SSRS).

Tipi RDL

Nella tabella seguente vengono elencati i tipi utilizzati negli elementi e negli attributi RDL.

Tipo Descrizione
Binario Proprietà con valore binario codificato in base 64.
Booleano Proprietà con true o false come valore dell'oggetto. Se non diversamente specificato, il valore di un oggetto booleano facoltativo omesso è False.
Data Proprietà con un valore di data o ora specificato per intero nel formato di data ISO8601: AAAA-MM-GG[THH:MM[:SS[.S]]].
Enum Proprietà con un valore di testo stringa che deve essere presente in un elenco di valori designati.
Float Proprietà con un valore float. La virgola (,) viene utilizzata come separatore decimale facoltativo.
Integer Proprietà con un valore intero (int32).
Lingua Proprietà con un valore di testo che contiene un codice di lingua e di paese, ad esempio en-us per Inglese (Stati Uniti). Il valore deve essere una lingua specifica o neutra per la quale è definita una lingua predefinita in Microsoft .NET Framework.
Nome Proprietà con un valore di testo stringa. I nomi devono essere univoci nello spazio dei nomi dell'elemento. Se non viene specificato, lo spazio dei nomi per un elemento è l'oggetto contenitore più interno con un nome.
NormalizedString Proprietà con un valore di testo stringa normalizzato.
Dimensione Un elemento dimensione deve contenere un numero, con un carattere punto utilizzato come un separatore decimale facoltativo. Il numero deve essere seguito da un identificatore per un'unità di lunghezza CSS, ad esempio cm, mm, in, pt o pc. La presenza di uno spazio tra il numero e l'identificatore è facoltativa. Per altre informazioni sulle unità CSS, vedere: Informazioni di riferimento su valori e unità CSS.

In RDL, il valore massimo per Size è 406,4 cm. La dimensione minima è 0 cm.
Stringa Proprietà con un valore di testo stringa.
UnsignedInt Proprietà con un valore intero (uint32) senza segno.
Variant Proprietà con qualsiasi tipo XML semplice.

Tipi di dati RDL

L'enumerazione DataType definisce il tipo di dati di un attributo, di un'espressione o di un parametro in RDL. Nella tabella seguente viene illustrato come i tipi di dati Common Language Runtime (CLR) corrispondono ai tipi di dati RDL.

Tipi CLR Tipo di dati corrispondente
Booleano Booleano
DateTime, DateTimeOffset Data/Ora
Int16, Int32, UInt16, Byte, SByte Intero
Single, Double Float
String, Char, GUID, Timespan String