Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagejavascript
<select>
  <option value="te te te">Teste</option>
</select>

 

Zoom

Permite a consulta de entidades e outros formulários criados no fluig para seleção de dados pelo usuário. Para utilizar este componente basta inserir um campo de texto com alguns parâmetros específicos.

 

Informaçõesnote
titleAtenção!

Para utilizar o zoom do fluig, é necessário estar utilizando o fluig fluig Style Guide, para mais informações acesse https://style.fluig.com/

Bloco de código
languagehtml/xml
<input
   
	 type="zoom" 
    id = "c7_total"
	    name="c7_total"
	    data-zoom="{
		        'displayKey':'colleagueName',
		        'datasetId':'colleague',
		'fields':[
			{
			        'maximumSelectionLength':'2',
        'fieldplaceholder':'colleagueIdEscolha o usuário', 
			
        'labelfields':'ID'
			},{
			[
            {
               'field':'colleagueNamecolleagueId', 
			
               'label':'Nome', 
			ID'
            },{
              'standardfield':'truecolleagueName'
			},{
			
              'fieldlabel':'loginNome', 
			
              'labelstandard':'Logintrue'
			}
		] 
	 }"  
/>            },{
              'field':'login',
              'label':'Login'
            }
        ]
     }" 
/>

Onde:

  • type: o  o atributo type para este componente obrigatoriamente é 'zoom'
  • name: nome  nome do campo
  • data-zoom: parâmetros  parâmetros do zoom em formato json onde:
    • displayKeymaximumSelectionLength: limite de registros selecionáveis, caso não seja informado, o valor padrão é 1.
    • resultLimit: número máximo de resultados que serão listados na busca, o valor padrão é 300.
    • placeholder: texto de placeholder, que irá aparecer no zoom. Pode ser utilizado para instrução.
      • displayKey: coluna filtrável e de exibição após selecionado o registro
      • filterValues: atributo do dataset e valor para serem filtrados. Devem ser colocados em pares, separados por vírgula (,) onde o primeiro valor é o nome do
      coluna filtrável e de exibição após selecionado o registrofilterValues: atributo do dataset e valor para serem filtrados. Devem ser colocados em pares, separados por vírgula, onde o primeiro valor é o nome do
      • campo e o segundo refere-se ao valor do campo.
    • datasetId ou  ou cardDatasetId: opte por uma das opções:
      • datasetId:  é o nome do dataset (Built-in, CardIndex ou Customized).
      • cardDatasetId: é o numero de outro formulário para consulta.
      • fields: Estrutura do
      filtro 
      • filtro
        • field: atributo do dataset que será utilizado.
        • label: descrição da coluna.
        • standard: a coluna que será utilizada como ordenação padrão e valor do registro selecionado.

           

 

ATENÇÃO: Este  Este parâmetro só é válido para datasets internos. Datasets desenvolvidos sobre a plataforma não permitem a utilização de filtros a menos que sejam desenvolvidos utilizando utilizando constraints para  para realizar estas ações.

Informações
titleImportante

 O limite padrão de resultados listados é 300 e pode ser alterado de acordo com a necessidade do cliente. Não são listados todos os registros por questões de performance e processamento de dados.

 

  • Para obter outros atributos do registro selecionado pelo usuário pode ser adicionada a seguinte função JavaScript ao formulário do processo:

Bloco de código
languagehtml/xml
function setSelectedZoomItem(selectedItem) {               
}

Onde selectItem é o registro selecionado pelo usuário na tela de zoom.



  • Para recarregar o valor do filterValues no formulário a fim de torná-lo mais dinâmico, é possível utilizar o método a seguiracessar um campo do registro selecionado:

Bloco de código
languagehtml/xml
reloadZoomFilterValues(inputName, filterValues);

Este método é padrão durante a execução de um formulário dentro do fluig a partir da atualização 1.5.5 e recarrega o Zoom por inteiro, colocando os novos valores de filterValues. Em que:

inputName: refere-se ao nome do campo de zoom, ou seja, o valor name na sua declaração;

filterValues: espera-se um valor literal separado por vírgula, sendo que o primeiro valor refere-se ao campo a ser filtrado e o segundo valor refere-se ao valor que irá filtrar.

  • Para acessar um campo do registro selecionado:
Bloco de código
languagehtml/xml
selectedItem["fieldName"]

Onde fieldName é o nome do campo de retorno que foi definido na chamada de zoom. Para obter o registro componente de Zoom do fluig foi desenvolvido para permitir que o recurso de zoom fosse utilizado em definições de formulários.

 

  • Para acessar o tipo de zoom selecionado:
