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>1</Id>
<HeaderSql><![CDATA[select 'Zrealizowane pozycje w okresie ' + left(convert(varchar, @DateFrom, 120), 10)  + ' - ' + left(convert(varchar, @DateTo, 120), 10)]]></HeaderSql>
<Type>Table</Type>
<Sql>
<![CDATA[
set @DateTo = dateadd(second, -1, dateadd(day, 1, @DateTo))
declare @CurrentOperator nvarchar(128)
select @CurrentOperator = UserName from WMS.vCurrentSession
;with data as
(
select 
CONVERT(date, coalesce(i.RealizationDate, d.DocumentAceptanceDate)) as RealizationDate,
a.Code as Article, 
d.NumberString as DocumentNumber,
dt.Code as DocumentType, 
luo.Barcode as LogisticUnit, 
i.OperatorLogin as LoginName,
i.RealizedQuantity
from wms.Documents d with (nolock)
join wms.vItems i with (nolock) on d.Id=i.DocumentId
join [WMS].[Dispatcher_GetSubordinateOperators](@CurrentOperator, 1) S on S.SubordinateLoginName = i.OperatorLogin
join wms.varticles a with (nolock) on a.id = i.articleid
join wms.DocumentTypes dt with (nolock) on d.DocumentTypeId=dt.Id
left join wms.LogisticUnitObjects luo with (nolock) on i.LogisticUnitId=luo.Id
WHERE d.DocumentStateId = 2 and 
((i.RealizationPercent >= 100 and i.RealizationDate between @DateFrom and @DateTo) 
or (i.RealizationPercent > 0 and d.DocumentAceptanceDate between @DateFrom and @DateTo)))
select 
left(convert(varchar, RealizationDate, 120), 10) as Date,
Article, 
DocumentNumber,  
DocumentType, 
LogisticUnit, 
LoginName, 
sum(RealizedQuantity) as Quantity
from data
group by RealizationDate, Article, DocumentNumber, DocumentType, LogisticUnit, LoginName
]]>
</Sql>
<TableHeader>
<LayoutRow>
<SpaceColumn width="10"/><SpaceColumn width="13"/><SpaceColumn width="8"/><SpaceColumn width="4"/><SpaceColumn width="6"/><SpaceColumn width="10"/>&lt;SpaceColumn width="10"/>
</LayoutRow>
<HeaderRow>
<TextColumn>Data</TextColumn>
<TextColumn>Towar</TextColumn>
<TextColumn>Dyspozycja</TextColumn>
<TextColumn>Typ</TextColumn>
<TextColumn>Ilość</TextColumn>
<TextColumn>Jednostka logistyczna</TextColumn>
<TextColumn>Wykonał</TextColumn>
</HeaderRow>
</TableHeader>
<NonGroupingColumns>
<SqlColumn>Date</SqlColumn>
<SqlColumn>Article</SqlColumn>
<SqlColumn>DocumentNumber</SqlColumn>
<SqlColumn>DocumentType</SqlColumn>
<SqlColumn align="right">Quantity</SqlColumn>
<SqlColumn>LogisticUnit</SqlColumn>
<SqlColumn>LoginName</SqlColumn>
</NonGroupingColumns>
</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 'Szczegółowy raport pracy magazynierów za okres ' + left(convert(varchar, @DateFrom, 120), 10)  + ' - ' + left(convert(varchar, @DateTo, 120), 10)]]>
</HeaderSql>
<Type>PivotTable</Type>
<Sql>
<![CDATA[
set @DateTo = dateadd(second, -1, dateadd(day, 1, @DateTo))
declare @CurrentOperator nvarchar(128)
select @CurrentOperator = UserName from WMS.vCurrentSession
;with DocumentsOperatorsData as
(select distinct i.OperatorLogin, i.DocumentId from wms.items i with (nolock)
where I.RealizationPercent > 0 and i.OperatorLogin is not null), data as
(select O.LoginName, E.Name, E.Surname, DT.Code AS DispositionCode, 
case DT.Id 
when 1 then 'Awizo dostawy' 
when 2 then 'Zlecenie wydania z magazynu' 
when 3 then 'Przesunięcie wewnątrzmagazynowe' 
when 4 then 'Inwentaryzacja' 
when 5 then 'Bilans stanu towarów' end as DispositionName,
left(convert(date, d.DocumentAceptanceDate), 10) as DocumentDate, count(*) as DispositionsCount
from [WMS].[vOperators] O with (nolock)
join [WMS].[Dispatcher_GetSubordinateOperators](@CurrentOperator, 1) S on S.SubordinateLoginName = O.LoginName
left join @Operators_SelectedOperators so on so.Item = O.LoginName
join [WMS].[vEmployees] E with (nolock) ON E.Id = O.EmployeeId
join DocumentsOperatorsData DO on DO.OperatorLogin = O.LoginName
join [WMS].[Documents] D with (nolock) on D.Id = DO.DocumentId 
join [WMS].[DocumentTypes] DT with (nolock) on Dt.Id = D.DocumentTypeId
where d.DocumentAceptanceDate is not null and d.DocumentAceptanceDate between @DateFrom and @DateTo
and (so.Item is not null or @Operators_SelectedOperators_all = 1)
group by O.LoginName, E.Name, E.Surname, DT.Code, DT.Id, convert(date, d.DocumentAceptanceDate))
select LoginName + 
case when (Name <> '' or Surname <> '') then ' (' + Name + ' ' + Surname + ')' else '' end as Operator, DispositionCode + ' (' + DispositionName + ')' as DispositionType, DocumentDate, DispositionsCount from data
]]>
</Sql>
<PivotTable showTotalSummary="true">
<RowTemplate>
<ColumnTemplate width="2" name="Operator" sqlColumn="Operator" showSummary="true"/>
<ColumnTemplate width="2" name="Typ dyspozycji" sqlColumn="DispositionType" showSummary="true"/>
<ColumnTemplate width="2" name="Data wykonania" sqlColumn="DocumentDate" />
<ColumnTemplate width="1" name="Ilość zadań" groupingType="Sum" sqlColumn="DispositionsCount" 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?

