Jeden silnik raportów. Projektant, żeby go narysować, biblioteka, żeby go uruchomić.
wxReports układa raporty pasmowo na Twojej bazie SQL i zapisuje je jako plik JSON. wxReportsLib to ten sam silnik w postaci statycznej biblioteki C++, więc zaprojektowany raport drukuje się identycznie wewnątrz Twojej aplikacji — bez serwera raportów, bez środowiska do instalacji.
Docelowo Windows, Linux i macOS
Nic jeszcze nie opublikowano
Dwa projekty, jeden silnik
wxReports linkuje wxReportsLib. Projektant nie jest drugą implementacją, która eksportuje format do zinterpretowania przez inny renderer — to ten sam kod, a kontrola rozjazdu uruchamia oba na tych samych danych testowych. To, co stoi w podglądzie wydruku, jest tym, co wyprodukuje Twoja aplikacja.
- wxReportsProjektant
- faktura.jsonDefinicja raportu
- wxReportsLibTwoja aplikacja
Jak powstaje raport
-
1
Połączenie
Wybierz sterownik i connection string. Jeden raport może trzymać inne zapytanie SQL i inny connection string dla każdego typu serwera.
-
2
Zapytanie
Napisz SELECT w edytorze SQL raportu. Kolumny stają się polami, które możesz rozstawić. Parametry są typowane i podstawiane przed wykonaniem.
-
3
Układ
Rozłóż pola na pasmach. Każde pasmo wie, kiedy się powtórzyć, kiedy złamać stronę, a kiedy zostać w całości.
-
4
Wydruk
Podgląd, wydruk albo eksport PDF — wektorowy lub rastrowy. Albo eksport wyliczonych danych do JSON lub CSV.
Co trafia na stronę
- EtykietaTekst statyczny.
- Pole danychKolumna z zapytania, sformatowana według typu wartości.
- ParametrWartość podana przed generowaniem.
- ZmiennaWartość wyliczana — wyrażenie w Lua, kiedy jest potrzebne.
- PodsumowanieSuma w zasięgu raportu albo grupy.
- Ramka i liniaLinie i prostokąty; zakończenia linii łączą się w prawdziwe linie tabeli.
- ObrazZ pliku albo osadzony w samym raporcie.
- PodraportCały raport zagnieżdżony w paśmie, rozwiązywany rekurencyjnie.
- WykresDwanaście typów, agregowanych z tego samego zbioru wyników.
- Kod kreskowySiedem symbolik, rysowanych wektorowo.
Wykresy z tego samego zbioru wyników
- Kolumnowy
- Słupkowy
- Liniowy
- Warstwowy
- Kołowy
- Pierścieniowy
- Złożony
- Punktowy
- Histogram
- Pareto
- Kaskadowy
- Sparkline
Agreguj sumą, zliczaniem, średnią, minimum albo maksimum. Piętrz normalnie albo do 100%. Grupuj daty po dniu, miesiącu, kwartale albo roku. Zostaw pierwsze N i sortuj po kategorii albo po wartości. Dodaj drugą oś, ustaw albo ukryj legendę, a zasięg wykresu ustaw na cały raport albo na grupę, w której stoi.
Kody kreskowe
Silnik rysuje każdą kreskę jako prostokąt wprost na kontekście urządzenia. Nic nie jest wstawiane jako bitmapa.
- EAN-13
- EAN-8
- UPC
- CODE128
- CODE39
- DataMatrix
- QR Code
Kontrola nad tym, co faktycznie się drukuje
Grupy
Grupuj po wyrażeniu. Powtarzaj nagłówek grupy na każdej stronie, łam stronę przed nim albo po nim, trzymaj grupę w całości i ustal, ile wierszy szczegółów musi zostać przy nagłówku.
Warunki
Pokaż albo ukryj pasmo warunkiem widoczności, liczonym dla wiersza. Błędnie zapisany warunek kończy się bezpiecznie, zamiast zabić raport.
Formuły
Zmienne i warunki liczą się w piaskownicy Lua, z wartościami raportu w zasięgu.
if row.net < 0 then
return "overdue"
end
return ""
Formatowanie
Nazwane style, formatowanie warunkowe, typy wartości, formaty dat, separator dziesiętny i separator tysięcy.
Rozrost
Pole może rosnąć razem z treścią do maksymalnej liczby linii i przesuwać albo rozciągać to, co pod nim.
Pięć baz danych, jeden raport
Plik raportu nosi SQL i connection string osobno dla każdego typu serwera. Projektuj na SQLite, uruchamiaj na Oracle, bez trzymania drugiego raportu.
| SQLite | Plik osadzony | sqlite:reports.db |
|---|---|---|
| SQL Server | przez FreeTDS | mssql://host:1433/sales |
| MySQL / MariaDB | przez MariaDB Connector/C | mysql://host:3306/sales |
| Oracle | przez ODPI-C | oracle://host:1521/ORCL |
| PostgreSQL | przez libpq | pgsql://host:5432/sales |
Wewnątrz Twojej aplikacji
Podlinkuj statyczną bibliotekę, wczytaj definicję zapisaną przez projektanta, ustaw parametry, generuj. Nie ma usługi do uruchomienia ani drugiego pliku wykonywalnego do wysyłki.
wxReport report(wxT("Invoice"));report.Load(wxT("invoice.json"), connectionString);report.SetParameterValue(wxT("invoice_id"), wxT("123"));wxString error;if (!report.ExportPdf(wxT("invoice.pdf"), &error)) wxLogError(error);
Generowanie, które trzymasz na smyczy
Ustaw limit czasu, limit wierszy, limit danych w MiB i wielkość paczki. Anuluj trwające generowanie. Odczytuj postęp, gdy przechodzi przez kolejne etapy. Duże zbiory wyników płyną strumieniem, zamiast wchodzić w całości do pamięci.
- Łączenie
- Zapytanie
- Wiersze
- Formuły
- Wykresy
- Finalizowanie
Pamięta, co już zbudował
Bufory danych, układu, podraportów i wykresów, każdy z licznikiem budowań i trafień — obok liczników wykonań SQL, wywołań Lua i wyrenderowanych pasm.
Wyjścia
Wydruk, podgląd wydruku, PDF (wektorowy albo rastrowy), dane raportu jako JSON, dane raportu jako CSV.
Zanim trafi na drukarkę
Sprawdzenie raportu
Przebieg kontrolny, który wypisuje znalezione problemy i przeskakuje do wybranego.
Podgląd danych
Wyliczony zbiór wyników, zanim nałoży się na niego układ.
Eksport danych
wxReportsData v1 — wyliczone wiersze i kolumny, celowo bez SQL-a, ścieżek plików, connection stringów i układu. Bezpieczny do trzymania jako artefakt testowy.
Testy automatyczne
Zestaw pokrywający każdy typ sekcji i elementu, wszystkie typy wykresów, formaty stron i marginesy, parametry, formuły, podsumowania, podraporty, strumieniowanie, bufory, eksport PDF i JSON, anulowanie, limity czasu i limity zasobów.
Pliki do pobrania
Pobieranie wprost, bez zakładania konta. Wiersz jest tu dla każdej paczki, która ma powstać; staje się aktywny w chwili wgrania pliku, z prawdziwym rozmiarem odczytanym z dysku.
Żadna paczka nie została jeszcze wgrana. Tabela wypełni się sama, gdy tylko pierwsza kompilacja trafi do katalogu downloads.
| Platforma | Format | Plik | Rozmiar | Pobierz |
|---|---|---|---|---|
| Windows x86 | ZIP | wxReports-dev-windows-x86.zip Wersja przenośna. Rozpakuj i uruchom. Zbudowane w Visual Studio, statyczny CRT, wxWidgets linkowane statycznie. | Rozmiar niedostępny | Niewgrane |
| Linux amd64 | DEB | wxreports_dev_amd64.deb Paczka systemowa dla Debiana i Ubuntu. Planowane; kompilacja na Linuksa jest celem, nie gotową paczką. | Rozmiar niedostępny | Niewgrane |
| macOS x86_64 | DMG | wxReports-dev-macos-x86_64.dmg Obraz dysku dla Maków z procesorem Intel. Planowane; kompilacja na macOS jest celem, nie gotową paczką. | Rozmiar niedostępny | Niewgrane |
| Platforma | Format | Plik | Rozmiar | Pobierz |
|---|---|---|---|---|
| Source C++ | ZIP | wxReportsLib-dev-src.zip Silnik w postaci źródeł C++ do podlinkowania w Twojej aplikacji. Ten sam kod, na którym stoi projektant, razem ze sterownikami baz danych. | Rozmiar niedostępny | Niewgrane |
Windows, Linux, macOS
Oba projekty stoją na wxWidgets i celują we wszystkie trzy systemy. Udokumentowana dziś kompilacja to ta z Visual Studio; Linux i macOS są celem, a nie gotowym plikiem do pobrania.
- Windows Projekt Visual Studio, statyczny CRT, statycznie linkowane wxWidgets. Kompilacja udokumentowana
- Linux Platforma docelowa. Planowane
- macOS Platforma docelowa. Planowane
Na jakim etapie jest projekt
wxReports i wxReportsLib są w aktywnym rozwoju. Co jest przesądzone, stoi na tej stronie; czego nie ustalono, jest wypisane poniżej, zamiast zostać wypełnione zgadywanką.
- Licencja Warunki licencji nie zostały ustalone. Do ustalenia
- Dystrybucja Czy paczki będą darmowe, płatne, czy licencjonowane na stanowisko — nieustalone. Do ustalenia