selectedItem["fieldName"]

Onde fieldName é o nome do campo de retorno que foi definido na chamada de zoom. Caso a 'label' do campo tenha sido declarada, ela deverá ser utilizada.

  • Para acessar o tipo de zoom selecionado:

Bloco de código
selectedItem.
Bloco de código
languagehtml/xml
selectedItem.inputId = "c7_total"
selectedItem.inputName = "c7_total"

Onde inputId é o id do campo e inputName é o nome do campo de retorno que foi definido no input zoom. Estes parâmetros possuem a mesma funcionalidade do type da antiga técnica de zoom.

  • Para recarregar o valor do filterValues no formulário a fim de torná-lo mais dinâmico, é possível utilizar o método a seguir:

Bloco de código
reloadZoomFilterValues(inputName, filterValues);

Este método é padrão durante a execução de um formulário dentro do fluig a partir da atualização 1.5.5 e recarrega o Zoom por inteiro, colocando os novos valores de filterValues. Em que:

inputName: refere-se ao nome do campo de zoom, ou seja, o valor name na sua declaração;

filterValues: espera-se um valor literal separado por vírgula, sendo que o primeiro valor refere-se ao campo a ser filtrado e o segundo valor refere-se ao valor que irá filtrar.

Informações
titleObservação

Foi criado um exemplo de como utilizar o método reloadZoomFilterValues, que você pode acompanhar clicando aqui.

Definir valor baseado na troca de valor de outro campo/zoom

Para realizar a busca de um valor em um campo de tipo zoom, com valores obtidos de outros campo zoom, deve-se ser utilizada primeiramente a função setSelectedZoom, que por parâmetro receberá o item selecionado pelo usuário no campo (selectedItem).

Dentro desta função, verificaremos o campo no qual vai pegar o valor do primeiro zoom, que no caso complementará o segundo:

Bloco de código
if(selectedItem.inputId == "id do campo"){}

Os id's dos campos de tipo zoom serão retornados em selectedItem.inputId, por este motivo devemos inserir esta validação, para que apenas o valor do campo certo seja retornado. Após o valor do campo estiver de acordo com sua opção, deverá ser utilizada a função reloadZoomFilterValues dentro da validação do nome do campo, que aplicará o filtro e recarregará o zoom.

Aplicando os valores:

Bloco de código
reloadZoomFilterValues("id_do_campo_de_zoom_que_receberá_o_filtro", "campo_a_ser_filtrado," + selectedItem["valor_que_ira_filtrar"]);
Informações
titleImportante

 Espera-se um valor literal separado por vírgula após o campo a ser filtrado.


Código do exemplo completo:

 

Bloco de código
function setSelectedZoomItem(selectedItem) {
    if(selectedItem.inputId == "id do campo"){
    reloadZoomFilterValues("id_do_campo_de_zoom_que_receberá_o_filtro", "campo_a_ser_filtrado," + selectedItem["valor_que_ira_filtrar"]);
  }
}
Dica

É possível definir manualmente um valor para campos do tipo zoom utilizando a técnica demonstrada neste exemplo, que está disponível em nosso repositório Git.


Informações

antiga técnica para zoom ainda é suportada pela plataforma. Porém, recomendamos a utilização da técnica descrita acima que está de acordo com os padrões do fluig Style Guide e permite maior fluidez utilizando o componente.

 

 

 

Onde inputId é o id do campo e inputName é o nome do campo de retorno que foi definido no input zoom. Estes parâmetros possuem a mesma funcionalidade do type da antiga técnica de zoom.

 

Para que seja possível visualizar e resgatar informações dos campos “metadatas” do formulário, é necessário utilizar a seguinte nomenclatura:

...

Neste exemplo, o zoom irá retornar somente os registros de formulários inativos.


Definir valor baseado na troca de valor de outro campo/zoom

Para realizar a busca de um valor em um campo de tipo zoom, com valores obtidos de outros campo zoom, deve-se utilizar primeiramente a função setSelectedZoom, que por parâmetro receberá o item selecionado pelo usuário no campo (selectedItem).

...

Exemplos de utilização de Filter e Autocomplete

 O usuário necessita de uma consulta rápida de registros de um dataset, um Autocomplete é o ideal para esses casos, já que possui uma consulta rápida e resultados objetivos.

 Caso o usuário necessite de mais informações e maior customização da datatable ele pode utilizar o filter.

Dica
titleDica

