ReportStructure

class ReportStructure(val queryFragment: QueryFragment, val initColumns: Map<String, ReportColumn>, val reportName: String, val rowActions: List<ReportRowAction> = emptyList(), val defaultRowAction: ReportRowAction? = null, val mainActions: List<ReportMainAction> = emptyList(), val quickSearchMapper: (String) -> QueryFragment?? = null)

Definicja struktury raportu - schemat określająca zapytania, kolumny i akcje.

ReportStructure to główna klasa konfiguracyjna systemu raportowania, która:

  • Definiuje zapytanie SQL dla pobierania danych

  • Konfiguruje kolumny z ich typami, filtrami i opcjami sortowania

  • Określa akcje dostępne dla wierszy i całego raportu

  • Automatycznie dodaje kolumny specjalne (akcje) do struktury

Kolumny dzielą się na:

  • Zwykłe kolumny: Definiowane przez developera, mapują dane z bazy

  • Kolumny specjalne: Generowane automatycznie (np. kolumna akcji)

Parameters

queryFragment

Zapytanie SQL do pobrania danych raportu.

initColumns

Mapa kolumn zdefiniowanych przez developera (klucz = nazwa kolumny w SQL).

reportName

Unikalna nazwa raportu (używana do zapisywania konfiguracji).

rowActions

Lista akcji dostępnych dla każdego wiersza.

defaultRowAction

Domyślna akcja wykonywana po podwójnym kliknięciu wiersza.

mainActions

Lista akcji głównych (np. "Dodaj nowy").

quickSearchMapper

Opcjonalna funkcja mapująca tekst wyszukiwania na fragment zapytania.

Constructors

Link copied to clipboard
constructor(queryFragment: QueryFragment, initColumns: Map<String, ReportColumn>, reportName: String, rowActions: List<ReportRowAction> = emptyList(), defaultRowAction: ReportRowAction? = null, mainActions: List<ReportMainAction> = emptyList(), quickSearchMapper: (String) -> QueryFragment?? = null)

Properties

Link copied to clipboard
lateinit var columns: Map<String, ReportColumn>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Zwraca listę kluczy kolumn, które mogą być zarządzane przez użytkownika w panelu konfiguracji (ukrywanie, zmiana kolejności). Pomija kolumny specjalne (np. akcje).

Link copied to clipboard
val queryFragment: QueryFragment
Link copied to clipboard
private val quickSearchMapper: (String) -> QueryFragment??
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
private fun buildDefaultQuickSearchFilter(searchQuery: String): QueryFragment
Link copied to clipboard

Zwraca wszystkie kolumny zdefiniowane w tej strukturze

Link copied to clipboard

Zwraca kolumnę o danej nazwie

Link copied to clipboard
fun getQuickSearchFilter(searchQuery: String): QueryFragment

Zwraca fragment zapytania dla szybkiego wyszukiwania. Jeśli zdefiniowano quickSearchMapper, używa go. W przeciwnym razie buduje domyślny filtr po wszystkich filtrowalnych kolumnach.

Link copied to clipboard