Desenvolvimento > Safe X3 WAS > Parametrização > Lista de valores 

SEEWARNING Antes de criar o seu estabelecimento, é preferível ler a documentação :Antes de começar.


Esta função permite gerir um conjunto de listas de valores, dedicados a uma aplicação XTEND, em complemento dos menus locais.

Uma lista de valores XTEND está assocciado a "Token" campo e funciona como um menu local.

Cada elemento da lista contém :

  • um valor,
  • um literal.

Como para os menus locais, o valor está acessível via o nome do "Token" campo e o literal em acrescentando o sufixo. _DESCR ao nome do campo

Contrariamente aos menus locais uma lista de valor sabe gerir os dados hierárquicos (arborescência de categorias).

O separador das categorias é o caracter. /.

As listas de valores podem ser criados :

  • manualmente,
  • a partir de "mensages X3",
  • a partir de "tabelas diversas",
  • a partir de tratamento batch.

As listas de valores são salvaguardadas no ficheiro MEN.xml do directório que contém o dicionário do "site" XTEND (X_TEND/X_GEN/SITE/MEN.xml) excepto as listas criadas pelo tratamento batch que são guardados nos directórios bem identificados.

Tomado em mão

Parametrização

A parametrização depende do modo de gestão da lista.

Valide a ficha após ter registado para que ela possa estar em conta pelo servidor XTEND.

Force o recarregamento do dicionário se os parâmetros "Verificação das actualizações" do estabelecimento não estão activos.

SEEREFERTTO Ver a ficha Estabelecimeto web.

Gestão manual

A lista foi criada/modificada no bloco gráfico (DHTML) em baixo de ecrã.

Criação a partir de nada

Cria-se o primeiro valor :

  • clique direito sobre o ícone cinzento no bloco gráfico,
  • depois o acréscimo os valores em acrescentando "filhos" ao valor criado.

A supressão e modificação se faz por clique direito sobre o valor.

Criação a partir de uma lista existente

Você pode também construir uma lista de valores a partir de uma lista existente criado a partir de uma mensagem X3, de uma tabela diversa ou de uma lista batch que se deseja modificar o conteúdo.

Neste caso:

  • crie ou duplique a lista dos valores de origem (baseados sobre uma mensagem X3, uma tabela diversa...),
  • e modifique o parâmetro Gestão para o passar em Manual.

Você pode em seguida modificar o conteúdo como indicado anteriormente.

A lista manual não está sincronizada com a lista de origem.

SEEINFO A referência à lista origem (menu, tabela diversas...) está perdida após ter passado o parâmetro gestão a Manual.

Acréscimo de valores

Quando se acresce um valor, a janela seginte é afixada.
O objectivo desta janela é de registar o valor e o literal da entrada.

Selecção do literal

  • O literal não pode ser registado : Provém sempre de uma mensagem X3 ou de uma tabela diversa para permitir as traduções.
  • Os parâmetros a seguir permitem registar a origem do literal :
    • Origem (método de leitura do literal),
    • Capítulo - Número : preencha o capítulo e o número,
    • Tabela diversa - Número : preencha o código da tabela e de código da entrada

O tratamento de geração do ficheiro MEN.xml gera tantos literais que de línguuas que foram definidas para o estabelecimento.

Registo do valor

Valor : por defeito este campo contém o índice do menu local ou o código de entrada da tabela diversa utilizado pelo literal. É geralmente modificado para associar os códigos específicos quando se cria uma nova lista de valores.

Caso das categorias hierarquicas.

O "campo ligado" está vazio por defeito. Contém o campo daentidade que corresponde ao nível de categoria ao qual está anexado o valor apenas somente se está diferente daquele definido por defeito no quadro "Campo por defeito (entidade)"

SEEREFERTTO Ver o parágrafo sobre as categorias hierárquicas.

Gestão automática

  • Crie uma lista de valores a partir de uma mensagem X3 ou de uma tabela diversa.
  • Você não pode modificar o conteúdo da lista.
  • Se modificou a mensagem ou a tabela diversa, valide de novo a lista de valores para tomar em conta as modificações porque os dados são recopiados no ficheiro dicionário MEN.xml.

Tipo
Origem da lista Mensagem ou Tabela diversa

Tipo mensagem

Capítulo
Nº do capítulo

Tipo Tabela diversa

Tabela diversa:
Código da tabela diversa

Literal curto
Sim/Não

Lista hierárquica

Dependência
Não para gerar uma lista simples.
Sim para gerar uma lista hierárquica a partir das dependências entre tabelas diversas.

