|
QN-Arkusz |
|
Na wstępie omówimy przeznaczenie tego elementu a następnie podamy kilka przykładów z opisem. |
Klocek QN-Arkusz
wykorzystywany jest do wprowadzania danych na zasadzie arkusza kalkulacyjnego. Poniżej podajemy przykład zastosowania tego klocka do przeglądania spraw pracowniczych:
W celu poprawienia danych klika się w odpowiednim miejscu i od razu wprowadza / modyfikuje dane.
Klasyczne przeglądanie i obróbka danych w QN-Browser
Oto przykład zwykłego QN-Browser
'a: aby wpisać nowy rekord trzeba nacisnąć na belce przycisk
albo wcisnąć klawisz [Insert]. Pojawia się wtedy okienko edycji rekordu, gdzie zmienia się wartości pól. Przy próbie modyfikacji, wyrażonej przyciskiem z belki
albo klawiszem [M] także pojawi się to okienko edycji. Aby usunąć rekord należy wybrać przycisk
albo wcisnąć na danym rekordzie klawisz [Del].
Zastosowanie QN-Arkusz
do powyższego zagadnienia
W QN-Arkusz
nie ma potrzeby wywoływania okna edycji rekordu. Aby dodać nowy rekord wystarczy zejść strzałkami pod ostatni rekord w arkuszu (ten z gwiazdką) i bezpośrednio w polach wpisywać nowe wartości. Przy modyfikacji wystarczy przejść na wybrane pole - kliknąc i wpisać nową wartośći. Kasowanie rekordów działa standardowo.
Aby zamienić obecny BROWSER należy zastąpić maskę pola opisującego browser na EDITABLE_BROWSER.
//
//
//
//
TAB SPEC_RACH_EDIT extends SPEC_RACH SPEC_DOK_ROZCH_EDIT RABATY STANY_MAG_CHECK_EXT;
...
ID VIS LEN TYPE NAME
...
PROWIZJA - 0 STRING "Prowizje wg specyfikacji" MASK=EDITABLE_BROWSER
EVH=ListIDCopy(V_PROWIZJA_BRO, LINKSPECFV, Record( WNETTO=WNETTO LINKFV=LINKFV DATASPRZ=DATASPRZ)) ;
//
//
//
| Jako maskę należy wpisać MASK=EDITABLE_BROWSER |
Polom edytowanym w Tabie opisującym dany browser należy dodać opcje NO3DPANEL
// // // // TAB SPEC_RACH_EDIT extends SPEC_RACH SPEC_DOK_ROZCH_EDIT RABATY STANY_MAG_CHECK_EXT; ... ID LEN TYPE NAME ATTRIB ... KODP 10 STRING "Kod pracownika" (NO3DPANEL) ; PROCENTPROW 8 DOUBLE "Procent prowizji" (NO3DPANEL) MASK=DOUBLE(2) ; // // // | Polom edytowanym w Tabie opisującym dany browser należy dodać opcje: ATTRIB=(NO3DPANEL) Bez tej opcji bedą te pola mieć wygląd niestandardowy. |
Często zachodzi potrzeba wyliczenia określonych funkcji dla danej tabeli. Obliczana jest ona wtedy na podstawie wartości wszystkich wierszy. Przykładową funkcją może być suma, maksimum, minimum kolumny. Jednak często potrzeba dla skrótowego opisu wypisać listę elementów kolumny lub listę stworzoną z wartości określonego wyrażenia obliczanego dla każdego wiersza. Tego typu "sztuczki" umożliwia QN-Arkusz
.
Narzędzie Arkusz pozwala na wykonywanie na tabeli operacji matematycznych i konkatenacji stringów.
Dla danej tabeli dokonuje operacji na polach:
Dostępne operacje matematyczne:
Dostepne operacje na stringach:
Operacje matematyczne:
Operacje na stringach
Zsumowanie kolumn "procent prowizji", które są w %. Wynik w polu "Suma procentów prowizji".
Przykład wyglądu ekranu:
Konfiguracja w struct.qcon'ie
//
ID VIS LEN TYPE NAME
...
PROWIZJA - 0 STRING "Prowizje wg specyfikacji" MASK=EDITABLE_BROWSER
EVH=ListIDCopy(V_PROWIZJA_BRO, LINKSPECFV, Record( WNETTO=WNETTO LINKFV=LINKFV DATASPRZ=DATASPRZ)) ;
SUMAPROC SHOW 8 DOUBLE "Suma procentów prowizji" MASK=DOUBLE(2) EDILEN=5
BASEFUN=SUM(PROWIZJA, PROCENTPROW) ;
//
| Browser, w którym jest zdefioniowana nasza tabela. BASEFUN - wywolanie funkcji SUM, która z browsera PROWIZJA sumuje wartości pól PROCENTPROW |
Sprawdzanie czy suma prowizji nie przekracza 100%. Wynik w polu z ostrzeżeniem.
Przykład wyglądu ekranu:
Konfiguracja w struct.qcon'ie:
//
ID VIS LEN TYPE NAME
...
PROWIZJA - 0 STRING "Prowizje wg specyfikacji" MASK=EDITABLE_BROWSER
EVH=ListIDCopy(V_PROWIZJA_BRO, LINKSPECFV, Record( WNETTO=WNETTO LINKFV=LINKFV DATASPRZ=DATASPRZ)) ;
...
PRZEKROCZONE SHOW 8 STRING "" ATTRIB=(COLOR=SIMPLE(LIGHT_RED) FONTSTYLE=BOLD)
AUTFUN=(SUMAPROC<=100.1)?"":"Przekroczyles 100% prowizji!" EDILEN=25;
//
| Browser, w którym jest zdefioniowana nasza tabela. Pole PRZEKROCZONE jest wypełniane inaczej w zależności od wartości pola SPROCPROW, tzn. jeśli SUMAPROC > 100% z uwzględnieniem błędu 0.1 %, jest wyświetlane jaskrawe ostrzeżenie. |
Wypisanie listy elementów z kolumn "Imię", "Nazwisko". Wynik w polu "Wykonawcy wg nazwiska".
Przykład wyglądu ekranu:
Konfiguracja w struct.qcon'ie:
//
ID VIS LEN TYPE NAME
...
PROWIZJA - 0 STRING "Prowizje wg specyfikacji" MASK=EDITABLE_BROWSER
EVH=ListIDCopy(V_PROWIZJA_BRO, LINKSPECFV, Record( WNETTO=WNETTO LINKFV=LINKFV DATASPRZ=DATASPRZ)) ;
...
WYKONAWCY SHOW 40 STRING "Wykonawcy"
BASEFUN=CONCAT(PROWIZJA, "(" + IMIE + " " + Nazwisko + ") ") ;
//
| Browser, w którym jest zdefioniowana nasza tabela. BASEFUN - wywołanie funkcji CONCAT, która z browsera PROWIZJA konkatenuje wartości pól IMIE i NAZWISKO oddzielone spacją. |