Własne raporty SQL

Powrót do Pomocy





Wstęp

Własne raporty SQL pozwalają użytkownikowi tworzyć unikatowe raporty odpowiadające jego potrzebom. Można to osiągnąć pisząc własny skrypt SQL, który komunikuje się wprost z bazą danych i jest następnie dodany do drzewka nawigacji MMEX.

Okienko menedżera własnych raportów SQL posiada następujące funkcje:

Tytuł raportu - Pole tekstowe

Używa się go do nadania skryptowi tytułu, który jest następnie wyświetlany w drzewku nawigacji.

Nagłówek - Pole wyboru

Nagłówek może być dodany bez powiązanego skryptu. Pozycja menu posiada powiązany skrypt.

Kiedy jest zaznaczone: Pozwala na użycie tytułu jako nagłówka w drzewku nawigacji.

Podkategoria - Pole wyboru

Kiedy jest zaznaczone: Drzewko nawigacji ustawi tytuł jako podkategorię pod poprzednią pozycją menu. Pozycja menu niekoniecznie musi być nagłówkiem.

Skrypt źródłowy SQL
- Pole tekstowe

W tym polu należy wpisać treść skryptu.

Wczytaj - Przycisk

Wczytuje z pliku wskazany, istniejący skrypt.

Zapisz - Przycisk

Zachowuje zmiany wprowadzone do skryptu.

Uruchom - Przycisk

Pozwala na wykonanie skryptu bez zamykania okna menedżera.
Uwaga: Błędy w skrypcie mogą być powodem utraty wszystkich nie zapisanych uprzednio zmian.

Wyczyść - Przycisk

Czyści pole wpisywania źródłowego skryptu SQL.

Zamknij - Przycisk

Zamyka okno menedżera bez zapisywania. To sposób na anulowanie okna menedżera.

Po utworzeniu skryptu i zachowaniu go, odpowiadający mu raport może być łatwo dostępny poprzez panel drzewka nawigacji MMEX.

Tworzenie nowego własnego raportu SQL odbywa się przez wybór:

Spowoduje to otwarcie Menadżera własnych raportów SQL i umożliwi uzytkownikowi bezpośrednie wpisanie skryptu i zapisanie go jako pliku.

Użyteczne skrypty SQL są także dostępne na internetowym forum programu MMEX. Forum to można wywołać:

Zalecenia:

Uwaga:

Wszystkie tytuły skryptów są zapisywane w pliku indeksu o tytule: CustomSQLReportIndex.txt


Własne raporty SQL mogą zostać usunięte przez skasowanie pliku indeksu.


Reporty mogą zostać przeorganizowane przez bezpośrednią modyfikację pliku indeksu.





Do spisu treści

Powrót do Pomocy





Uruchamianie raportów przez drzewko nawigacji

Raporty utworzone przez Menedżera własnych raportów są na stałe zapisane w drzewku nawigacji. Raport otrzymuję nazwę w momencie jego zapisu. Używając tej nazwy, użytkownik może:

Tytuł raportu może być zapisany bez połączonego z nim skryptu SQL. Jest to używane do tytułowania grup skryptów. Wówczas drzewko nawigacji zachowuje się podobnie do standardowych raportów. Raporty mogą być zagnieżdżone tylko do jednego poziomu wgłąb.



Do spisu treści

Powrót do Pomocy





Struktura bazy danych MMEX

Aby tworzyć skrypty, należy dobrze zrozumieć wewnętrzną strukturę bazy danych. Struktura ta jest przedstawiona poniżej:

Podstawowa struktura pliku danych MMEX






Tabela informacyjna

Ten obrazek przedstawia nazwy tabel wraz z ich polami oraz linki, które łączą tabele za pomocą podstawowego pola indeksu tabeli.



Nazwy tabel

Opis tabel

InfoTable_V1

Zawiera ustawienia specyficzne dla bazy danych.

CurrencyFormats_V1

Zawiera sposób formatowania waluty dla bazy danych.

AccountList_V1

