ReportDataManager
Manager odpowiedzialny za budowanie zapytań SQL i pobieranie danych dla raportów.
ReportDataManager:
Buduje dynamiczne zapytania SQL na podstawie filtrów, sortowania i wyszukiwania
Zarządza paginacją (oblicza całkowitą liczbę elementów)
Łączy różne typy filtrów w spójne klauzule WHERE
Obsługuje globalne wyszukiwanie po wszystkich kolumnach
Wykorzystuje DataFetcher do bezpiecznego wykonywania zapytań
Proces pobierania danych:
Buduje klauzulę WHERE na podstawie filtrów i wyszukiwania
Wykonuje zapytanie COUNT dla paginacji
Jeśli są dane, wykonuje zapytanie główne z LIMIT/OFFSET
Zwraca wyniki w bezpiecznej otoczce ReportDataResult
Parameters
reportStructure
Definicja struktury raportu z zapytaniem bazowym i kolumnami.
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private fun <T : FilterData> getQueryFragment(columnName: String, filter: Filter<T>, data: FilterData): QueryFragment?
Link copied to clipboard
private fun updatePagination(reportState: ReportState, sourceSql: String, filterClause: String, params: Map<String, Any?>): DataResult<ReportPaginationState>