O encadeamento das dependências entre tabelas diversas é de tipo "filho versus pai" quer dizer que o parâmetro "Tabela dependência" da ficha "tabelas diversas" contém o código da tabela pai.

Para gerar uma lista valor hierárquico a partir de uma tabela diversa falta partir da tabela pai.

Nível.
Define a profundidade da arborescência quer dizer o número de níveis de categorias autorizadas pela lista de valores.

Gestão batch

A lista foi criada a partir de um tratamento batch.
O formato do ficheiro criado por batch deve ser idêntico ao formato do ficheiro dicionário MEN.xml.

Directório raíz
Directório raíz XTEND que contém os ficheiros batch

Nós temos definido quatro directórios raíz para guardar os ficheiros XTEND.
Os recursos (ficheiros, imagens...) destes directórios sao acessíveis pelo navegador via os "tokens" "imagem" ou "documentos juntos".

  • Design HTML : Directório do projecto HTML que tem em conta da língua utilizador
  • X_FILES : Directório que está próprio ao dossier X3 e que está localizado sob X3_PUB/X3FOLDER/X_TEND/X_FILES
  • X_FILEAPP : Directório que é próprio ao dossier X3 e que estão localizados sob X3_PUB/X3FOLDER/X_TEND/X_FILAPP
    É utilizado para guardar os ficheiros emitidos de tratamentos batch como relatórios gerados pelo servidor de impressão.
  • X_TEND : Directório utilizado para guardar os ficheiros comuns a todos os dossiers.
    Por exemplo imagens produzidas, documentos comerciais...
    Está localizado sob :X3_PUB/X_TEND/

Design HTML e X_FILES podem ser localizados sobre o servidor X3 (defeito) ou sobre o servidor de "web services".

X_FILEAPP e X_TEND estão sempre localizados sobre o servidor X3.

Ficheiro
Caminho de acesso do ficheiro batch por relação ao directório raíz.

Verificar a actualização
"Sim" para activar a verificação períódica (todos os minutos) da data de última modificação do ficheiro batch.

Os ficheiros batch são recarregados quando se recarrega o dicionário XTEND.

Gestão das categorias hierarquicas.

Como nós o temos visto precedentemene registar as listas de valores hierárquicos que são representadas sob a forma de uma estrutura arborescente.
Nós vamos ver agora como explorar este estrutura de dados sob a forma de "tokens" nas páginas HTML para gerar os menus de categorias hierárquicas.

Um menu de categorias hierárquicas está constituido de várias ListBoxes afixados via um tag <select> cujos conteúdos são inter-dependentes.

Nós tomamos como exemplo as categorias seguintes utilizadas para efectuar as selecções num catálogo de viaturas:

Nível 1: Coonstrutor
Nível 2: Modelo
Nível 3: Type Break ou Berline
Nível 4: Energia Diesel ou Essência

Os campos de entidade viatura que contém os códigos das categorias dos níveis 1,2,3,4 são respectivamente CAT1,CAT2,CAT3 e CAT4.

Lista dos valores

A primeira etapa consiste em criar a lista de valores que contêm a arborescência das categorias :

Campo por defeito (Entidade) : lista os "tokens campos" que contêm as informações sobre a categoria.
As entidades XTEND que suportam este sistema de categoria deverão obrigatoriamente comportar os campos definidos no quadro "Campo por defeito".

No nosso exemplo nós registamos na ordem CAT1,CAT2,CAT3,CAT4 (Ver parágrafo seguinte).

Registo das categorias: em cada categoria associamos um literal e um código categoria.

N1 - Valor=REU - Literal=Renault
N2 - Valor=CLI - Literal=Clio
  N3 - Valor=BRK - Literal=Break
 N4 - Valor=DI - Literal=Diesel
 N4 - Valor=ES - Literal=Essência
N2 - Valor=MEG - Literal=Megane
...

O nível (1, 2, 3,4) da categoria corresponde à fila (1-N) no quadro "Campo por defeito" e permite de aceder ao nome do campo que leva o valor.

Entidade XTEND

Os entidades XTEND (emitidos de dados X3) que suportam as categorias hierárquicas devem comportar os campos que contêm as informações sobre a categoria.

A entidade deve comportar tantos campos categoria que de nível de categorias (um campo por nível de categoria).

No nosso exemplo a entidade AUTO deve comportar quatro campos CAT1, CAT2, CAT3, CAT4 para guardar as categorias.

Os campos categoria estão associados à lista de valores AUTOS que contêm a arborescência das categorias.

