Raporty

Comarch WMS Zarządzanie umożliwia kierownikowi monitorowanie na bieżąco efektów pracy magazynierów, zrealizowanych dyspozycji oraz analizę ruchów magazynowych przez dostęp do odpowiednich raportów.

1. Uprawnienia do modułu Raporty

Aby operator mógł przeglądać raporty należy nadać mu odpowiednie uprawnienia. W tym celu należy przejść do Ustawień Operatorów i dla wybranej grupy operatorów zaznaczyć opcję „Dostęp do modułu raportów” w sekcji Zarządzanie – Inne uprawnienia (Rys. poniżej). raporty_rys3 Po zaznaczeniu tej opcji operator będzie mieć dostęp do standardowych raportów: Jeżeli opcja “Dostęp do modułu raportów” zostanie odznaczona, wówczas w menu głównym aplikacji nie będzie wyświetlana zakładka Raporty.
Uwaga
W aplikacji Comarch WMS Zarządzanie istnieje możliwość modyfikowania już istniejących oraz dodawania/stworzenia własnych, nowych raportów dostosowanych do potrzeb konkretnych Klientów. Więcej informacji na ten temat znajduje się w artykule Definicje raportów dostępnych w WMS Zarządzanie.
 

2. Raporty standardowe

W ramach domyślnych raportów w Zarządzaniu udostępnione zostały:
  • Raport średniej wydajności (prezentujący średnią realizację dyspozycji, towarów oraz pozycji w zadanym przedziale czasu przez operatów z wykorzystaniem dostępnych procesów),
  • Raport zrealizowanych dyspozycji przez operatorów (według daty wykonania)-jakie dokumenty magazynowe (AWD/ZWM/MP) zostały zrealizowane w konkretnym przedziale czasowym przez operatorów,
  • Raport zrealizowanych dyspozycji (grupowanie według dni lub miesięcy)-dane dotyczące dyspozycji zrealizowanych w konkretnym przedziale czasowym),
  • Szczegółowa analiza wydajności pracowników (prezentujący wykres wydajności dziennej pracowników, dane odnośnie średniej wydajności pracowników, rodzaje dyspozycji realizowanych przez pracowników oraz tabelę dziennej wydajności, czyli ilość dyspozycji zrealizowanych w ciągu dni),
  • Raport operacji magazynowych powiązanych z towarem (prezentujący listę zadań wykonanych w konkretnym przedziale czasowym dla towarów),
  • Raport operacji magazynowych powiązanych z położeniem (prezentujący ruchy towarów w obrębie konkretnego magazynu na położeniach w konkretnych ramach czasowych, widoczne są operacje przyjęć, wydań i przesunięć dla towarów znajdujących się na wskazanych położeniach w raporcie),
  • Raport zrealizowanych pozycji (prezentowana jest lista pozycji zrealizowana we wskazanym przedziale czasowym prezentująca dyspozycje, zasoby w ramach tych dyspozycji, operatora, który zrealizował pozycje oraz ilość),
  • Ranking magazynierów (prezentowany jest wykres wydajności magazynierów we wskazanym przedziale czasowym według dni lub miesięcy),
  • Raport wydań do kontrahenta (zestawienie ile dokumentów lub pozycji wydawanych jest dla wybranego kontrahenta w określonym przedziale czasu);
  • Porównanie stanów magazynowych w WMS oraz ERP (prezentowane są stany towarów w ramach jednego magazynu z uwzględnieniem stanów magazynowych i handlowych),
  • Raport stanów towarowych (prezentowana jest lista z podziałem na grupy towarowe, towary znajdujące się we wskazanej grupie oraz ilość zasobu),
  • Stan jednostek logistycznych (zestawienie jednostek kaucjonowanych zajętych i pustych w ramach wskazanego magazynu).
Przykładowy raport dziennej wydajności pracowników

Definicje raportów dostępnych w WMS Zarządzanie

Definicje raportów domyślnych znajdują się w katalogu z zainstalowaną aplikacją, a dokładnie Comarch WMS\Management\ReportDefinitions\Common. Definicja XML raportu składa się z następujących głównych sekcji:
  • Nazwa raportu
  • Opis
  • Definicje argumentów
  • Definicje elementów raportu
  • Definicja klas CSS
  • Definicja układu elementów raportu (layout)
