Własne raporty SQL |
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 |
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. |
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:
Pozycji w menu: Narzędzia –> Własne raporty SQL
Odpowiedniej ikonki na pasku narzędzi.
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ć:
Używając pozycji menu: Pomoc –> Raportuj błędy
Przeszukaj tematy w bloku: Custom SQL Report Scripts
Zalecenia:
Nadawaj użyteczne nazwy tworzonym skryptom.
Zapisuj skrypt przed uruchomieniem go w Menadżerze
własnych raportów SQL.
Uwaga: Błędy
skryptu mogą spowodować jego utratę jeżeli nie jest uprzednio
zapisany.
Użyj menu podręcznego w drzewku nawigacji do rozpoczęcia edycji skryptu.
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. |
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:
Uruchomić raport
Edytować raport
Usunąć raport.
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.
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 |
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, |
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.