Estes campos devem estar definidos no parâmetro quadro "Campo por defeito (Entidade) da lista de valores.

No nosso exemplo o quadro contém CAT1, CAT2, CAT3, CAT4.

Nós temos definido assim uam ligação entre a estrutura arborescência e a entidade XTEND via os campos categoria.

Selecção :

Para exprimir uma categoria hierarquica nós utilizamos uma sintaxe de tipo caminho com o caracter "/" como separador.

Por exemplo : /REU/CLI/BER, /PEU, /PEU/107.

Para guardar a categoria hierarquica ao formato caminho nós utilizamos um campo (de trabalho).

Este campo de tipo texto está definido no dicionário e lhe associamos a lista de valor.

O valor deste campo está construido por uma função JavaScript em função dos critérios seleccioandos pelo utilizador depois enviado ao servidor XTEND via um campo do formulário HTML.

No nosso exemplo este campo tem por nome CATPATH.

Definição de critérios de selecção

Para efectuar a selecção sobre a entidade falta criar um token ligado dinâmico e acrescentar os critérios de selecção.

Cria-se um critério por campo categoria e compara-se o valor com aquele do campo que contém o "caminho" da categoria.

Fórmula do "token" ligado ao dinâmico :
CAT1 =web:CATPATH Et CAT2 =web:CATPATH Et CAT3 =web:CATPATH Et CAT4 =web:CATPATH

Para calcular o valor do critério motor XTEND faz a relação entre o nível do campo categoria (CAT1,CAT2...) e a posição do valor no "caminho" da categoria.

Exemplo para a categoria /REU/CLI/BER :

No momento da valorização dos critérios de selecção o motor XTEBD efectua o tratamento seguinte :

1. Leitura do valor do campo web CATPATH,
Este campo contém o caminho /REU/CLI/BER

2. Para cada critério :

    • Cálculo do nível do campo categoria (CAT1,CAT2...) na arborescência
      O nível está dado pela fila no quadro "Campo por defeito (Entidade)" : da lista de valor
    • Extracção do valor do "path" em função do nível
      CAT1=REU - CAT2=CLI - CAT3=BER

Tudo se passa como se o campo CATPATH contém um quadro ordenado de categorias.

Página HTML

Este parágrafo descreve como colocar em obra na página HTML :

  • O preenchimento automático dos "tags" HTML <select> que contém os valores dos critérios de selecção,
  • o cálculo e a actualização do campo que vai conter o path da categoria seleccionada (CATPATH).

Os "tokens" XTEND permitem tratar estas duas operações com um mínimo de código JavaScript a desenvolver.

Afixação dos critérios de selecção

A seguir criamos quatro caixas de selecção correspondendo às quatro categorias utilizadas para seleccionar as viaturas.

HTML

<tabela>
    <tr>
<td>
 <select name="CATPATH1" adx="CATPATH:xlevel=1&xonchange=DLKSELECTAUTOS">
 <option value="">Indiff&eacute;rent</option>
 </select>
</td>
<td>
 <select name="CATPATH1" adx="CATPATH:xlevel=1&xonchange=DLKSELECTAUTOS">
 <option value="">Indiff&eacute;rent</option>
 </select>
</td>
<td>
 <select name="CATPATH3" adx="CATPATH:xlevel=3&xonchange=DLKSELECTAUTOS">
 <option value="">Indiff&eacute;rent</option>
 </select>
</td>
<td>
 <select name="CATPATH4" adx="CATPATH:xlevel=4&xonchange=DLKSELECTAUTOS">
 <option value="">Indiff&eacute;rent</option>
 </select>
</td>
</tabela>
               

Campo CATPATH : contém o "path" da categoria corrente (Ex : REU/CLI para Renault/Clio)

'adx="CATPATH:xlevel=N' : esta sintaxe indica ao motor XTEND que falta preencher a lista das opções com os valores da categoria correspondendo ao nível N de CATPATH :

  • Se CATPATH=REU/CLI e xlevel=1
    Afixa a lista dos construtores (nível 1 da hierarquia das categorias).
  • Se CATPATH=REU/CLI e xlevel=2
    Afixa a lista dos modelos (nível 2 da hierarquia das categorias) para o construtor REU (Renault)

À primeira afixação da página CATPATH está vazia e é a opção "indiferente" que está afixado (valor="").

"xonchange=DLKSELECTAUTOS" : executa a ligação dinâmica DLKSELECTAUTOS desde que o valor do campo está modificado.