Ogólna struktura raportu jest następująca: raporty_rys4

1. Nazwa raportu

Nazwa raportu podana w elemencie <Name> jest wyświetlana na górnej belce widoku raportu oraz na kafelkach listy raportów. Przykład użycia: <Name>Raport wydajności pracowników</Name>

2. Opis raportu

Opis raportu podany w elemencie jest wyświetlany na kaflach listy z raportami. Przykład użycia: <Description>Raport wydajności pracowników według dni</Description>

3. Elementy raportu

Raport może składać się z wielu elementów następującego typu:
  • Tabela płaska
  • Tabela wielopoziomowa
  • Wykres słupkowy
  • Wykres liniowy
  • Wykres kołowy
  • Tekst
Definicje elementów raportu należy umieścić w sekcjach wewnątrz sekcji : raporty_rys5 Elementami XML wspólnymi dla każdego typu jest:
  • Identyfikator elementu (unikalna liczba całkowita) w elemencie , np. 1,
  • Typ elementu określony w węźle , np. PivotTable, dostępne wartości:
    • Table – tabela płaska
    • PivotTable – tabel wielopoziomowa
    • Bar – wykres słupkowy
    • Pie – wykre kołowy
    • Line – wykres liniowy
    • Text – element typu tekst
  • Zapytanie SQL pobierające dane do elementu raportu określone w elemencie , np.
raporty_rys6 Dodatkowo dla tabel oraz wykresów można zdefiniować tytuł wyświetlany nad elementem w sekcji <Header>, np. <Header>Wykres dziennej wydajności pracowników</Header>. Struktura XML wspólna dla wszystkich elementów jest następująca: raporty_rys7

4. Definicja układu elementów raportu

W ostatniej sekcji należy określić układ poszczególnych elementów raportu, wykorzystując sekcje: raporty_rys9 Przykładowo chcąc umieścić dwa elementy raportu jeden nad drugim należy ustawić layout w następujący sposób: raporty_rys8

Definicja układu elementów

Układ elementów Układ elementów znajdujących się w raporcie definiowany jest za pomocą sekcji VerticalLayout. Każdy z elementów może znajdować się bezpośrednio w tej sekcji lub w jednym ze znaczników: Horizontal lub Vertical, które mogą być względem siebie zagnieżdżone jak w poniższym przykładzie:
Przykład
<VerticalLayout width="1" height="1000px">
<WidthSql><![CDATA[
select cast(300 + DATEDIFF (day , @DateFrom , @DateTo) * 30 as varchar)+'px'
]]></WidthSql>
<Element height="2">2</Element>
<Horizontal height="3" minwidth="925">
<Vertical width="5">
<Element height="3">3</Element>
<Element cssclass="average-performance-element" height="2">4</Element>
</Vertical>
<Element width="7">1</Element>
</Horizontal>
</VerticalLayout>
Tak zdefiniowany układ wygląda następująco: Wartości ID na zrzucie odpowiadają wartości w sekcji Element definicji układu raportu.
Układ raportu może składać się z następujących sekcji:
Nazwa VerticalLayout
Opis Sekcja definicji układu elementów raportu. Elementy w tej sekcji domyślnie układane są poziomo.
Zawartość Sekcje:
  • WidthSql
  • Element
  • Horizontal
Parametry
  • width - wartość liczbowa określająca szerokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną szerokość layoutu
  • height - wartość liczbowa określająca wysokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną wysokość layoutu
  • cssclass - odnośnik do klasy CSS
 
Nazwa WidthSql
Opis Polecenie SQL zwracające wartość liczbową, która jest szerokością danego elementu
Zawartość Polecenie SQL
Parametry Brak
 
Nazwa Element
Opis Definiuje wielkość danego elementu raportu
Zawartość Identyfikator elementu raportu
Parametry
  • width - wartość liczbowa określająca szerokość elementu
  • minwidth - wartość liczbowa okreslająca minimalną szerokość elementu
  • height - wartość liczbowa określająca wysokość elementu
  • minwidth - wartość liczbowa okreslająca minimalną wysokość elementu
  • cssclass - odnośnik do klasy CSS
 
Nazwa Horizontal
Opis Układ elementów poziomy
Zawartość Elementy i/lub sekcje Vertical
  • width - wartość liczbowa określająca szerokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną szerokość layoutu
  • height - wartość liczbowa określająca wysokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną wysokość layoutu
  • cssclass - odnośnik do klasy CSS
 