Zawiera nazwy wszystkich kont i dane specyficzne dla konta.

Payee_V1

Zawiera wszystkich beneficjentów oraz ostatnią kategorię użytą przez danego beneficjenta.

Category_V1

Jest to lista wszystkich kategorii w bazie danych.

SubCategory_V1

Jest to lista wszystkich podkategorii w bazie danych.

CheckingAccount_V1

Jest to główna tabela, w której utrzymywane są wszystkie transakcje.

SplitTransactions_V1

Zawiera wszystkie dane związane z podzielonymi transakcjami (z opcją 'Podział')



Tabele nie pokazane na diagramie


Stock_V1

Używana dla 'Akcji i papierów wartościowych' i jest połączona z tabelą: AccountList_V1 z użyciem pola 'HeldAt'

Assets_V1

Zawiera szczegóły Środków trwałych

BudgetYear_V1

Szczegóły roku budżetowego

BudgetTable_V1

Szczegóły budżetu

BudgetSplitTransactions_V1

Podzielone transakcje dla budżetowania

BillDeposit_V1

Zawiera wszystkie detale 'Transakcji powtarzanych'. Podobna do tabeli: CheckingAccountV1





Do spisu treści

Powrót do Pomocy





Scripty SQL (wprowadzenie)

Próba nauczenia programowania SQL wykracza poza zakres tego pliku pomocy do programu, ale poniżej zamieszczono krótki przewodnik do zrozumienia skryptów, który może wystarczyć to stworzenia własnych, prostych skryptów.

W czasie tworzenia skryptu, główną komendą, którą będziemy używać będzie SELECT.

Podstawowy format to:

SELECT <nazwa>

<nazwa> reprezentuje nazwy pól tabeli, lub * dla wszystkich nazw.

FROM <tabela>

<tabela> reprezentuje tabelę lub tabele, które są celem komendy.

WHERE <warunek jest spełniony>

[opcjonalnie] tu testujemy niektóre warunki.

ORDER BY <parametr>

[opcjonalnie] sortowanie wyjścia poprzez ten parametr


Przykłady:

SELECT * FROM AccountList_V1;
* Wyświetli wszystkie pola tabeli: AccountList_V1

SELECT AccountName, Status FROM AccountList_V1 where AccountType = “Term”;
* Wyświetli nazwy Kont terminowych i ich status z tabeli: AccountList_V1


Tu opis bardziej złożonego skryptu:


Chociaż ten skrypt jest bezużyteczny, obrazuje niektóre podstawowe zasady.

select pT.PayeeName payee,
    cT.CategName,
    scT.SubCategName
from payee_v1 pT,
    category_v1 cT,
    subcategory_v1 scT
where
    pT.categID = cT.categID and pT.subCategID = scT.subCategID
order by
    payee


W tym przykładzie widzimy, że nazwa tabeli to: payee_V1 a nazwa pola to PayeeName

W członie FROM widać nazwę tabeli: payee_V1 pT
* znaki pT na końcu działają jako alias dla nazwy tabeli.

Teraz w komendzie SELECT widzimy: pT.PayeeName payee
* pT. jest tu użyte do określenia tabeli zawierającej pole PayeeName
* payee na końcu komendy, jest aliasem dla kombinacji: table.fieldname (tabela.nazwapola)

Możemy oddzielić nazwy tabel i pól przecinkami, jeżeli komenda obejmuje więcej tabel i pól – jak w przykładzie.

W poleceniu WHERE widać: pT.categID = cT.categID
* Jest to test upewniający nas, że te dwa pola są takie same w obydwu tabelach.

Teraz w komendzie ORDER BY, można użyć uproszczonej nazwy payee, którą zdefiniowaliśmy w poleceniu SELECT.

Mam nadzieję, że ten krótki wstęp pozbawi skrypty aury tajemniczości i efekty tego będzie można zobaczyć na Forum MMEX w sekcji Custom SQL Report Scripts.


Do spisu treści

Powrót do Pomocy