Este parâmetro evita de acrescentar um botão <input type='button' adx="DLKSELECTAUTOS" value="Seleccionar"> sobre o qual o utilizador deve clicar após ter modificado o critério.

Cálculo do "path" CATPATH

As funções JavaScript a seguir permitem de calcular o "path" da categoria seleccionada :

//-------------------------------------
//aObj é o objecto DOM (select) que foi modificada
//--> nova selecção
//Calcula o nível (wMaxLevel) da categoria em função do nome de aObj
//--> CATPATH1 dá o nível 1 - CATPATH2 dá o nivel 2 ...
//Cálcula o "path" da categoria do nível a 1 em wMaxLevel
//Reset dos campos de nível superior a wMaxLevel
//Reenvia o "path"
função getCatCar(aObj)
{
 var wCatPrefix="CATPATH";
 var wCat="";
 if (!aObj || !aObj.name) return wCat;
 var wMaxLevel=parseInt(aObj.name.slice(wCatPrefix.length),10);
 for( var i=0;i<wMaxLevel;i++)
 {
   var wVal=xtdGetFieldVal(wCatPrefix+(i+1));
   if (wVal!="")
   {      
     if (i>0) wCat+='/';
     wCat+=wVal;
   }
 }
 // Reset do campos
 for( var i=wMaxLevel;i<4;i++)
   xtdSetField (wCatPrefix+(i+1),"");
 return wCat;
}
//-------------------------------------
//xtdDoMyDlk é chmado quando o utilizador clica sobre uma ligação dinâmica
função xtdDoMyDlk(aDomOut)
{
   var wContinue=true;
   //DLKSELECTAUTOS --> Modificação de um critério de selecção
   if (aDomOut.isClickedDynLink("DLKSELECTAUTOS"))
   {                      
     //Cálculo do "path" da categoria 
     var wCat=getCatCar(aDomOut.getDynLinkCtx().getHtmlElement());
     //Actualização do campo CATPATH que é transmitido ao motor XTEND
     //--> Ver os critérios de selecção da ligação DLKSELECTAUTOS
     xtdSetField("CATPATH",wCat);   
   }
   return wContinue;
}

Desde que o utilizador modifica uma categoria a ligação DLKSELECTAUTOS está executada

A função "xtdDoMyDlk" permite efectuar os tratamentos específicos antes de submeter o formulario ao servidor XTEND.

Esta função :

  • cálcula o novo "path" da categoria (getCatCar()),
  • valoriza o campo CATPATH que está transmitido ao servidor.

Em retorno, o servidor terá efectuado a nova selecção e calculado os novos valores dos critérios de selecção.

Reinício da selecção

A funçãoa seguir reinicializa os critérios de selecção foi recalculado a página.

<script>
função selAllCars(aObj)
{
 xtdSelectSetVal("CATPATH1","");
 xtdSelectSetVal("CATPATH2","");
 xtdSelectSetVal("CATPATH3","");
 xtdSelectSetVal("CATPATH4","");
 xtdDoDlk(aObj,"DLKSELECTAUTOS");
}
</script>

<input type="button" value="Reset" onClick='javascript:selAllCars(this);'>

Pré-requisitos

SEEREFERTTO Consulte a docuemntação de Implementação

Gestão do ecrã

Ecrã de registo

Campos

Os seguintes campos estão presentes neste separador :

Bloco número 5

Bloco número 1

Código da lista de valores

  • Estab. (campo FCYLIB)

Estabelecimento Web corrente.

  • Descr. (campo INTIT)

Permet de définir un intitulé associé à chaque fiche.

  • Gestão (campo GESOPT)

Les listes de valeurs peuvent être créées :

  • Manuellement  (Manuel)
  • Automatiquements (Automatique)
    • à partir de 'messages X3'
    • à partir de 'tables diverses'
  • A partir de traitement batch (Batch)

Gestão automática

  • Tipo (campo GESORI)

Método de leitura do literal :

Mensagem : deve preencher o capítulo e o número.

Tabela diversa : deve-se preencher o código da tabela diversa mais os campos suplementares.

  • Capítulo (campo GESCHP)

N° du chapitre

  • campo WCHPDES

 

Code de la table diverse

  • Descr. curta (campo GESADISHO)

Assinale para afixar o literal curto.

  • Dependência (campo DEPFLG)

Não  para gerar uma lista simples
Sim para gerar uma lista hierarquica a partir das dependências entre tabelas diversas.

O encadeamento das dependências entre tabelas diversas é de tipo "filhos versus o pai" quer dizer que o parãmetro "Tabela dependência" da ficha "tabelas diversas" contém o código da tabela pai.