Nazwa Vertical
Opis Układ elementów pionowy
Zawartość Elementy i/lub sekcje Horizontal
  • width - wartość liczbowa określająca szerokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną szerokość layoutu
  • height - wartość liczbowa określająca wysokość layoutu
  • minwidth - wartość liczbowa okreslająca minimalną wysokość layoutu
  • cssclass - odnośnik do klasy CSS
  Klasy CSS W definicji raportu możliwe jest wykorzystanie języka CSS do stylizacji elementów. W sekcji Css raportu zdefiniować można odpowiednie klasy owołujące się do poszczególnych elementów raportu. Odwołanie odbywa się poprzez znacznik Element definicji układu raportu, w którym to podany jest identyfikator danego elementu raportu.
Przykład
<Css>
.avg-perf { color: white; font-weight: bold; height: 100%; }
.avg-perf-value { font-size: 5em; }
.avg-perf-title { font-size: 2em; }
.customHeaderColumn {height: 35px;}
.average-performance-element>.report-element-content { background-color: #a8c6d5; padding: 5px 50px 15px 50px; }
.weekend-day { color: red; }
</Css>

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:
   

Definicje argumentów

Raport może wykorzystywać podane przez użytkownika aplikacji po kliknięciu w ikonę argumenty (parametry). Wszystkie argumenty znajdują się w sekcji Arguments definicji raportu, zaś poszczególne argumenty opatrzone są sekcją Argument według następującego przykładu:
Przykład
<Arguments> <Argument> ... </Argument> </Arguments>
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.
  Argument może zawierać następujące sekcje:
Nazwa Type
Opis Typ argumentu.
Zawartość
  • List - wybór z listy
  • Date - wybór daty
  • Custom - wybór jednej lub wielu wartości
  • Text - pole tekstowe
  • Autocomplete - pole tekstowe z autouzupełnianiem
 
Nazwa Name
Opis Nazwa argumentu wykorzystywana w definicji raportu.
Zawartość
  • wartość tekstowa
 
Nazwa VisibleName
Opis Nazwa argumentu widoczna na wyświetlanym raporcie.
Zawartość
  • wartość tekstowa
 
Nazwa DefaultSql
Opis Wartość parametru ustawiana domyślnie. Jeżeli wartość pozostanie pusta (ustawiona na <![CDATA[]]>) to wartość parametru w aplikacji ustawi się na ‚Brak wartości’ i konieczny będzie wybór tego parametru przed otwarciem raportu.
Zawartość
  • polecenie SQL
 
Nazwa ListSql
Opis Wartości parametru możliwe do wyboru.
Zawartość
  • polecenie SQL
Przykład
<ListSql> <![CDATA[ SELECT 0, 'Zamówień' UNION ALL SELECT 1, 'Ofert' UNION ALL SELECT 2, 'Faktur' ]]> </ListSql>
 
Nazwa IsRequired
Opis Znacznik czy dany argument ma być wymagany przy otwarciu raportu
Zawartość
  • brak sekcji - argument nie wymagany
  • true - argument wymagany
  • false - argument niewymagany
 
Nazwa CustomTypeName
Opis Nazwa typu. Używane z typem raportu Custom.
Zawartość
  • wartość tekstowa
 
Nazwa AutocompleteSqlProc
Opis Używane z typem raportu Autocomplete. Umożliwia automatyczną podpowiedź podczas uzupełniania pola.
Zawartość Brak
Elementy podrzędne
  • Name
  • Parameters
 
Nazwa AutocompleteSqlProc: Name
Opis Nazwa procedury na bazie SQL zwracającej podpowiedzi.
Zawartość
  • wartość tekstowa
 
Nazwa AutocompleteSqlProc: Parameters
Opis Znacznik parametrów, które przyjmuje procedura.
Zawartość Brak
Elementy podrzędne
  • ArgumentValueParameter
 
Nazwa AutocompleteSqlProc: Parameters: ArgumentValueParameter
Opis Identyfikator argumentu.
Parametry
  • paramname - nazwa argumentu używana w procedurze
Zawartość
  • wartość tekstowa określająca nazwę argumentu używanej w procedurze
Wskazówka
Odwołanie do poszczczególnych argumentów odbywa się poprzez znak @ np. @WarehouseId.
 
Przykład
Argument typu List:
<Argument>
<Type>List</Type>
<Name>DocumentType</Name>
<VisibleName>Licz dla</VisibleName>
<DefaultSql>
<![CDATA[
DECLARE @docTypeId INT
SET @docTypeId = (SELECT COALESCE(
(
SELECT TOP 1 CAST(ruav.ArgumentValue AS nvarchar(max))
FROM esm.ReportsUserArguments ruav WHERE ruav.UserName = @LoginName AND ruav.ReportFileName = @ReportFileName AND ruav.ArgumentName = 'DocumentType'
)
, ( SELECT 1)
))
			  
SELECT * FROM (
SELECT 0 as Id, 'Zamówień' as Name
UNION ALL
SELECT 1, 'Ofert'
UNION ALL
SELECT 2, 'Faktur'
 ) p WHERE p.Id = @docTypeId 
]]>
</DefaultSql>
<ListSql>
<![CDATA[
SELECT 0, 'Zamówień'
UNION ALL
SELECT 1, 'Ofert'
UNION ALL
SELECT 2, 'Faktur'
]]>
</ListSql>
</Argument>
Powyższa definicja argumentu w aplikacji wygląda następująco: Po kliknięciu w pole wartości, możliwy jest wybór wartości z listy:
Przykład
Argument typu Data:
<Argument>
<Type>Date</Type>
<Name>DateFrom</Name>
<VisibleName>Data początkowa</VisibleName>
<DefaultSql>
<![CDATA[
SELECT COALESCE(
(
SELECT TOP 1 CAST(ruav.ArgumentValue AS DATETIME)
FROM esm.ReportsUserArguments ruav WHERE ruav.UserName = @LoginName AND ruav.ReportFileName = @ReportFileName AND ruav.ArgumentName = 'DateFrom'
)
, ( SELECT esm.GetDateFromParts ( YEAR(GETDATE()), 1, 1 ) )
)
]]>
</DefaultSql>
<ListSql></ListSql>
</Argument>
Powyższa definicja argumentu w aplikacji wygląda następująco: Po kliknięciu w pole wartości możliwy jest wybór daty.
Przykład
Argument typu Custom:
<Argument>
<Type>Custom</Type>
<CustomTypeName>Operators</CustomTypeName>
<Name>Operators</Name>
<VisibleName>Operatorzy</VisibleName>
<IsRequired>true</IsRequired>
</Argument>
Powyższa definicja argumentu w aplikacji wygląda następująco: Używając parametru IsRequired konieczny będzie wybór conajmniej jednej wartości.
Przykład
Argument typu Text:
<Argument>
<Type>Text</Type>
<Name>ArticleCode</Name>
<VisibleName>Kod artykułu</VisibleName>
<IsRequired>false</IsRequired>
</Argument>
Powyższa definicja argumentu w aplikacji wygląda następująco: Możliwe jest wpisanie dowolnej wartości tekstowej.
Przykład
Argument typu Autocomplete:
<Argument>
<Type>Autocomplete</Type>
<Name>LocationCode</Name>
<VisibleName>Położenie</VisibleName>
<AutocompleteSqlProc>
<Name>WMS.Reports_GetLocationsAutocompleteData</Name>
<Parameters>
<ArgumentValueParameter paramname="WarehouseId">WarehouseId</ArgumentValueParameter>
</Parameters>
</AutocompleteSqlProc>
<DefaultSql></DefaultSql>
<IsRequired>false</IsRequired>
</Argument>
Powyższa definicja argumentu w aplikacji wygląda następująco: Podczas wpisywania wartości wyświetlane są podpowiedzi.
 

Eksport danych z raportów

Eksport danych z raportów umożliwia pobranie wygenerowanego raportu do pliku xlsx. Pozwala to na uzyskanie spersonalizowanych danych – dostosowanie danych, wyliczanie funkcji itp. za pomocą narzędzi udostępnionych w Excelu. Dodatkowo użytkownik będzie mógł przesyłać pliki jako formę raportu osobom zarządzającym. W celu eksportu danych należy przejść na zakładkę raporty: Następnie należy wygenerować wybrany raport: W prawym górnym rogu znajduje się ikona eksportu: Po jej kliknięciu automatycznie pobierze się plik Excel zawierający dane z wybranego raportu.