|
|
|
|
|
Poniżej dokumentacja języka Array Buffer Date ParamsEngine Record System Table Time Utils
|
| Klasa | Metody |
Array |
void add(Object obiekt)
Do tabeli wrzuca podany obiekt. W qtenbergu często wykorzystywane przy budowaniu tablicy uporządkowań do otwarcia tabeli:
Table klienci := new Table("V_KLIENCI");
Array orders := new Array();
orders.add("NAZWISKO");
orders.add("IMIE");
orders.add("DATA_URODZENIA");
klienci.open(orders);
|
|
AutFunLong getSize()
Zwraca wielkość tabeli. Przydatne w przeglądaniu tablicy, jeśli robiliśmy np. grupowanie w pamięci. |
|
Buffer |
void fix()
Zamyka (fiksuje) bufor. Teraz już nie będzie można do niego nic wpisać. Jeżeli jest to tabelka-lista, to następne wpisanie spowoduje dodanie nowej linijki. Jeżeli mamy tabelkę w tabelce, zafiksowanie zewnętrznej spowoduje zamknięcie wewnętrznej i np. wydrukowanie stopki wewnętrznej. |
|
Buffer getBuffer(AutFunString jaki_bufor)
Zwraca bufor - dziecko danego bufora określony poprzez prarametr jaki_bufor. Nie trzeba podawać pełnej ścieżki,
mainBuf.getBuffer("S.SPECYFIKACJA.TAB.BODY.LINE1.CELL_2.NAZWISKO");
trzeba tylko wyrazić się jednoznacznie:
mainBuf.getBuffer("SPECYFIKACJA.NAZWISKO");
|
|
|
void goTo()
Powoduje przejście qtenberga do wyznaczonego bufora (zazwyczaj fragmentu). W ten sposób można osiągnąć przejście na następną stronę: fragment ma pozycję zafiksowaną na początku strony, a my wywołujemy na nim goTo(). |
|
|
void put(Object wartosc)
Wrzuca do bufora podaną wartość (String, int, money ...). Po wrzuceniu wartości bufor jest fiksowany i nie można zmienić jego wartości. Ponowne wywołanie put w tabeli-liście spowoduje utworzenie nowej linijki i wrzucenie tam nowej wartości w opdowieniej kolumnie. W rzeczywistości put wywołuje seta i fixa |
|
|
void putLine(Object rekord_wartosci)
Wrzuca do bufora obiekt wartości. Wrzuca do wszystkich pól bufora które się nazywają tak samo jak pola rekordu_wartosci. Buforem jest najczęściej TableLine, ale może być też tabela (np. jakiś nagłówek). Od setLine'a rózni się tak jak put od seta. Argumenty:
|
|
|
void set(Object wartosc)
Wrzuca do bufora podaną wartość (String, int, money ...). W odróznieniu od puta bufor nie jest fiksowany i można zmienić jego wartość. |
|
|
void setLine(Object rekord_wartosci)
Wrzuca do bufora obiekt wartości. Wrzuca do wszystkich pól bufora które się nazywają tak samo jak pola rekordu_wartosci. Buforem jest najczęściej TableLine, ale może być też tabela (np. jakiś nagłówek). Od putLine'a rózni się tak jak set od puta. Argumenty:
|
|
Date |
AutFunDate getCurrent()
Zwraca dzisiejszą datę. Przykład:
mainBuf.get("NAGLOWEK.DATA_WYDRUKU").put("Data wydruku "
+ new Date().getCurrent());
|
ParamsEngine |
Record getRecord(AutFunString nazwa_taba, AutFunBool czyLokalne)
Zwraca rekord z wartościami z taba parametrów. Może to być np. tab parametrów wydruku lub parametrów programu. Argumenty:
Przykład:
ParamsEngine parWydruku := new ParamsEngine();
Record rec := parWydruku.getRecord("TAB_PARAMETRÓW_WYDRUKU",true);
|
Record |
addTo(Record suma)
Rekord "dodaje się" do sumy. Uwaga! Trzeba uważać na nulle! Jeżeli rekordy te są tworzone na bazie tabeli z qconów, gdzie nie wszystkie pola są wypełnione, wyskoczy wyjątek. Dlatego czasami lepiej jest, aby rekord suma był stworzony konstruktorem bezparametrowym i putami wyzerowany w odpowiednich polach. Dla calkowitej pewności najlepiej używać jeszcze po prostu puta takiego jak ten:
suma.put("WARTOSC", suma.get("WARTOSC",0.0)+r.get("WARTOSC",0.0));
Przykład: r.addTo(suma); |
|
Record copy()
Zwraca kopię rekordu, używane do klonowania rekordów. Przykład: (oldSuma i sumaStrony są klasy Record); oldSuma := sumaStrony.copy(); sumaStrony := new Record(NAZWA_TABELI); |
|
|
Object get(AutFunString nazwaPola)
Zwraca wartość pola z rekordu. Należy raczej używać metody get(String, Object), która ratuje przed otrzymaniem nulla. Atrybuty:
|
|
|
Object get(AutFunString nazwaPola, Object wartoscDomyslna)
Zwraca wartość pola z rekordu. Jeżeli ta wartość jest nullem, zwróci wartość domyślną Atrybuty:
Przykład:
Record r := new Record("KLIENT");
mainBuf.getBuffer("PANSTWO").put(r.get("PANSTWO", "POLSKA"));
|
|
|
AutFunBool hasField(AutFunString nazwaPola)
Zwraca prawdę, jeśli rekord ma takie pole. Atrybuty:
|
|
|
void put(AutFunString nazwaPola, Object wartoscPola)
Do rekordu wstawia wartość w odpowienie pole. Jeśli takiego pola nie było, zostanie ono utworzone z nową wartością. Atrybuty:
|
|
|
Record()
Konstruktor bezparametrowy tworzy pusty rekord (bez żadnych pól); |
|
|
Record(String TABELA)
Konstruktor tworzący rekord o polach takich samych jak w tabeli TABELA (zgodność typów) Argumenty:
|
|
System |
void out(AutFunString tekst)
Wyrzuca tekst do pliku out.txt |
|
void setPageNumber(AutFunLong i)
Ustawia numer strony na i. |
|
Table |
void addOneSimpleLookup(AutFunString z_jakiej_tabeli, AutFunString klucz_wlasny, AutFunString klucz_obcy, AutFunString nazwa_zrodlowa, AutFunString nazwa_docelowa)
Do tabeli dostawia jedno pole z innej tabeli. Atrybuty:
Przykład:
Table klienci := new Table("KLIENCI");
klienci.addOneSimpleLookup("SAMOCHODY", "ID_SAMOCHODU_JAKI_POSIADA",
"ID", "NR_REJ", "NR_REJ");
klienci.open(orders);
Jak widać w przykładzie, lookup należy dodać PRZED OTWARCIEM tabeli. |
|
void close()
Zamyka tabelę |
|
|
void open(Array orders)
Metoda otwierająca tabelę. Argumenty:
Przykład:
Table klienci := new Table("V_KLIENCI");
Array orders := new Array();
orders.add("NAZWISKO");
klienci.open(orders);
| |
|
Record get()
Zwraca aktualny rekord z tabeli. |
|
|
AutFunLong getRecordCount()
Zwraca liczbę rekordów w tabeli. |
|
|
AutFunBool isCurrent()
Zwraca prawdę jeśli jest aktualny rekord (czyli nie doszliśmy np. do końca). Wykorzystywane w wyrażeniach typu
while (moja_tabela.isCurrent())
{
//
}
|
|
|
AutFunBool next()
Przechodzi do następnego rekordu tabeli, zwraca czy po tym ruchu jest jeszcze rekord |
|
|
AutfunBool prev()
Przechodzi do poprzedniego rekordu tabeli, zwraca czy po tym ruchu jest jeszcze rekord |
|
|
AutfunBool search(Record czego_szukac)
Wyszukuje zadany rekord w tabeli i zwraca true jeśli taki znalazł. Aby coś wyszukać, trzeba zbudować rekord putami a potem go podać do searcha. |
|
|
void setBeginEndTable(Record startRec, Record endRec, AutFunLong n)
Metoda zawężająca tabelę "od-do". Uwaga! Tabela musi zostać wcześniej otwarta z uporządkowaniem kolejno po wszystkich polach po których chcemy zawężać. Jeśli chodzi o daty, powinne one być ostatnim uporządkowaniem. Zazwyczaj tylko jedno pole (najczęściej data) jest "od-do", reszta to zwykłe zawężenie (np. faktury hurtowe dla danego klienta od daty do daty). Po zawężeniu pola nie znikają. Argumenty:
Przykład:
Table klienci := new Table("FAKTURY");
Array orders := new Array();
orders.add("DLA_KOGO");
orders.add("DZIENNIK_SPRZEDAZY");
orders.add("DATA_SPRZEDAZY");
klienci.open(orders);
Record beginRec := new Record("FAKTURY");
beginRec.put("DLA_KOGO", "Hyska");
beginRec.put("DZIENNIK_SPRZEDAZY", "Sprzedaż_Hurtowa");
beginRec.put("DATA_SPRZEDAZY", jakas-tam-data-z-qconów);
Record endRec := new Record("FAKTURY");
endRec.put("DLA_KOGO", "Hyska");
endRec.put("DZIENNIK_SPRZEDAZY", "Sprzedaż_Hurtowa");
endRec.put("DATA_SPRZEDAZY", jakas-inna-data-z-qconów);
klienci.setBeginEndTable(beginRec, endRec, 3);
|
|
|
void setNarrowTable(Record narRec, AutFunLong n)
Metoda zawężająca tabelę. Uwaga! Tabela musi zostać wcześniej otwarta z uporządkowaniem kolejno po wszystkich polach po których chcemy zawężać. Po zawężeniu, pola po których zawężaliśmy (i w wyniku tego są wszędzie jednakowe) znikają. Argumenty:
Przykład:
Table klienci := new Table("V_KLIENCI");
Array orders := new Array();
orders.add("NAZWISKO");
orders.add("IMIE");
orders.add("MIASTO");
klienci.open(orders);
Record narRec := new Record("V_KLIENCI");
narRec.put("NAZWISKO", "Hyska");
narRec.put("IMIE", "Wawrzek");
narRec.put("MIASTO", "Warszawa");
klienci.setNarrowTable(narRec, 3);
|
|
|
void setGroupTable(Array co_grupowac, Array co_sumowac)
Grupuje tabelę po podanych polach i sumuje wybrane pola. Aby można było grupować, tabela musi być otwarta z uporządkowaniem dokładnie i kolejno takim jak Array co_grupowac. W przykładzie poniżej grupujemy wszystkie faktury według wystawiającego i płatnika oraz sumujemy ich wartość. Argumenty:
Przykład:
Table faktury := new Table("FAKTURY");
Array orders := new Array();
orders.add("WYSTAWIL");
orders.add("PLATNIK");
faktury.open(orders);
Array co_grupowac := new Array();
co_grupowac.add("WYSTAWIL");
co_grupowac.add("PLATNIK");
Array co_sumowac := new Array();
co_sumowac.add("WARTOSC_FAKTURY");
faktury.setGroupTable(co_grupowac, co_sumowac);
i dostajemy tabelę z zestawieniem kombinacji wystawiający-kupujący i sumą ich transakcji.
|
|
|
void setFirst()
Powoduje ustawienie się na pierwszym rekordzie tabeli |
|
|
void setLast()
Powoduje ustawienie się na ostatnim rekordzie tabeli |
|
|
void setSelectedTable()
Zawęża tabelę tylko do tych pól, które zostały zaznaczone przez użytkownika. Konieczne przy wydrukach "dla zaznaczonych". Uwaga! Zawężać do zaznaczonych należy PRZED OTWARCIEM tabeli. |
|
Time |
AutFunTime getCurrent()
Zwraca aktualny czas. Przykład:
mainBuf.get("NAGLOWEK.GODZINA_WYDRUKU").put("Godzina wydruku "
+ new Time().getCurrent());
Uwaga! Jeśli w lecie godzina jest o 1 za niska (czas zimowy), to w klasie EO_Date należy zmienić metodę
public AutFunTime qtg_getCurrent()
{
return new AutFunTime(Time.getCurrent());
}
public AutFunTime qtg_getCurrent()
{
return new AutFunTime(Time.getCurrentDST());
}
(Dostawić DST) i przekompilować.
|
Utils |
AutFunString slownie(AutFunMoney kwota)
Zwraca wartość kwoty słownie. |
|
AutFunString slownieEnglish(AutFunMoney kwota)
Zwraca wartość kwoty słownie po angielsku |
|
|
AutFunString slownieRussian(AutFunMoney kwota)
Zwraca wartość kwoty słownie po rosyjsku. |