Para gerar uma lista valor hierarquico a partir de uma tabela diversa falta partir da tabela pai.

  • Nível (campo DEPNIV)

Définit la profondeur de l'arborescence c'est à dire le nombre de niveaux de catégories autorisés pour la liste de valeurs.

Gestão batch

  • Directório raíz (campo RESRAC)

Répertoire racine qui contient les fichiers batch à choisir parmi les répertoires standards de XTEND (Voir documentation de la fonction).

  • Ficheiro (campo RESSUBFIC)

Chemin d'accès du fichier batch par rapport au répertoire racine

  • Verificar actualização (campo RESTIMSTP)

Oui pour activer la vérification périodique (toutes les minutes) de la date de dernière modification du fichier batch.

Les fichiers batch sont rechargés lorsqu'on recharge le dictionnaire XTEND

Quadro Campos p/defeito (entid.)

Lista dos "tokens campos" que contêm as informações sobre a categoria.
As entidades XTEND que suportam este sistema de categoria deverão obrigatoriamente comportar os campos definidos no quadro "Campo or defeito"

A ordem de registo corresponde ao nível de categoria

Por exemplo para as categorias de viaturas com os níveis de categorias seguintes :

N1 - Construtor (Campo CAT1)
N2 - Modelo  (Campo CAT2)
N3 - Type Break ou Berline (Champ CAT3)
N4 - Energia Diesel ou Essência (Campo CAT4)

Registam-se os campos seguintes no quadro :

CAT1
CAT2
CAT3
CAT4

Quadro Gráfico quadro

  • Código par. (campo LNPAR10)

 

  • Cód. (campo LNCOD10)

 

  • Origem (campo LNLIBORI10)

Méthode de lecture du libellé
Message : on doit renseigner le chapitre et le numéro
Table diverse : on doit renseigner le code de la table et de code de l'entrée

  • Capítulo (campo LNCHP10)

Coordonnées du libellé (Code chapitre)

  • Número (campo LNCHPNUM10)

Coordonnées du libellé (N°)

Coordonnées du libellé.

Code de la table diverse.

Coordonnées du libellé

  • Descr. curta (campo LNADISHO10)

Assinale para afixar o literal curto.

  • Tipo linha (campo LNTYP10)

 

  • Valor (campo LNVAL10)

Par défaut ce champ contient l'index du menu local ou le code de l'entrée de la table diverse utilisé pour le libellé.

Il est généralement modifié pour associer des codes spécifiques lorsqu'on on crée un nouvelle liste de valeurs.

Vide par défaut

Contient le champ de l'entité qui correspond au niveau de catégorie auquel est rattachée la valeur seulement si il est différent de celui défini par défaut dans le tableau 'Champ par défaut (entité)'.

Voir § catégories hiérarchiques

Par exemple pour les catégories de voitures avec les niveaux de catégories suivants :

N1 - Constructeur (Champ CAT1)
N2 - Modèle  (Champ CAT2)
N3 - Type Break ou Berline (Champ CAT3)
N4 - Energie Diesel ou Essence  (Champ CAT4)

Pour un modèle de voiture qui n'a qu'un seul type (comme une twingo de Renault) le niveau 3 correspond en fait à la catégorie 'Energie' (niveau 4 pour les véhicules standards).  Dans ce cas on saisit CAT4 dans le champ 'Champ lié' et 'ES' (essence) dans la valeur.

  • campo WLNDES10

 

  • Flag (campo WLNFLGHIE)

 

  • campo WLNDESL10

 

  • campo WLNDESS10

 

  • Ícone (campo WLNICO10)

 

  • Nível (campo WLNLVL10)

 

Fechar

 

Funções acessíveis por clique direito no quadro

Novo valor
Acção de desvio ESPECÍFICO
novos valores
Acção de desvio ESPECÍFICO
Actualização valor
Acção de desvio ESPECÍFICO
Suprimir
Lig. dinâmica

 

Fechar

 

Botões específicos

Este botão permite atualizar o dicionário XTEND ao formato XML

O servidor X3WEB toma em conta unicamente o dicionário sob este formato.

Existe um ficheiro xml por dicionário.

Por exemplo o ficheiro ACT.xml correspondente ao conjunto das ações web para o estabelecimento web corrente.

Este botão permite copiar uma lista de valores

Mensagens de erro

Não existe outra mensagem de erro, para além das mensagens genéricas.

Tabelas consideradas

SEEREFERTTO Consulte a docuemntação de Implementação