wxReports

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

Obszar projektowania

A4 · 210 × 297
Szczegóły 8 mm Rysunkowe odwzorowanie projektanta, nie zrzut ekranu.

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.

  1. wxReportsProjektant
  2. faktura.jsonDefinicja raportu
  3. wxReportsLibTwoja aplikacja

Jak powstaje raport

  1. 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. 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. 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. 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.

Podgląd wydruku

PDF · A4
Sprzedaż wg regionów2026-09-10
PozycjaIlośćNetto
Region: Północ
Cable tray 2001284 812,00 Bracket M81 0402 184,00 Junction box961 536,00 Gland PG162 5001 125,00
Razem region9 657,00
Razem raport31 204,00
wxReportsStrona 1 z 3
Rysunkowe odwzorowanie wygenerowanej strony, nie zrzut ekranu.

Wykresy z tego samego zbioru wyników

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.

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);
Ten sam plik definicji, który zapisał projektant.

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.

  1. Łączenie
  2. Zapytanie
  3. Wiersze
  4. Formuły
  5. Wykresy
  6. 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.

wxReports — projektant
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
wxReportsLib — biblioteka
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.

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ą.