Definicje elementów

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:

Przykład
<Elements>
<Element>

</Element>
</Elements>
Uwaga
Aby wstawiane polecenia SQL działały poprawnie należy umieścić je w znaczniku <![CDATA[ polecenieSQL ]> w celu wyłączenia spod analizy deserializatora XML.

 

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:

  • Text – tekst
  • Bar – wykres słupkowy
  • Table – tabela
  • PivotTable – tabela
  • Pie – wykres kołowy
  • Line – wykres liniowy
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
  • LayoutRow
  • HeaderRow

 

Nazwa TableHeader: LayoutRow
Opis Znacznik wiersza tabeli
Zawartość Jeden lub więcej element SpaceColumn
Parametry Brak
Elementy podrzędne
  • SpaceColumn

 

Nazwa TableHeader: LayoutRow: SpaceColumn
Opis Określa szerokość kolumny
Zawartość Brak
Parametry
  • width – wartość liczbowa określająca szerokość kolumny
Przykład
<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
  • TextColumn

 

Nazwa TableHeader: HeaderRow: TextColumn
Opis Określa nazwę kolumny w tabeli
Zawartość Dowolna wartość tekstowa
Parametry
  • align – wyrównanie zawartości (left, right, center)
  • precision – wartość liczbowa określająca precyzję
Przykład
<HeaderRow>
<TextColumn>Rejon</TextColumn>
<TextColumn>Plan</TextColumn>
<TextColumn precision="2">Realizacja</TextColumn>
<TextColumn precision="2">%</TextColumn>
</HeaderRow>
Przykład
Element typu Table:

<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
  • SqlColumn

 

Nazwa TotalSummaryColumns
Opis Wiersz zawierający podsumowania poszczególnych kolumn na podstawie wcześniejszych wartości
Zawartość Brak
Parametry Brak
Elementy podrzędne
  • TextColumn
  • SqlColumn

 

Przykład

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
  • showTotalSummary – określa czy w ostatnim wierszu tabeli ma być wyświetlane podsumowanie w postaci sumy końcowej. Parametr może przyjmować wartość true lub false. Brak parametru oznacza wartość false.
  • visibleRows – wartość liczbowa określająca ilość wyświetlanych wierszy (pozostałe widoczne będą po przesunięciu scrollbar’a w dół)
Elementy podrzędne
  • RowTemplate

 

Nazwa PivotTable: RowTemplate
Opis Określa wiersz tabeli
Zawartość Brak
Parametry Brak
Elementy podrzędne
  • ColumnTemplate

 

Nazwa PivotTable: RowTemplate: ColumnTemplate
Opis Określa zawartość poszczególnych kolumn tabeli
Zawartość Brak
Parametry
  • width – szerokość elementu
  • name – nazwa kolumny widoczna w wyświetlanym raporcie
  • nameSql – polecenie sql
  • sqlColumn – nazwa kolumny wynikowej
  • showSummary – znacznik czy pokazać podsumowanie
  • align – wyrównanie zawartości komórki tabeli
  • groupingType – typ grupowania wyników, np. Sum
  • sortOrder – kolejność sortowania
  • precision – precyzja
Przykład
Element typu Pivot:

<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
  • LabelsSqlColumn
  • SeriesSqlColumn
  • ValuesSqlColumn

 

Nazwa ChartColumns: LabelsSqlColumn
Opis Etykieta wartości wynikowych
Zawartość Dowolna wartość tekstowa
Parametry
  • title – nazwa etykiety wyświetlana jako nazwa kolumny wyświetlanej pod wykresem kołowym

 

Nazwa ChartColumns: SeriesSqlColumn
Opis Nazwa serii dla wykresów wieloseryjnych
Zawartość Dowolna wartość tekstowa
Parametry
  • wartość tekstowa

 

Nazwa ChartColumns: ValuesSqlColumn
Opis Znacznik wartości wynikowych
Zawartość Dowolna wartość tekstowa
Parametry
  • precision – precyzja
  • title – wartość tekstowa wyświetlana jako nazwa kolumny w tabeli wyświetlanej pod wykresem kołowym
  • titileSql – polecenie SQL zwracające dane wartości
  • align – wyrównanie zawartości (left, right, center)
Przykład
Element typu Line wykorzystujący ChartColumns:

<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:

 

 

Czy ten artykuł był pomocny?