Para mais informações sobre Autocomplete e Filter acesse as informações do style fluig.

...

Bloco de código
languagehtml/xml
Window.open(URL Aplicação Externa, Nome da Janela que será aberta, comandos adicionais)

Onde:

URL Aplicação Externa: É a url da aplicação externa que funcionará como zoom para o fluig. Ex: http://servidor/applications/forneczoom.asp.

Nome da Janela: Nome da janela que será utilizado pelo navegador do usuário como identificador. Para evitar a sobreposição de conteúdo em janela é recomendado que para cada zoom chamado por um mesmo formulário seja adicionado um nome diferente. Ex: “ZoomFormec”.

Comandos Adicionais: Comandos adicionais utilizados para a criação da janela que irá conter a aplicação zoom. Ex: “width=230, height=230”.

Informações
titleNota

Devido a uma restrição dos navegadores a url do programa de zoom externo ao fluig deverá estar no mesmo domínio em que o fluig se encontra. Caso contrário não será possível atribuir ao campo do formulário o valor escolhido para o zoom. Este problema ocorrerá por que os navegadores proíbem a pratica de codificação JavaScript cross-domain.

...

Bloco de código
languagehtml/xml
<script language=”JavaScript”>
   function escolha(valor) {
       // A linha abaixo testa se a janela do formulário do fluig que abriu a janela de zoom ainda está aberta
       if (window.opener && !window.opener.close) {
              // seta o valor passando para o campo
              window.opener.document.(id do form no formulário fluig).(nome do campo).value = valor;
       }
       // Fecha a janela da aplicação zoom
       window.close();
   }
</script>

Onde:

Id do form no formuário fluig: Caso algum id tenha sido definido para a tag <form> no formulário do fluig é interessante referenciar neste comando. Pode ser utilizada também a referência de coleção forms dentro do comando (forms[posição])
Ex: FornecedorForm, forms[0].

Nome do Campo: Nome do campo que irá receber o valor passado para a função. 
Ex: cod_fornec.

Valor: Dado que será passado para o campo do formulário do fluig.

 

O exemplo a seguir irá programar um exemplo de zoom externo feito inteiramente em HTML com dados estáticos apenas para ilustração. Os dados de zoom podem provir de qualquer fonte seja ela interna ou externa ao fluig.

...

Nota
titleAtenção - Trabalhando com tabelas

Não é recomendada a utilização de underscore - "___" - na propriedade name de uma coluna (tag <td>) em formulário que utilizem Pai x Filho pois não é renderizada no Mobile.

 

A técnica também suporta novos atributos que podem ser passados eu usados para customizar a técnica pai e filho. São elas:

...

Bloco de código
languagehtml/xml
<table tablename="teste" addbuttonlabel="Adicionar novo ingrediente" addbuttonclass="wdkbuttonClass" deleteicon="teste.jpg">
Nota

Campos de uma tabela pai e filho não estão disponíveis para serem utilizados como descrição dos registros de formulários na configuração do formulário.

Campos de uma tabela pai e filho não devem ser colocados no "Head" ou "Foot" de um HMTL pois eles não serão considerados, coloque os campos apenas no "Body".


Nota
titleAtenção

Para mais informações sobre os eventos de formulários PaixFilho acesse Eventos Formulários.

...

Informações
As literais e seus respectivos valores são informados em arquivos de propriedades com a extensão .properties para cada um dos idiomas desejados. Os idiomas suportados para a tradução são os mesmos suportados pelo fluig:

Português (pt_BR);

Inglês (en_US);

Espanhol (es).

 

Os arquivos contendo as literais têm a seguinte nomenclatura:

Português: nome_do_formulario_pt_BR.properties;

Inglês: nome_do_formulario_en_US.properties;

Espanhol: nome_do_formulario_es.properties.

 

Os arquivos de propriedades são criados de acordo com os passos apresentados a seguir:

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1
labelPasso1

 

Para gerar os arquivos de propriedades, na visão Explorador de Pacotes, deve-se acessar o arquivo HTML do formulário a ser traduzido, clicar com o botão direito e acessar a opção Externalizar Strings.

Figura 1 - Menu Contextual Externalizar Strings.

 

Card
id2
labelPasso 2

 

Os arquivos contendo as literais são criados na pasta do formulário.

Figura 2 - Arquivos Properties na Pasta do Formulário.


Card
id3
labelPasso 3

 

Informe os valores correspondentes às literais para o idioma de cada arquivo.

Figura 3 - Edição de um Arquivo Properties.


...