Os três interfaces ACOUNTRY, ALANGUAGES, ACURRENCIES que permitem de aceder respectivamente às tabelas TABCOUNTRY, TABLAN, TABCUR são de tipo "Acesso dados".
Os preocedimentos de criação são idênticos
Apenas os nomes das tabelas e a lista dos campos selecionados são diferentes.
1. Criar a ficha interface
2. Selecionar a tabela
3. Registar
4. Gerar o acesso após ter registado os campos utilizados
5. Registar e validar
6. Gerar os campos com o menu Utilitários\Criação token campos
Tipo
Acesso tabela
Código tabela
TABCOUNTRY, TABLAN, TABCUR
Nome de publicação
AXTDHTML por defeito mas pode o modificar
Afixação das mensagens
Todas
Acesso protegido
Não
Gerar o acesso
Selecionar os campos e gerar os web services em clicando sobre OK
O botão "Gerar o acesso" efetua as operações seguintes:
Como para as interfaces, as entidades ACOUNTRY, ALANG, ACURRENCY são criar da mesma maneira.
Apenas o nome da interface e a lista dos campos são diferentes.
1. Criar a entidade de tipo "Acesso dados" baseados sobre interface.
A entidade é utilizada para gurdar os dados dos pedidos sobre a tabela.
2. Associar os campos
Se ajudar do menu Utilitários\Ajuda ao preenchimento
3. Registar o campo chave de entidade no quadro "Campos (seleção)"
4. Registar e validar
Para afixar a bandeira deve-se criar um token campo COUNTRYFLAG de tipo "Acesso imagem" e o parametrizar para que gera um URL de acesso ao ficheiro ".gif" que contem a imagem da bandeira.
O campo COUNTRYFLAG será inserido num tag <img>.
A parametrização do token consiste a :
No nosso caso os ficheiros bandeira são guardados de um dossier FLAGS do directório HTML e têm como nome o CODEPAYS.gif.
Validar o campo após criação.
O campo COUNTRYFLAG não faz parte de interface e deve ser calculado no momento da criação de entidade.
É suficiente acrescentar o campo COUNTRYFLAG na entidade ACOUNTRY e de o "mapear" com o campo CRY que contém o código país.
No momento do mapping, o servidor XTEND acrescentará um campoCOUNTRYFLAG à entidade e o valorizará com o código do país.
No momento da afixação, o campo será transformado em uma URL no atributo src do tag img que o apontará sobre o ficheiro CODEPAY.gif
<img height="25" width="40"
src="/xtend/data/remote/SOLSUPV6/SUPERV/X_TEND/X_HTML/ASAMPLE/FRA/FLAGS/ATF.gif"/>
Neste exemplo url aponta diretamente sobre o ficheiro do servidor X3.
Os tokens bloco são inseridos na página HTML É este que desencadeará o pedido versus X3 é a leitura e afixação dos dados
1. Criar um bloco
2. Acrescentar os critérios de seleções e de ordenação
3. Registar e validar
Para o nosso exemplo temos de criar um bloco "Multi-registos" ABLKCOUNTRIES que aponta sobre a entidade ACOUNTRY e que seleciona as fichas que têm ao menos um código CRY (CRY >=AA).
Na nossa base de teste certos códigos têm pelo menos de dois caracteres.
Para autorizar a ordenação sobre o código país nós temos parametrização uma ordenação ascendente sobre o código país CRY por defeito e autoriza a modificação da ordenação por uma ligação dinâmica.
São os campos tokens ligação dinâmica ADLKCOUNTRYSORTDW et ADLKCOUNTRYSORTUP que permitem a ordenação do quadro.
Tipo de ordenação
Champ
Ordenação alterável
Sim
Campo de ordenação
CRY
O bloco ABLKCOUNTRIES foi definido como bloco principal da página web ACOUNTRIES o que permite utilizar o alias AMAIN mais cedo que o nome do bloco para endereçar este bloco :
Os blocos ABLKLANG e ABLKCURRENCY são "Mono registo" e selecionam respectivamente as entidades ALANG e ACURRENCY em função do código língua (LAN) e do código divisa (CUR) da linha seleccionada no bloco principal AMAIN_ (bloco ABLKCOUNTRIES).
A ligação está efetuada via o token "ligação dinâmica" ADLKSELECT que seleciona a lingua de um bloco (ação web especial ABLKSELECT) e reafixa a mesma página.
Esta ação indica ao servidor XTEND que a linha que contém a ligação sobre o qual o utilizador clicou torna-se a linha selecionada.
Quando um bloco a uma linha selecionada, todos os tokens campos que fazem referência a este bloco MYBLOCK.MYFIELD tomam por valor do campo da linha selecionada.
No nosso caso, como os blocos língua (ABLKLANG) e divisa (ABLHCURRENCY) têm por seleção AMAIN.LAN e AMAIN.CUR (AMAIN está alias do bloco ABLKCOUNTRIES), estes blocos vão automaticamente afixar as informações sobre a língua e a divisa do país selecionada.
Para nosso exemplo nós temos escolhido afixar o resultado na mesma página e de gerir a afixação via um token "bloco condicionado"ADISPMAINSELECT que afixa ou esconde uma zona HTML segundo o bloco principal MAIN a uma linha seleccionada ou não.
Os tokens ADLKCOUNTRYSORTUP et ADLKCOUNTRYSORTDW permitem ordenar a lista dos países por código ascendente e descendente.
Página corrente
sim
Seguimento de atividade
Não porque não é necessário de rastrar este tipo de ação
Seleção sobre a entidade
ACOUNTRY : Entidade a selecionar (aquela do bloco dos países)
Aplicação seleção
"Substitui a seleção do bloco principal" : A ordenação/seleção colocadas pela ligação dinâmica com destino da página (mesma página no nosso caso) substituirão a ordenação/seleção do bloco principal AMAIN (Blocs ABLKCOUNTRIES no nosso caso)
Tipo de seleção
Nenhuma : porque não se deseja modificar os critérios de ordenação do bloco
Tipo de ordenação
Champ Campo CRY no nosso caso com ordem ascendente (ADLKCOUNTRYSORTUP) e descendente (ADLKCOUNTRYSORTDW )
Criar a página ACOUNTRIES (não protegida) que tem por bloco principal o bloco ABLKCOUNTRIES.
Inserção do token página web ACOUNTRIES no menu esquerdo para afixar a página.
<TD class="button"><A adx="ACOUNTRIES">Pays</A></TD>
Pour effectuer un lien simple (sans action ni sélection) vers une page web via un tag ancre il suffit d'insérer un token de type 'page web' dans le tag (<a adx="PageWeb"></a>) afin de limiter le nombre de tokens 'lien dynamiques'.
A afixação da lista dos países consiste a posicionar o bloco ABLKCOUNTRIES que efectua uma iteração sobre a lista dos países e permite de criar tantas linhas no quadro que de país na lista.
<table width="100%" border="1">
<tr class="tabTitle">
<th width="15%">
<a adx="ADLKCOUNTRYSORTUP">+</a>
<b>Code</b>
<a adx="ADLKCOUNTRYSORTDW">-</a>
</th>
<th width="20%"><b>Pays</b></th>
<th width="15%"><b>Continent</b></th>
<th width="15%"><b>Devise</b></th>
<th width="15%"><b>Langue</b></th>
<th width="20%"><b>Drapeau</b></th>
</tr>
<!adx="ABLKCOUNTRIES:xselect=false">
<tr adx="aLineStyle:xattr=Class">
<td><a adx="ADLKSELECT"><span adx="CRY"></span></a></td>
<td adx="CRYDES"></td>
<td adx="CONTINENT"></td>
<td adx="CUR"></td>
<td adx="LAN"></td>
<td><img adx="COUNTRYFLAG" height="25" width="40"></td>
</tr>
<!adx="ABLKCOUNTRIES">
</table>
O parâmetro xselect=falso do bloco ABLKCOUNTRIES indica de não selecionar a primeira linha por defeito afim de mascarar o detalhe tanto que o utilizador não foi selecionado uma linha.
<td>
<a adx="ADLKCOUNTRYSORTUP">+</a>
<b>Code</b>
<a adx="ADLKCOUNTRYSORTDW">-</a>
</td>
<img adx="COUNTRYFLAG" height="25" width="40">
<td><a adx="ADLKSELECT"><span adx="CRY"></span></a></td>
<tr adx="aLineStyle:xattr=Class">
Para afixar as linhas de um quadro com as cores alternadas coloca-se um token adx em o tag <tr>.
<tr adx="aLineStyle:xattr=Class">
aLineStyle contém o nome da classe e xAttr=Class indica que falta valorizar o atributo classe com o valor do campo aLineStyle.
As classes "css (aLineStyle)" que estão aplicados às linhas do quadro são definidos na ficha de parametrização do bloco.
O detalhe está afixado dede que uma linha está selecconada via um clique sobre o código país.
É o token "ligação condicionado" ADISPMAINSELECT que condiciona a afixação.
Os blocos ABLKCURRENCY e ABLKLANG desencadearão a leitura das entidades divisas e língua do país selecionado e permitem a afixação do detalhe.
<!adx="ADISPMAINSELECT">
<table>
<!adx="ABLKCURRENCY">
<tr>
<td><b>Devise</b></td>
<td adx="CUR" width="50"></td>
<td><b>Libellé</b></td>
<td adx="INTDES" width="150"></td>
<td><b>Symbole</b></td>
<td adx="CURSYM" width="50"></td>
</td>
</tr>
<!adx="ABLKCURRENCY">
<!adx="ABLKLANG">
<tr>
<td><b>Langue</b></td>
<td adx="LAN"></td>
<td><b>Libellé</b></td>
<td adx="INTDES"></td>
<td></td>
</tr>
<!adx="ABLKLANG">
</table>
<!adx="ADISPMAINSELECT">
<!adx="ABLKDOCHTML">
<div adx="TEXTE">
</div>
<!adx="ABLKDOCHTML">
Para gerar a paginação nós utilizamos a livraria pagination.lbi que contêm um código HTML genérico que pode estar utilizado para o bloco principal (AMAIN) de todas as páginas HTML.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--This library is used to perform pagination on AMAIN bloc-->
<table width="100%">
<tr>
<td align="left" width="20%">
<!--Hide FirstPage and Previous actions if current page is the first page-->
<!adx="aHideMainFirstPage">
<!---->
<a href="" adx="AMAIN.aDlkFirstPage">Première</a>
<a href="" adx="AMAIN.aDlkPrevPage">Précedente</a>
<!adx="aHideMainFirstPage">
</td>
<!--Displays page information-->
<td align="center" width="60%">
Page : <span adx="AMAIN.aPagePos"></span> -
Número de elementos : <span adx="AMAIN.aBlkNbElmts"></span>
</td>
<td align="right" width="20%">
<!--Hide LastPage and Next actions if current page is the last page-->
<!adx="aHideMainLastPage">
<a href="" adx="AMAIN.aDlkNextPage">Suivante</a>
<a href="" adx="AMAIN.aDlkLastPage">Dernière</a>
<!adx="aHideMainLastPage">
</td>
</tr>
</table>
Para chamar um método (ou um campo) de um bloco XTEND utiliza a sintaxe monBloc.monAction ou monBloc.monChamp.
<a href="" adx="AMAIN.aDlkFirstPage">Première</a>
<a href="" adx="AMAIN.aDlkPrevPage">Précedente</a>