Token bloku odczytuje i wyświetla obiekt powiązany z sekcją przez konfigurację:
1. Odczytuje obiekt(y) z bazy danych X3 poprzez odwołanie do interfejsu (usługi sieciowej) typu „Dostęp do danych”,
2. Iteracyjnie przechodzi pomiędzy zwróconymi obiektami w celu utworzenia wierszy tabeli.
Token bloku jest wstawiany na stronie HTML za pomocą poniższego kodu:
<table>
<!adx='MyBlock'>
<tr>
<td adx='aBLKELMTRANK'></td>
<td adx='ITEMREF'></td>
</tr>
<!adx='MyBlock'>
</table>
Silnik XTEND przetworzył bloki w następujący sposób:
Ten etap ma miejsce wyłącznie raz, podczas ładowania strony HTML:
Etap ma miejsce przy każdym wyświetleniu strony HTML:
1. Inicjalizacja bloku
2. Iteracyjne przechodzenie pomiędzy zwróconymi obiektami
W poprzednim przykładzie, jeżeli wybór obejmuje 3 artykuły o kodach PUZ001, PUZ002 oraz PUZ003, utworzona zostanie tabela o trzech wierszach:
1 | PUZ001 | |
2 | PUZ002 | |
3 | PUZ003 |
Generowany jest następujący kod HTML:
Struktura podrzędna HTML bloku tokena została powtórzona trzykrotnie i dokonano ponownego jej obliczenia względem kontekstu danych (bieżący wiersz).
<table>
<tr>
<td>1</td>
<td>PUZ001</td>
</tr>
<tr>
<td>2</td>
<td>PUZ002</td>
</tr>
<tr>
<td>3</td>
<td>PUZ003</td>
</tr>
</table>
Token bloku nie tylko przedstawia tabele danych, ale również umożliwia dynamiczną modyfikację kryteriów wyboru oraz sortowania.
Ustawienia bloku określają kryteria domyślne. Można zatwierdzić lub odrzucić zmiany tych kryteriów za pomocą łącza dynamicznego.
Token łącza dynamicznego może modyfikować kryteria bloku. Możliwe jest również określenie ustawień wyboru i sortowania dla tego tokenu.
Wyłącznie kryteria wyboru i sortowania lub główny blok strony (alias AMAIN) mogą być modyfikowane przez kryteria łącza dynamicznego.
Istnieje możliwość określenia wielu bloków na stronie, jednak wyłącznie kryteria wyboru i sortowania jednego z nich (bloku głównego) mogą być modyfikowane przez użytkownika.
Modyfikacji kryteriów bloku przez łącze dynamiczne można dokonać na trzy sposoby:
Te trzy opcje obsługują większość zdarzeń mających miejsce na stronach.
Token bloku służy do konfiguracji kryteriów wyboru oraz sortowania odnoszących się do bloku.
Są to domyślne kryteria stosowane przy pierwszym wyświetleniu strony zawierającej blok.
Token bloku proponuje dwie konfiguracje – „Wybór umożliwiający modyfikację” oraz „Wybór umożliwiający sortowanie”, określające czy kryteria wyboru i/lub sortowania mogą być modyfikowane przez łącza dynamiczne.
Te konfiguracje są stosowane wyłącznie, jeżeli blok został określony jako blok główny w rekordzie strony, na której jest wyświetlany.
Przy wyświetlaniu bloku o wielu komórkach według wiersza, do oddzielenia komórek wykorzystywany jest token ASTAMP .
Serwer XTEND powtarza kod HTML zawarty pomiędzy dwoma tagami ASTAMP tyle razy, ile jest komórek w wierszu.
<table>
<!-Iteracja wierszy bloku-->
<!adx='MYBLOCK'>
<tr>
<!-Kod powtarzany tyle razy, ile jest komórek w wierszu-->
<!adx='ASTAMP'>
<!--zróżnicowanie kolorów komórek-->
<td adx='ALINESTYLE:xattr=Class'>
<!--kod HTML komórki-->
<b>Nazwa</b><p adx='NAME'></p>
<b>Imię</b><p adx='FIRSTNAME'></p>
</td>
<!adx='ASTAMP'>
</tr>
<!adx='MYBLOCK'>
</table>
Przykład poniżej pokazuje jak wypełniać puste komórki, jeżeli liczba rekordów nie jest wielokrotnością liczby komórek w wierszu.
Blok warunkowyADISPSTAMPEMPTY określa kod HTML pustych komórek.
<table>
<!-Iteracja wierszy bloku-->
<!adx='MYBLOCK'>
<tr>
<!adx='ASTAMP'>
<td adx='ALINESTYLE:xattr=Class'>
<!adx='ADISPSTAMPEMPTY'>
<!--Puste komórki wypełniane pustą wartością-->
<!adx='ADISPSTAMPEMPTY'>
<!adx='ADISPSTAMPEMPTY:xnot'>
<!--Kod HTML pustej komórki-->
<b>Nom</b><p adx='NAME'></p>
<b>Prénom</b><p adx='FIRSTNAME'></p>
<!adx='ADISPSTAMPEMPTY'>
</td>
<!adx='ASTAMP'>
</tr>
<!adx='MYBLOCK'>
</table>
Czynności ABLKFIRSTPAGE, ABLKNEXTPAGE, ABLKPREVPAGE, ABLKLASTPAGE służą do zarządzania numerowaniem stron w blokach.
Tokeny ADLKFIRSTPAGE, ADLKNEXTPAGE, ADLKPREVPAGE, ADLKLASTPAGE mogą zostać wykorzystane w głównym bloku strony.
Pola aBLKNBELMTS i APAGEPOS przedstawiają łączną liczbę rekordów oraz numer strony względem łącznej liczby stron.
Bloki warunkowe AHIDEMAINFIRSTPAGE oraz AHIDEMAINLASTPAGE są odpowiedzialne za wyświetlanie/ukrywanie przycisków dotyczących numerowania stron na pierwszej i ostatniej stronie.
Kod
MonBloc.ADLK*
Na przykład:
Numerowanie stron i tryb wyświetlania na początku i na końcu numerowania stron.
<table width="'100%'><BR/"> <tr>
<td align='left' width="'20%'><BR/"> <!--Ukryj FirstPage oraz Previous jeżeli strona bieżąca jest pierwszą stroną-->
<!adx='aHideMainFirstPage'>
<!---->
<a href='' adx='AMAIN.aDlkFirstPage'>First</a>
<a href='' adx='AMAIN.aDlkPrevPage'>Previous</a>
<!adx='aHideMainFirstPage'>
</td>
<!--Wyświetlanie informacji o stronie-->
<td align='center' width="'60%'><BR/"> Strona: <span adx='AMAIN.aPagePos'></span> -
Liczba elementów: <span adx='AMAIN.aBlkNbElmts'></span>
</td>
<td align='right' width="'20%'>"
<!--Ukryj LastPage i Next jeżeli bieżąca strona jest ostatnią-->
<!adx='aHideMainLastPage'>
<a href='' adx='AMAIN.aDlkNextPage'>Next</a>
<a href='' adx='AMAIN.aDlkLastPage'>Dernière</a>
<!adx='aHideMainLastPage'>
</td>
</tr>
</table>
Dynamiczne łącza ADLKSELECT i ADLKUNSELECT (czynności ABLKSELECT i ABLKUNSELECT) służą do zaznaczania/odznaczania wiersza bloku.
Wykorzystanie
Wstaw ADLKSELECT oraz ADLKUNSELECT w jednej z komórek wiersza, w tagu <a> lub w tagu <input type='button'>.
Pole ABLKSELECTEDLINE przechowuje klasyfikację (1 do N) wybranego wiersza.
Na przykład:
Blok ABLKCOUNTRIES wyświetla kraje witryny ASAMPLE z wyborem wiersza do wyświetlenia szczegółów Waluty/Języka.
Kliknięcie na pierwszą komórkę (CRY) powoduje zaznaczenie wiersza.
<!adx='ABLKCOUNTRIES:xselect=false'>
<tr>
<td><a adx='ADLKSELECT'><span adx='CRY'></span></a></td>
<td adx='CRYDES'></td>
<td adx='CUR'></td>
<td adx='LAN'></td>
</tr>
<!adx='ABLKCOUNTRIES'>
<!--Wyświetla liczbę zaznaczonych wierszy-->
<span adx='ABLKCOUNTRIES.ABLKSELECTEDLINE'></span>
Opcja HTML xSelect=true powoduje domyślny wybór pierwszego wiersza.
Jeżeli opcja nie zostanie zastosowana lub jeżeli jej wartość to „false”, w bloku nie będzie wybierany domyślnie żaden wiersz.
Jeżeli w bloku zaznaczono wiersz, możliwe będzie odwołanie się do tego wiersza przez MyBlock.MyField.
Wartości pól wybranego wiersza mogą być wyświetlane lub wykorzystywane jako kryteria bloku, łącza dynamicznego lub bloku warunkowego.
Blok warunkowy AHIDEMAINSELECT wyświetla/ukrywa obszar HTML w zależności od tego, czy w bloku głównym zaznaczono wiersz, czy nie (patrz: strona kraju witryny ASAMPLE).
Czynność ABLKRESTOREMAINCTX umożliwia powrót do strony listy ze strony szczegółów bez utraty numeru strony oraz wybranego wiersza z bloku głównego.
Dynamiczne łącze poniżej umożliwia powrót do strony FORMQUERYRES i przywrócenie kontekstu bloku głównego.
<input type='button' value='Return list' adx='DlkFrmQueryBack' class='xtendButton' >
Poniższy kod umożliwia bezpośredni dostęp do danych wierszy bloku:
<!--Pierwszy wiersz-->
<span adx='MYBLOCK(first).MYFIELD'></span>]<br>
<!--Ostatni wiersz-->
<span adx='MYBLOCK(last).MYFIELD'></span>]<br>
<!--Wiersz N-->
<span adx='MYBLOCK(N).MYFIELD'></span>]<br>
Poniższy kod w formacie JSON bloku lub wiersza bloku określa wartość zmiennej JavaScript:
<script>
// blok w JSON
var wMyBlock_JSON=<!adx='MYBLOCK(*)'><!adx='MYBLOCK(*)'>;
var wMyBlock_JSON=<!adx='MYBLOCK(*)'><!adx='MYBLOCK(*):xinclude=FIELD1,FIELD2'>;
var wMyBlock_JSON=<!adx='MYBLOCK(*)'><!adx='MYBLOCK(*):xexclude=FIELD1,FIELD2'>;
// wiersz w JSON
var wMyLine_JSON=<!adx='MYBLOCK(2)'><!adx='MYBLOCK(2)'>;
var wMyLine_JSON=<!adx='MYBLOCK(2):xinclude=FIELD1,FIELD2'><!adx='MYBLOCK(2)'>;
var wMyLine_JSON=<!adx='MYBLOCK(2):xexclude=FIELD1,FIELD2'><!adx='MYBLOCK(2)'>;
</script>
Zmienna bloku w JSON jest tablicą wierszy:
<script>
var wMyBlock = [{line 1},{line 2},...];
var wMyBlock = [{'STATUT':1,'STATUT_DESCR':'To process','PRIX':81.35,'COD2':'30-112'},
{'STATUT':2,'STATUT_DESCR':'Processed','PRIX':117.9,'COD2':'31-02'},
{'STATUT':1,'STATUT_DESCR':'To process','PRIX':606.15,'COD2':'32-034'}];
</script>
Zmienna JSON wiersza jest obiektem o polach:
<script>
var wMyLine ={'FIELD1':'Value1','FIELD2':'Value2'...};
var wMyLine = {'STATUS':1,'STATUS_DESCR':'To process','PRICE':606.15,'COD2':'32-034'}
</script>
W przypadku pola, skonfigurowanie xjson powoduje wygenerowanie obiektu JSON {'FieldName:'Value'}. Bez konfiguracji xjson, wartość zmiennej JavaScript jest wartością pola.
<script>
// Dane pola w JSON
var wMyField_JSON=<!adx='MYFIELD:xjson'><!adx='MYFIELD'>;
//XTEND generuje
var wMyField_JSON={'MYFIELD':'Value'};
// Wartość pola
var wMyField_JSON=<!adx='MYFIELD'><!adx='MYFIELD'>;
//XTEND generuje
var wMyField_JSON='Value';
</script>
Kod | Konfiguracja | Skutek |
xselect | Prawda/Fałsz | Domyślnie wybierz pierwszy wiersz |
Kod | Typ | Opis |
ABLKELMTIDX | Liczba całkowita | Indeks elementu w bloku (O->ABLKNBELMTS-1) |
ABLKELMTRANK | Liczba całkowita | Klasyfikacja elementu w bloku (1->ABLKNBELMTS) |
ABLKLINEIDX | Liczba całkowita | Indeks wiersza w bloku (O->ABLKNBELMTS-1) |
ABLKLINERANK | Liczba całkowita | Klasyfikacja wiersza w bloku (O->ABLKNBLINES) |
ABLKNBELMTS | Liczba całkowita | Łączna liczba elementów (rekordów) zapytania dotyczącego bloku |
ABLKNBLINES | Liczba całkowita | Klasyfikacja wybranego wiersza bloku przez ABLKSELECT |
ABLKSELECTEDLINE | Liczba całkowita | Liczba pozycji w bloku |
APAGENB | Liczba całkowita | Liczba stron w bloku |
APAGENUM | Liczba całkowita | Klasyfikacja bieżącej strony bloku |
APAGEPOS | Liczba całkowita | APAGEPOS/APAGENUM |
Kod | Opis |
ACONST | Zawiera wszystkie pola zawierające wartości stałe |
ACURRENT | Bieżący kontekst danych (najwyższego poziomu) w stosie danych XDEND |
AHTMLFORM | Formularz HTML |
AHTTPCOOKIE | ciasteczka HTTP |
AMAIN | Główny blok strony, zdefiniowany w parametrach strony |
APBG | Blok tła strony, zdefiniowany w parametrach strony |
AMESS | Komunikaty użytkownika |
AREFERENCE | W wyrażeniu MyReferenceBlock.MyLinkToken, blok MyReferenceBlock odpowiada „blokowi odniesienia”. |
ASESSION | Przechowuje dane sesji użytkownika |
AUSERCRIT | Przechowuje kryteria użytkownika (ustawienia HTML xcrit) |
AUSERINF | Przechowuje dane użytkownika z logowania |
AUSERVAR | Przechowuje zmienne użytkownika utworzone przez funkcje JavaSCript xtdSetUserVar/xtdRemoveUserVar |
Pola
Na tej karcie występują następujące pola :
| Kod tokenu bloku. |
| Bieżąca strona internetowa |
|   |
Zamknij
Prezentacja
Parametry ogólne bloku.
Zamknij
Pola
Na tej karcie występują następujące pola :
Cechy
|
|
|
|
| Określa jednostki, które zostaną utworzone na podstawie wyników żądania. |
| Interfejs typu „Dostęp do danych”, który zostanie wywołany. |
| Interfejs typu „Dostęp do danych”, który zostanie wywołany. |
Zamknij
Prezentacja
Parametry wyboru związanego z blokiem.
Zamknij
Pola
Na tej karcie występują następujące pola :
Cechy
| Brak: są zaznaczane wszystkie rekordy. Zapytanie: są stosowane kryteria wyboru sekcji. Ostatnio używane łącze: są stosowane kryteria wyboru dynamicznego łącza, które kliknięto w celu przejścia do strony zawierającej sekcję. |
| Nie: zapytanie SQL powiązane z sekcją nie może być modyfikowane przy użyciu zapytania powiązanego z łączem dynamicznym. Tak: zapytanie nie może być modyfikowane przy użyciu zapytania powiązanego z łączem dynamicznym.
|
| Wybór optymalizacji dokonywany przez interfejs. Brak: Brak optymalizacji Brak pliku graficznego: interfejs nie zwraca pola typu 'plik graficzny' Brak pliku tekstowego: interfejs nie zwraca pola typu 'plik tekstowy' Brak pliku graficznego i pliku tekstowego: interfejs nie zwraca pól typu 'plik graficzny' lub 'plik tekstowy' |
Synteza wyboru
| Wykonywanie zapytania na sekcji w formacie tekstowym |
Tabela Kryteria wyboru
| Operator sekwencjonowania operacji logicznych. |
| Nawiasy otwierające. |
| Pole podmiotu, którego wartości stanowią pierwszy operand operacji. |
| Operator porównania |
|
|
| W tym polu należy wprowadzić wartość parametru. Zależnie od sytuacji przy wpisywaniu należy ją traktować jako liczbę, datę lub kod alfanumeryczny. Jeśli parametr ma charakter lokalnego menu, można wpisać początek nazwy albo wartość liczbową odpowiadającą pozycji nazwy na liście. Gdy kod jest kontrolowany przez tabelę w załączniku, do jego wskazywania może służyć przycisk wyboru. |
| Kod bloku dla unikatowego 'pola tokenu'. |
|   |
| Kod pola dla unikatowego 'pola tokenu'. |
| Nawiasy zamykające. |
|
|
|   |
Jednostka
| Określa jakie podmioty zostaną utworzone w wyniku zapytania. |
| Interfejs typu 'Dostęp do danych' który zostanie wywołany. |
| Wywołany zostanie interfejs typu 'Dostęp do danych'. |
Zamknij
Pola
Na tej karcie występują następujące pola :
Cechy
| Wybierz typ sortowania:
|
|
|
Tabela Sortowanie
| Nazwa pola dla wygenerowania 'Pola Tokenu'. |
| Określa porządek sortowania — rosnąco lub malejąco. |
Zamknij
Pola
Na tej karcie występują następujące pola :
Data zwrócona przez blok
| Określa, jakie dane muszą być wyświetlane w miejscu istnienia bloku na stronie HTML, jeśli nie zostanie wybrana żadna opcja:
|
Tabela Style na pozycję
|
Tabela Dostęp do parametrów procedury
| Kod ustawienia podprogramu. |
|
|
|
|
| Kod bloku dla unikatowego 'pola tokenu'. |
|   |
| Kod pola dla unikatowego 'pola tokenu'. |
Zamknij