1 056 Comments

  1. Megawinx.com Goldenbahis Ülkemizde güvenilir bahis firmaları arasında olan GoldenBahis megawinx bir diğer adıyla da Golden Bahis Giriş sitesi üyelerine para kazandırmaya devam ediyor

  2. 1xbetx.net : 1xbet Mobile | 1xbet may be slow to load or not accessible from your country use our always working alternative links to continue betting.

  3. Rexonx.com En iyi Bahis Siteleri Canlı Casino siteleri olarak Türkiye de ve Dünyada en çok tercih edilen online casino sitelerini sizler için bir arada topladık.Türkiye de Anlık yatırım ve çekim işlemlerini bir çok ödeme sistemi

  4. This web site is really a walk-through for all of the details you desired regarding this and didn?t recognize that to ask. Look below, as well as you?ll most definitely discover it.

  5. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put

  6. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put

  7. trial of cialis women cialis dosage 30 mg posts per day when does cialis patent expire – will plugging cialis

  8. trial of cialis women cialis dosage 30 mg posts per day when does cialis patent expire – will plugging cialis

  9. tsyepocd,A fascinating discussion is definitely worth comment. I do think that you ought to publish more on this topic, it may not be a taboo dnaajqtlyi,subject but generally folks don’t talk about such subjects. To the next! All the best!!

  10. Undeniably believe that which you said. Your favorite reason appeared to be on the web the simplest thing to be aware of. I say to you, I definitely get irked while people consider worries that they just don’t know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people could take a signal. Will probably be back to get more. Thanks

  11. tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this.

  12. tsyepocd,A fascinating discussion is definitely worth comment. I do think that you ought to publish more on this topic, it may not be a taboo dnaajqtlyi,subject but generally folks don’t talk about such subjects. To the next! All the best!!

  13. This web site is really a walk-through for all of the details you desired about this as well as didn?t understand that to ask. Look below, and also you?ll definitely discover it.

  14. Unquestionably consider that which you said. Your favourite justification appeared to be on the net the easiest thing to have in mind of. I say to you, I definitely get annoyed at the same time as other people think about issues that they just don’t know about. You managed to hit the nail upon the top and also defined out the entire thing without having side-effects , other folks could take a signal. Will probably be again to get more. Thank you

  15. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put

  16. Useful info. Lucky me I discovered your site by chance, and I’m surprised why this accident didn’t took place earlier! I bookmarked it.

  17. Undeniably believe that which you said. Your favorite reason appeared to be on the web the simplest thing to be aware of. I say to you, I definitely get irked while people consider worries that they just don’t know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people could take a signal. Will probably be back to get more. Thanks

  18. This website online is really a walk-via for all of the data you needed about this and didn’t know who to ask. Glimpse here, and you’ll undoubtedly uncover it.

  19. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put

  20. tsyepocd,A fascinating discussion is definitely worth comment. I do think that you ought to publish more on this topic, it may not be a taboo dnaajqtlyi,subject but generally folks don’t talk about such subjects. To the next! All the best!!

  21. Unquestionably believe that which you said. Your favorite reason seemed to be on the web the simplest thing to be aware of. I say to you, I certainly get annoyed while people think about worries that they just do not know about. You managed to hit the nail upon the top and also defined out the whole thing without having side effect , people can take a signal. Will likely be back to get more. Thanks

  22. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put

  23. Today, while I was at work, my cousin stole my apple ipad and tested to see if it can survive a 30 foot drop, just so she can be a youtube sensation. My iPad is now broken and she has 83 views. I know this is entirely off topic but I had to share it with someone!