Na raportach prezentowane są dane określane w definicjach raportów jako elementy. Elementy znajdują się w sekcji Elements definicji raportu, zaś poszczególny element opatrzony są sekcją Element według następującego przykładu:
<Element>
…
</Element>
</Elements>
Element raportu może zawierać następujące sekcje:
Nazwa | Id |
Opis | Identyfikator elementu |
Zawartość | Wartość liczbowa |
Parametry | Brak |
Nazwa | HeaderSql |
Opis | Wartość tekstowa lub polecenie SQL zwracające wartość wyświetlaną w nazwie elementu na raporcie |
Zawartość | Dowolna wartość tekstowa lub polecenie SQL |
Parametry | Brak |
Nazwa | Type |
Opis | Typ elementu |
Zawartość | Jedna z poniższych wartości tekstowych:
|
Parametry | Brak |
Nazwa | Sql |
Opis | Polecenie SQL zwracające dane wyświetlane w elemencie |
Zawartość | Polecenie SQL |
Parametry | Brak |
Nazwa | IsExecute |
Opis | Znacznik decydujący czy polecenie SQL z sekcji Sql ma zostać wykonane |
Zawartość | Wartość true, false lub polecenie SQL zwracające jedną z tych wartości |
Parametry | Brak |
Nazwa | TableHeader |
Opis | Nagłówek tabeli. Używane z typem elementu Table. |
Zawartość | Jeden element LayoutRow i jeden HeaderRow |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | TableHeader: LayoutRow |
Opis | Znacznik wiersza tabeli |
Zawartość | Jeden lub więcej element SpaceColumn |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | TableHeader: LayoutRow: SpaceColumn |
Opis | Określa szerokość kolumny |
Zawartość | Brak |
Parametry |
|
<LayoutRow> <SpaceColumn width="10"/> <SpaceColumn width="5"/> <SpaceColumn width="10"/> <SpaceColumn width="5"/> </LayoutRow>
Nazwa | TableHeader: HeaderRow |
Opis | Znacznik nagłówka tabeli |
Zawartość | Jeden lub więcej element TextColumn |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | TableHeader: HeaderRow: TextColumn |
Opis | Określa nazwę kolumny w tabeli |
Zawartość | Dowolna wartość tekstowa |
Parametry |
|
<HeaderRow> <TextColumn>Rejon</TextColumn> <TextColumn>Plan</TextColumn> <TextColumn precision="2">Realizacja</TextColumn> <TextColumn precision="2">%</TextColumn> </HeaderRow>
<Element> <Id>31</Id> <Header>Realizacja w podziale na towary</Header> <Type>Table</Type> <Sql> <![CDATA[ DECLARE @OperatorId int SELECT @OperatorId = vad.OperatorId FROM esm.vAuthData vad WHERE LOWER(vad.[Login]) = LOWER(@LoginName) declare @Articles table ( [Acronym] nvarchar(max), [Name] nvarchar(max), [Group] nvarchar(max), [Quantity] numeric(12,4), [Value] numeric(12,2), [Progress] numeric(12,2) ) insert into @Articles([Acronym], [Name], [Group], [Quantity], [Value], [Progress]) exec esm.[Reports_GetSalePlansTable1_pol] @OperatorId, @SalesPlan, 1, @DocumentType select ISNULL([Acronym], '') as [Acronym], ISNULL([Name], '') as [Name], ISNULL([Group], '') as [Group], [Quantity], [Value], [Progress] from @Articles ]]> </Sql> <IsExecute> <![CDATA[ SELECT CASE WHEN @RealizationType = 1 THEN 1 ELSE 0 END ]]> </IsExecute> </Element>
Tak zdefiniowany element w aplikacji wygląda następująco:
Nazwa | NonGroupingColumns |
Opis | Łączy kolumny tabeli z kolumnami tabeli wynikowej polecenia SQL. |
Zawartość | Brak |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | TotalSummaryColumns |
Opis | Wiersz zawierający podsumowania poszczególnych kolumn na podstawie wcześniejszych wartości |
Zawartość | Brak |
Parametry | Brak |
Elementy podrzędne |
|
Definicja powyższego wiersza podsumowania wygląda następująco:
<TotalSummaryColumns> <TextColumn align="center">Podsumowanie</TextColumn> <TextColumn></TextColumn> <SqlColumn align="center" precision="2">TotalOrdersNetValue</SqlColumn> <SqlColumn align="center" precision="2">TotalOrdersGrossValue</SqlColumn> <SqlColumn align="center">TotalOrdersNumber</SqlColumn> </TotalSummaryColumns>
Nazwa | PivotTable |
Opis | Tabela dynamiczna. Używane z typem elementu PivotTable. |
Zawartość | Brak |
Parametry |
|
Elementy podrzędne |
|
Nazwa | PivotTable: RowTemplate |
Opis | Określa wiersz tabeli |
Zawartość | Brak |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | PivotTable: RowTemplate: ColumnTemplate |
Opis | Określa zawartość poszczególnych kolumn tabeli |
Zawartość | Brak |
Parametry |
|
<Element> <Id>1</Id> <HeaderSql> <![CDATA[ SELECT 'Wartość ' + ( CASE WHEN @DocumentType = 0 THEN 'zamówień' WHEN @DocumentType = 1 THEN 'ofert' WHEN @DocumentType = 2 THEN 'faktur' ELSE 'dokumentów' END ) + ' za okres od ' + CAST(CAST(@DateFrom AS DATE) AS NVARCHAR(MAX)) + ' do ' + CAST(CAST(@DateTo AS DATE) AS NVARCHAR(MAX)) ]]></HeaderSql> <!--<Type>MultiLevelTable</Type>--> <Type>PivotTable</Type> <Sql> <![CDATA[ exec [esm].[Reports_pGetOrdersStatsBySubRegions_plPL] 2, @LoginName, @DateFrom, @DateTo, @DocumentType, @SessionId ]]> </Sql> <PivotTable showTotalSummary="true" visibleRows="8"> <RowTemplate> <ColumnTemplate width="1" name="Rejon nadrzędny" sqlColumn="Region" showSummary="true" align="left"/> <ColumnTemplate width="1" name="Rejon podrzędny" sqlColumn="SubRegion" showSummary="true" align="left"/> <ColumnTemplate width="1" name="Pracownik" sqlColumn="Employee" showSummary="true" align="left"/> <ColumnTemplate width="1" name="Wartość netto (PLN)" nameSql=" DECLARE @CurrencyCode nvarchar(max) SET @CurrencyCode = ( SELECT RTRIM(WaN_Symbol) AS [Value] FROM CDN.WalNag LEFT JOIN CDN.Konfig ON Kon_Numer=211 AND RTRIM(WaN_Symbol)=RTRIM(Kon_Wartosc) WHERE Kon_System = 1 ) SELECT 'Wartość netto (' + @CurrencyCode + ')' " groupingType="Sum" sqlColumn="OrderNetValue" align="right" sortOrder="desc" precision="2" /> <ColumnTemplate width="1" name="Wartość brutto (PLN)" nameSql=" DECLARE @CurrencyCode nvarchar(max) SET @CurrencyCode = ( SELECT RTRIM(WaN_Symbol) AS [Value] FROM CDN.WalNag LEFT JOIN CDN.Konfig ON Kon_Numer=211 AND RTRIM(WaN_Symbol)=RTRIM(Kon_Wartosc) WHERE Kon_System = 1 ) SELECT 'Wartość brutto (' + @CurrencyCode + ')' " groupingType="Sum" sqlColumn="OrderGrossValue" align="right" precision="2" /> <ColumnTemplate width="1" name="Ilość" groupingType="Sum" sqlColumn="it" align="right" /> </RowTemplate> </PivotTable> </Element>
Tak zdefiniowany element w aplikacji wygląda następująco:
Nazwa | ChartColumns |
Opis | Wykres. |
Zawartość | Brak |
Parametry | Brak |
Elementy podrzędne |
|
Nazwa | ChartColumns: LabelsSqlColumn |
Opis | Etykieta wartości wynikowych |
Zawartość | Dowolna wartość tekstowa |
Parametry |
|
Nazwa | ChartColumns: SeriesSqlColumn |
Opis | Nazwa serii dla wykresów wieloseryjnych |
Zawartość | Dowolna wartość tekstowa |
Parametry |
|
Nazwa | ChartColumns: ValuesSqlColumn |
Opis | Znacznik wartości wynikowych |
Zawartość | Dowolna wartość tekstowa |
Parametry |
|
<Element> <Id>1</Id> <HeaderSql>...</HeaderSql> <Type>Line</Type> <Sql>...</Sql> <ChartColumns> <LabelsSqlColumn>Date</LabelsSqlColumn> <SeriesSqlColumn>LoginName</SeriesSqlColumn> <ValuesSqlColumn>DispositionsCount</ValuesSqlColumn> </ChartColumns> </Element>
Tak zdefiniowany element w aplikacji wygląda następująco: