Wzór etykiety albo wydruku dokumentu zmienia się częściej, niż zakładają harmonogramy wdrożeń. Przewoźnik wymaga innego układu, odbiorca chce dodatkowego pola, magazyn dokłada numer partii. Microsoft Report Builder pozwala przerobić taki wzór bez udziału programisty aplikacji, bo raport jest osobnym plikiem na serwerze raportów.

Do czego służy Report Builder w Studio WMS.net

Report Builder jest edytorem raportów dla SQL Server Reporting Services. Uruchamia się go z przeglądarki albo jako aplikację kliencką na stacji roboczej. Interfejs przypomina programy pakietu Office, więc użytkownik znający Excel szybko odnajduje wstążkę oraz pola do przeciągania.

Gotowy raport publikuje się na serwerze, skąd uruchamiają go pozostali użytkownicy. Wynik można wyświetlić na ekranie albo wyeksportować do pliku. Sam serwer opisuje strona o serwerze raportów w Studio WMS.net.

Typ projektuZawartośćKto zmienia wzór
Raport zarządczywydajność pracy, stany, historia przesunięćadministrator magazynu
Wydruk dokumentudokument przyjęcia i dokument wydaniawdrożeniowiec albo administrator
Etykieta wewnętrznakod kreskowy, numer seryjny, data ważnościadministrator magazynu
Zestawienie na żądanietabela z filtrami wybieranymi przez użytkownikaużytkownik biznesowy

Narzędzie ma funkcje agregujące i grupowanie, więc raport zarządczy nie wymaga eksportu do arkusza. Filtry i kolejność użytkownik końcowy zmienia sam, co skraca analizę wąskich gardeł. Wiersz z sumą dla dnia albo operatora powstaje przez dodanie grupy, a nie przez pisanie osobnego zapytania.

Źródła danych i zbiory danych

Raport składa się ze źródła danych i jednego lub kilku zbiorów danych. Źródło określa połączenie, a zbiór zawiera zapytanie i listę pól, które trafiają do projektu. Raporty mogą korzystać z dostawców .NET albo OLE DB oraz ze źródeł ODBC. Dane pochodzą z baz SQL Server albo Oracle. Źródłem może być także Analysis Services lub plik XML.

Zapytanie zbioru danych pisze się w języku bazy. Poniższy przykład jest ilustracyjny i pokazuje zestawienie dokumentów przyjęcia z parametrami zakresu dat oraz listy kontrahentów.

SELECT d.NumerDokumentu, d.DataPrzyjecia, k.Nazwa AS Kontrahent,
       SUM(p.Ilosc) AS SumaSztuk
FROM dbo.Dokumenty AS d
JOIN dbo.Kontrahenci AS k ON k.KontrahentId = d.KontrahentId
JOIN dbo.PozycjeDokumentu AS p ON p.DokumentId = d.DokumentId
WHERE d.Typ = 'PZ'
  AND d.DataPrzyjecia >= @DataOd
  AND d.DataPrzyjecia <  DATEADD(DAY, 1, @DataDo)
  AND d.KontrahentId IN (@Kontrahenci)
GROUP BY d.NumerDokumentu, d.DataPrzyjecia, k.Nazwa
ORDER BY d.DataPrzyjecia;

Parametr @Kontrahenci przyjmuje wiele wartości, a Report Builder rozwija go do listy w klauzuli IN. Górną granicę daty zapisano jako mniejszą od następnego dnia, bo takie porównanie działa poprawnie także dla kolumny z godziną. Gdy logika rośnie, zapytanie przenosi się do procedury składowanej, którą opisuje dokumentacja procedur składowanych SQL Server.

Reguła: filtr daty należy do klauzuli WHERE zapytania, a nie do filtra zbioru w raporcie. Filtr raportu działa dopiero po pobraniu danych, więc serwer czyta całą tabelę, a odrzuca wiersze później. Zapytanie ograniczone w bazie czyta tylko potrzebny przedział.

Parametry, grupowanie i wyrażenia

Układ raportu opiera się na regionach danych. Najczęstsze są tabela i wykres. Użytkownik przeciąga pola ze zbioru danych na obszar projektu, a grupowanie dodaje przez przeciągnięcie pola do panelu grup. Sumy częściowe i końcowe powstają z wyrażeń, na przykład =Sum(Fields!SumaSztuk.Value).

Parametry użytkownika

Formatowanie warunkowe

Wyrażenia sterują też wyglądem. Data ważności wyróżniona kolorem pozwala zauważyć partie bliskie przeterminowania jeszcze w zestawieniu, zanim trafią na wydanie. Wystarczy wyrażenie we właściwości koloru tekstu: =IIF(Fields!DataWaznosci.Value < DateAdd("d", 30, Today()), "Red", "Black"). Próg trzydziestu dni jest przykładem, a każdy magazyn ustala własny.

Etykiety i wydruki dokumentów

Report Builder pozwala budować wzory etykiet wewnętrznych dla towarów i opakowań zbiorczych, na przykład beczek. Na wydruk dodaje się kody kreskowe i numery seryjne, a także daty ważności, bez zmian w kodzie aplikacji. Układ dokumentów wydania i przyjęcia, w tym dokumentu dostawy, zachowuje jednolity wygląd w oczach kontrahentów. Budowę etykiety logistycznej opisuje standard etykiety logistycznej GS1.

Istotne funkcje systemu Studio WMS.net - transformacja magazynu w 4 krokach
Schemat czterech kroków wdrożenia: od celu obniżenia kosztów przez automatyzację z kolektorami Android po lokowanie towarów i szybszą kompletację.

Etykiety wewnętrzne drukowane na drukarkach mobilnych w miejscu rozładunku zabezpieczają towar przed wymieszaniem jeszcze przed transportem wewnątrz magazynu. Numer partii i seria nie czekają wtedy na powrót operatora do stanowiska z komputerem. Wzór takiej etykiety zmienia się w raporcie, a nie na drukarce.

Drugim sposobem budowy etykiety jest szablon w języku ZPL, wysyłany bezpośrednio do drukarki Zebra. Taki szablon opisuje strona o projektowaniu etykiet ZPL, a sprzęt do wydruku zestawia artykuł o drukarkach kodów kreskowych. Raport nadaje się do dokumentów w formacie A4 i do etykiet, w których ważniejszy jest układ niż prędkość wydruku seryjnego.

Zmiany wzoru bez ryzyka dla produkcji

Raport działa na serwerze, więc błędna zmiana wzoru wpływa na wszystkich użytkowników od razu. Dlatego przeróbki wykonuje się najpierw w osobnym folderze testowym, na kopii definicji raportu, a dopiero potem podmienia wersję produkcyjną. Plik RDL jest zwykłym plikiem XML, więc kopie wersji da się porównywać i przechowywać w repozytorium.

Publikacja i uruchamianie raportów

Raport zapisany z poziomu Report Buildera trafia do folderu na serwerze raportów, gdzie dziedziczy uprawnienia folderu. Użytkownik uruchamia go z przeglądarki, wpisuje parametry, a wynik powstaje z aktualnych danych. Dokumentację narzędzia zawiera strona Report Builder w SQL Server.

Raporty z historii przesunięć i stanów opierają się na danych, które terminale zapisują przy każdym skanie. Skan z kolektora trafia do bazy natychmiast, więc zestawienie pokazuje stan bez ręcznego przepisywania. Terminale z systemem Android opisuje strona o aplikacji WMS na Androida, a stany po inwentaryzacji ciągłej omawia artykuł o inwentaryzacji w magazynie.

Skaner kodów kreskowych z algorytmami AI w inteligentnym magazynie SoftwareStudio.
Czytnik danych zintegrowany z Studio WMS.net: skany zasilają raporty budowane później w Report Builder.

Partie, terminy ważności i FEFO

Po skanie etykiety terminal pokazuje datę ważności i numer partii, a obok bieżącą lokalizację nośnika. Te same pola trafiają do raportów, które zestawiają towar według zasady FEFO, czyli pierwszy wychodzi towar o najkrótszym terminie ważności. Zestawienie sortowane po dacie ważności wskazuje partie do wydania w pierwszej kolejności, a temat opisuje strona o partiach produkcyjnych i datach ważności.

Raporty a dokumenty magazynowe

Każde przyjęcie i wydanie jest zapisane w dokumencie, a raport zestawia te dokumenty w wybranym przekroju. Obieg dokumentów opisuje strona o dokumentach magazynowych. Bieżące zestawienie stanów, które powstaje z tych samych danych, omawia artykuł o raporcie stanów magazynowych.

Wysyłkę gotowych raportów do odbiorców według harmonogramu opisuje strona o subskrypcji raportów. Projektowaniem samych ekranów wprowadzania danych zajmuje się osobny temat, czyli projektowanie formularzy.

Dlaczego Report Builder w środowisku SQL Server

Do raportowania SoftwareStudio wybrało właśnie ten edytor ze względu na zgodność ze środowiskiem Microsoft SQL Server oraz brak dodatkowego oprogramowania po stronie klienta. Użytkownik pracuje z poziomu przeglądarki. Jedna platforma obsługuje pracownika biurowego, który składa proste zestawienie, i administratora magazynu, który przygotowuje raport zarządczy. Mniej narzędzi w firmie oznacza krótsze szkolenie zespołu i niższy koszt utrzymania.

Narzędzie nie zastępuje zapytań pisanych przez programistę. Przy dużych wolumenach i złożonej logice dokumenty magazynowe lepiej opierać o procedury składowane, a Report Builder wykorzystywać do układu i parametrów. Cały proces opisuje strona o zarządzaniu magazynem wysokiego składowania.

Pytania i odpowiedzi o Microsoft Report Builder

Interfejs przypomina programy pakietu Office, więc osoba znająca Excel szybko znajduje potrzebne funkcje. Pola z bazy dodaje się przeciągnięciem do szablonu etykiety albo raportu. Przy wdrożeniu przeprowadzamy podstawowe szkolenie, po którym administrator magazynu samodzielnie zmienia wzory dokumentów.

Nie. Raport jest osobnym plikiem na serwerze raportów, więc zmiana układu, dodanie pola z numerem partii albo numeru seryjnego odbywa się w Report Builder. Aplikacja magazynowa nie jest wtedy kompilowana ani wdrażana ponownie.

Każda jednostka ładunkowa otrzymuje przy przyjęciu etykietę wewnętrzną z kodem kreskowym lub QR, powiązaną z numerem partii i numerem seryjnym. Skan etykiety przy przesunięciu i wydaniu zapisuje ruch w historii. W każdej chwili można sprawdzić, kiedy surowiec trafił do magazynu, gdzie leżał i komu został wydany.

Nie eliminuje, ale ogranicza je znacząco. System wymusza skan kodu lokalizacji i kodu towaru, więc operator liczy właściwy produkt we właściwym miejscu. Przy rozbieżności wymagane jest ponowne przeliczenie, co poprawia wiarygodność raportu inwentaryzacyjnego.

Zwrot realizuje się na podstawie zwrotnej listy pobrania z zestawieniem towarów wydanych, ale niezużytych. Magazynier przyjmuje towar skanerem i wskazuje jego status, na przykład pełnowartościowy albo uszkodzony. Potwierdzenie przyjęcia dla działu produkcji można wygenerować w raporcie.

Glosariusz pojęć związanych z Report Builder

Report Builder
Edytor raportów dla SQL Server Reporting Services, uruchamiany z przeglądarki lub jako aplikacja kliencka.
RDL
Report Definition Language, format XML, w którym zapisany jest definicja raportu: źródła danych, zapytania, układ i wyrażenia.
Zbiór danych
Element raportu zawierający zapytanie do źródła oraz listę pól dostępnych w projekcie.
Parametr raportu
Wartość podawana przez użytkownika albo aplikację, która zawęża dane w zapytaniu zbioru.
Region danych
Obszar raportu prezentujący dane wierszami lub kolumnami, na przykład tabela, macierz albo wykres.
Etykieta wewnętrzna
Naklejka z kodem kreskowym nadawana jednostce ładunkowej w magazynie, niezależna od etykiety dostawcy.
Procedura składowana
Zapisany w bazie zestaw instrukcji T-SQL wywoływany po nazwie, z parametrami wejściowymi i wyjściowymi.
Wyrażenie raportu
Formuła w języku Visual Basic wyliczająca wartość pola, sumy albo formatowania w raporcie.

Warto przeczytać o raportowaniu i systemie WMS

Motorola Symbol MC9090 w magazynie wysokiego składowania - wytrzymałość i parametry terminala
Motorola Symbol MC9090 w magazynie wysokiego składowania: wytrzymałość na upadek, klient Wavelink Telnet i praca ze Studio WMS.net na Windows Mobile 5.0.
Czytaj artykuł →
Program magazynowy dla firmy produkcyjnej - zarządzanie surowcami, partiami i wyrobami gotowymi w systemie WMS
Program magazynowy dla firmy produkcyjnej: strefy surowców i kwarantanny, blokada partii, identyfikowalność w obu kierunkach, inwentaryzacja ciągła i T-SQL.
Czytaj artykuł →
Programowanie magazynowe
Programowanie magazynowe w Studio WMS.net: co załatwia konfiguracja, a co kod, procedura składowana z TRY...CATCH, integracje, terminale Android i testy zmian.
Czytaj artykuł →
Etykiety palet w magazynie wysokiego składowania - drukarka Zebra ZM400
Drukarka Zebra ZM400 drukuje etykiety logistyczne GS1 dla palet w magazynie wysokiego składowania: parametry, metody druku, połączenie sieciowe i moduł wydruku.
Czytaj artykuł →
Awizacja dostaw w magazynie wysokiego składowania - okno rampy dla palet
Awizacja dostaw w magazynie wysokiego składowania: formularz awiza, siatka ramp i godzin, rejestr awiz w buforze i zatwierdzonych oraz kalendarz dostaw.
Czytaj artykuł →
Komputer Zebra WT5400 do noszenia na sobie
Zebra WT5400 to komputer noszony na nadgarstku z ekranem 4,7 cala, Wi-Fi 6E i Androidem. Sprawdź, jak pracuje w kompletacji ze Studio WMS.net i z systemem SAP.
Czytaj artykuł →