QBS
>> Suplementy i Dokumentacja Techniczna do Q-Line 3000
>> Atrybutu pola MASK
Rodzaje masek - czyli sposób edycji i wyświetlania pól
Maski - kontrolki edycyjne
Index
Maski oparte na kolumnie TYPE
(bez kolumny MASK)
Jeżeli nie ma kolumny MASK przyjmowana jest domyślna maska dla pola w oparciu o kolumnę
TYPE
oraz długość LEN
lub EDILEN
- STRING - kontrolka z edycją zwykłego stringu.
- INT - kontrolka z edycją liczby całkowitej.
- DOUBLE - kontrolka z edycją liczby rzeczywistej.- do zrobienia!
Maski oparte na kolumnie MASK
- BARCODE
- Składnia: BARCODE(<standard>) gdzie standard to: EAN8, EAN13, inter2of5
- Opis: Kontrolka do kodów paskowych obsługuje rózne standardy, czasami automatycznie dogenerowywuje cyfrę kontrolną jak jej nie ma, ale to zależy od standardu.
- Przykłady: BARCODE(EAN13)
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: Zapisany kod paskowy (z cyfrą kontrolną)
- Trigger do zarejestrowania: qline.misc.BarCodeMaskPlugin
- BROWSER
- Składnia: BROWSER lub BROWSER(<record>) gdzie record to rekord z parametrami
- Opis: Pole widoczne jako spis standardowy, zdefiniowany przez podpięte makro EVH. Innymi słowy jest to wklejony browser. Wklejony browser zawsze można zastąpić maską BUTTON W zasadzie to to macro ma sens dla pól z podpiętym EVH z definicją browsera! Do maski można przekazać rekord parametrów w nawiasach. Są to
- Przykłady:
- BROWSER
- BROWSER(F2MENU=ODB_F2)
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: Brak
- BUTTON
- Składnia: BUTTON lub BUTTON(parametry)
Parametry (obok wartości) są następujące
- ACTION - ścieźka do pliku class
- METHOD - nazwa metody klasy
- ICON - ścieżka do pliku z ikoną
- ALWAYSACTIVE("TRUE","FALSE") - aktywność przycisku
- Opis: Pole widoczne jako guzik. po wciśnięciu wywołana akcja przypisana do guzika. Akcję można określić na dwa sposoby:
- Wywołanie słownika lub historii (po prostu innego spisu) - używamy wtedy maski BUTTON bez parametrów. Podpięcie słownika lub historii wykonujemy poprzez podanie makra EVH w kolumnie EVH.
- Zdefiniowanie własnej akcji podpiętej pod guzik. Wystarczy zaimplementować własną klasę implementującą "ButtonFieldAction". Musi ona mieć bezparametrowy konstruktor. Interface ButtonFieldAction zawiora dwie metody:
- public void setParentWindow(Window parentWindow) - ustawienie okna nadrzędnego - w tym wypadku RecordEditWindow (żeby móc sobie pobrać parametry)
- public void run() - uruchomienie akcji!
W zasadzie to to macro ma sens dla pól z podpiętym z definicją browsera! Są sytuacje kiedy chcemy by BUTTON zawsze miał focus. wtedy dodajemy w nawiasach najpierw identyfikator ALWAYS
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: Brak
- CALENDAR
- Składnia: CALENDAR lub CALENDAR(<record>)
- Opis: Kontrolka w postaci kalendarza. Standardowo na niebiesko są niedziele
Możliwe parametry - ATTRIBHOLDER - klasa implementująca interfejs CalendarAttribHolder odpowiadająca za wygląd kalendarza za dokładnością do dnia
- Przykłady: CALENDAR(ATTRIBHOLDER="qsth.NewAttribHolder")
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: ilość dni od 1970.01.01 (może być wartość ujemna)
- CHECKBOX
- Składnia: CHECKBOX
- Opis: Pole logiczne (wyłączone/włączone) widoczne jako kwadracik zaznaczony lub nie! (taki fistaszek!)
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: 0 - wyłączone 1 - włączone
- COLOR
- Składnia: COLOR
- Opis: Kobtrolka do koloru pokazuje wybrany kolor, oprócz tego posiada z boku guzik do otwierania palety edycyjnej koloru
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: wartość koloru w formacie RGB zapisana dziesiętnie, ale jako string
- Trigger do zarejestrowania: qline.misc.ColorMaskSelectorTrigger
- DATE
- Składnia: DATE lub DATE(<record>)
- Opis: Pole do edycji daty
Bez parametrów format daty określony globalnie dla całej aplikacj w pliku qline.txt. Możliwe parametry - FORMAT-format daty, np. "YYYY.MM"
- Y - cyfry z roku
- M - cyfra z miesiaca
- D - cyfra z dnia
- CALENDAR = [TRUE/FALSE] - czy dostępny jest kalendarz
Application w pozycji DateEditFormat Znak zapytania podpowiada bieżącą datę.
- Przykłady: DATE(FORMAT="YYYY.MM" D=11) DATE(FORMAT="DD.MM.YYYY") DATE(CALENDAR=TRUE);
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: ilość dni od 1970.01.01 (może być wartość ujemna)
- DOUBLE
- Składnia: DOUBLE lub DOUBLE(<intDecPlaces>)
- Opis: Pole do edycji liczb rzeczywistych - z podaną preyzją (parametr intDecPlaces), jeśli nie podamy precyzji przyjmowane są 2 miejsca po przecinku
- Wartości zapisywane do rekordu:
- typ: DOUBLE
- wartość: liczba zmienno-przecinkowa
- DRAWING
- Składnia: DRAWING FILE=aut_expr SIZE=(sizex sizey) OBJECTS=????????. Atrybut FILE jest obowiązkowy, pozostałe nie.
- Opis: Jest to kontrolka do edytowania rysunków (kropki kreski kółka .....) na jakimś tle. Przydaje się bardzo do rysynków poglądowo schematycznych (np. gdzie są dziury w zębach pacjenta)
- Przykłady: to WNO ma coś wpisać!!!!!!!
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: zakodowany cią binarny
- Trigger do zarejestrowania: qline.misc.DrawMaskPlugin
- EMAIL
- Składnia: EMAIL
Maska pozwala na wywoływanie klienta poczty z poziomu pola. Pole wyposażone jest w dodatkowy przycisk powodujący otworzenie okna domyślnego systemowego klienta poczty z adresem docelowym równym bieżącej zawartosci pola.
Maska nie wpływa na wartość wpisywaną w polu.
- Opis:
- typ: STRING
- wartość: tekst (adres email)
- ENUM
- Składnia:
- Opis: Kontrolka do pól logicznych z taką samą składnią jak RADIOH tylko że, wyświetla tylko wybraną możliwość bez mozliwości zmiany wartości. Aby uzyskać kolor typu ReadOnly kontrolki trzeba koniecznie nadać atrybut VIS=SHOW. Można stosawać np. do wizualizacji wyliczonego na podstawie daty dnia tygodnia.
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: numer odpowiadający polu
- FASTVOC
- Składnia: FASTVOC(<foreign_raw_key_field> <label>=<foreign_key_field> ... )
- Opis: Pole (słownikowe) pozwalające na wyszukiwanie po wielu polach (klucze jedno polowe)
- Przykłady: PLATNIK ..... EVH=Voc(V_ODBIORCY_VOC, KODO) MASK=FASTVOC ( KODO "Nazwa"=NAZWAO "Nip"=NIP "Kod"=KODO ) ;
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: pole ściągane
- FILE
- Składnia: FILE lub FILE(parametry)
Parametry (obok wartości) są następujące
- TYPE ( "FILE", "DIRECTORY")-wybór pliku lub katalogu
- ABSOLUTE ("TRUE", "FALSE")-ścieżka bezwzg. lub względna
- CURRENT_DIRECTORY ( "katalog" )-bieżący katalog
- SAVE("TRUE","FALSE")-wybierz lub zapisz plik
- Opis: Pole do podowania ścieżki do pliku. Jest to zwykłe pole tekstowe, tylko z prawej strony ma guzik, do wywoływania przeglądarki plików. Kontrolka może być wykorzystana także do wyboru katalogów Pokazywane są tylko pliki o podanych rozszerzeniach. Na dole jest lista do wyboru rozszerzenia (jednego z tych zdefiniowanych jako argumenty tej maski). Jeśli nie podamy żadnych rozszerzeń to pokazane będą wszystkie pliki.
W oknie wyboru można zakładać i kasować katalogi
- Przykłady: FILE(CURRENT_DIRECTORY="D:\\" GIFS="Pliki graficzne(*.gif; *.GIF;)" JPEG="Pliki graficzne(*.jpg; *.JPG;)") - kontrolka zawsze się otworzy w katalogu D:\, z dwoma maskami dla gifów i jpegów
FILE(TYPE="FILE" SAVE="TRUE") - okienko zapisu pliku ( oczywiście zapis nie jest obłużony
FILE(TYPE="DIRECTORY" CURRENT_DIRECTORY="J:\\") - okienko wyboru katalogu, które zawsze otworzy się na dysku J:\
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: wpisany string
- FONT
- Składnia: FONT
- Opis: Kontrolka do wyboru fontu
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: Nazwa fontu
- HTML
- Składnia: HTML(<intW> <intH>)
- Opis: Pole widziane jako okno HTML. Podane intW i intH to rozmiary w znakach standardowych. Zawartość okna to plik html którego nazwa zapamiętana jest w polu. W tej chwili jeżeli chcemy móc zmieniać zawartość tego okna, to jedyną sensowną metodą zmiany zawartości pole jest poprzez columnę AUTFUN
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: nazwa wyświetlanego pliku
- IMAGE
- Składnia: IMAGE(<intW> <intH>) lub IMAGE RESIZABLE(<intW> <intH>) lub IMAGE PRESERVEXY(<intW> <intH>)
- Opis: Pole wyświetlające grafikę. Podane intW i intH to rozmiary w znakach standardowych. Jeżeli po słowie IMAGE dodamy słowo RESIZABLE to obrazek dostosuje się do rozmiarów okna. Zamiast RESIZABLE można użyć PRESERVEXY i obrazek będzie się dostosowywał, ale zachowywając stosunek wysokość/szerokość. Uwaga: Czasami głupio wygląda! Zawartość okna pobierana jest z rekordu jako tablica bajtów. Źródło danych jest niezależne od kontrolki. Można podać je jako columnę AUTFUN, używając funkcji filedata
- Wartości zapisywane do rekordu:
- typ: Byte[]
- wartość: binarna treść obrazka
- LABEL
- Składnia: LABEL
- Opis: Kontrolka do wyświetlania wartości w polu. Nie pozwala na żadną edycję, ale za to przyjmuje focus. Dzięki temu ma zastosowanie jako pole Historia.
Uwaga! Kontrolka jest mocno niedorobiona, więc zaleca się jej nieużywania bez potrzeby. Ministerstwo zdrowia, szczęścia, pomyślności.
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: wartość
- Trigger do zarejestrowania: qline.misc.LabelEditMaskPlugin
- LINK
- Składnia:
- Opis: Maska tworzy przy polu edycyjnym mały przycisk, którego przysiśnięcie spowoduje otworzenie zadanej strony internetowej (np. klienta) w standardowej przrglądarce internetowej ( zdefiniowanej w pliku qline.txt). Podadnie prefixu 'http://' nie jest wymagane.Uwagę zwrócić należy na zasadę, że albo używamy prefixu 'http://' albo nie.Żadna forma pośrednia (np. 'http//' lub 'htp://') nie jest dopusczalna.
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: adres strony do wywołania
- LLIST
- Składnia:
- Opis: Kontrolka do pól logicznych z taką samą składnią jak RADIOH tylko że, wyświetla tylko wybraną możliwość zmożliwością jej zmiany strzałkami, lub wywołaniem wyboru z okna listowego. Wyboru z okna listowego można dokonać klawiszem F2 lub strzałeczką z prawej strony.
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: numer odpowiadający wybranej wartości w polu
- MASK
- Składnia: MASK(<string_mask>) lub MASK(<string_mask> <string_default_>)
- Opis: Pole do edycji stringów o określonej masce. W pierwszym argumencie określamy samą maskę, w drugim możemy podać napis jaki ma się domyślnie pojawić.Oto sposób konstrukcji stringu z opisem maski:
- '0' - Cyfra (wymagana)
- '9' - Cyfra lub spacja
- '#' - Cyfra lub spacja, lub +, lub -
- '?' - Litera
- 'a' - Litera lub cyfra
- '&' - Dowolny znak
- '<' - Wymuszenie małych liter
- '>' - Wymuszenie dużych liter
- '\\' - Znak specjalny - nastŕpna litera bŕdzie brana jako stała
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: string z całą wypełnioną maską
- MONEY
- Składnia: MONEY lub MONEY(<intDecPlaces>)
- Opis: Pole do edycji pieniędzy - z podaną preyzją (parametr intDecPlaces), jeśli nie podamy precyzji przyjmowane są 2 miejsca po przecinku
- Wartości zapisywane do rekordu:
- typ: DOUBLE
- wartość: liczba zmienno-przecinkowa
- PASSWORD
- Składnia: PASSWORD
- Opis: To nie jest prawdziwa kontrolka password, jedyne co robi to zakrywa gwiazdkami hasło. Powinno to być kontrolka która koduje w locie
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: Odkodowane hasło
- PLUSMINUS
- Składnia: PLUSMINUS
- Opis: Pole wyposażone jest w dodatkowe strzałki: góra - do powiększania o 1 i dół - do zmniejszania o 1. W ten sposób można wygodnie modyfikować wartość za pomocą myszki. Maska jest szczególnie przydatna, gdy zapisywane liczby lub odchylenia są niewielkie, np. parametry liczbowe. Maska nie wpływa na sposób formatowania wartości w polu.
- typ: INT
- wartość: liczba całkowita
- RADIOH
- Składnia: RADIOH(<str0> <str1> ... <strn>) lub RADIOH(<str0>=<int0> <str1>=<int1>
- Opis: Pole logiczne z wyświetlonymi wszystkimi możliwościami.Możliwości ułożone wzdłuż osi Y. Obok możliwości wyświetlone opisy. Jeżeli kontrolka została zdefiniowana z podaniem wartości odpowiadających poszczególnym możliwym wyborom pola wartość odpowiadająca dokonanemu wyborowi zostanie zapisana do bazy (opcja 2). W przeciwnym przypadku wartości odpowiadające nadawane są od 0 do n (Opcja 1).
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: numer odpowiadający wybranej wartości w polu
- RADIOV
- Składnia: RADIOV(<str0> <str1> ... <strn>) lub RADIOV(<str0>=<int0> <str1>=<int1>
- Opis: Pole logiczne z wyświetlonymi wszystkimi możliwościami.Możliwości ułożone wzdłuż osi X. Obok możliwości wyświetlone opisy. Jeżeli kontrolka została zdefiniowana z podaniem wartości odpowiadających poszczególnym możliwym wyborom pola wartość odpowiadająca dokonanemu wyborowi zostanie zapisana do bazy (opcja 2). W przeciwnym przypadku wartości odpowiadające nadawane są od 0 do n (Opcja 1).
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: numer odpowiadający wybranej wartości w polu
- SDESC
- Składnia: SDESC <option>(<intW> <intH>)
- Opis: Pole wyświetlające string w kilku linijkach. Podane intW i intH to rozmiary w znakach standardowych. Samo zawija tekst starając się nie łamać wyrazów. Możemy jednak wymusić złamanie linii. W tym miejscu wstawiany znak \n. A na ekranie zaznaczany specjalnym czerwonym znakiem. Pole to przeznaczone jest do krótkich opisów - do kilkunastu tysięcy znaków, a wartość pamiętana jest jako string. Wartość w środku się scrolluje. więc nie trzeba podawać dużych rozmiarów. Opcjonalnie możemy podać opcje
- NE jeżeli nie pozwalamy na entery.
- SIMPLE układ prosty - bez scrollbar'a bez enterów i bez nagłówka
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: treść pola jako jeden string
- SKYPE
- Składnia: SKYPE
- Opis: Maska ta pozwala na wygodne dzwonienie wywoływane na poziomie pola. Pole wyposażone jest w dodatkowy przycisk, który po naciśnięciu wywołuje okno programu Skype i wykręca w nim bieżący, wpisany w nim łańcuch (numer lub login).
Przed wykręceniem numeru uruchamiany jest korektor numerów, sprawdzający poprawność wykręcanego numeru. Maska nie wpływa na wartość wpisywaną w polu.
- typ: STRING
- wartość: tekst (numer lub login)
- TEXT
- Składnia: TEXT(<intW> <intH>)
- Opis: Pole widziane jako okno textowe. Podane intW i intH to rozmiary w znakach standardowych.Zawartość okna to plik tekstowy którego nazwa zapamiętana jest w polu. Potrafi obsługiwać bardzo duże pliki (1GB) W tej chwili jeżeli chcemy móc zmieniać zawartość tego okna, to jedyną sensowną metodą zmiany zawartości pole jest poprzez columnę AUTFUN.
- Przykłady: TEXT(60 5)
- Wartości zapisywane do rekordu:
- typ: STRING
- wartość: nazwa wyświetlanego pliku
- TIME
- Składnia: TEXT( )
- Opis: Pole do edycji czasu. Format określamy następująco
- 'h' - cyfra z godziną
- 'm' - cyfra z minutą
- 's' - cyfra z sekundą
- 'i' - cyfra z milisekundą
Ponieważ sposób wprowadzania i wyświetlania godziny jest różny w różnych krajach, więc zachowanie pola związane jest z aktualnie wybranym językiem.
W przypadku języka angielskiego pole pozwala na wybór godzin 00:00-12:00, oraz pory dnia AM/PM. Podobnie są formatowane łancuchy w browserze i na wydrukach.
- Przykłady:
- "hh:mm" - godziny i minuty
- "hh:mm:ss.iii" - godziny, minuty, sekundy i milisekundy
- Wartości zapisywane do rekordu:
- typ: INT
- wartość: liczba milisekund od godziny północy.