Combo
O componente Combo é um componente da camada de apresentação do projeto onde as opções de uma tag SELECT são montadas a partir do resultado de uma consulta feita a um banco de dados. Para acessar o conteúdo dessa variável basta que o desenvolvedor a referencie na página WSP que se queira exibir a combo-box usando a seguinte sintaxe:
|combo.<identificador-da-combo>|
Em casos onde o desenvolvedor tenha definido uma lista de seleção múltipla a informação sobre a quantidade de opções selecionadas será retornada pela propriedade size da variável que representa o elemento SELECT no formulário de uma página. Referenciando o nome da variável será retornado a lista dos valores selecionados separados por vírgula, para acessar cada um dos respectivos valores basta acrescentar .<índice> ao final da variável. Para exemplo, suponha que o seguinte formulário encontra-se definido numa página WSP:
...
<form action="/|wi.proj.id|/|wi.page.id|.wsp" method="post">
<select multiple name="tmp.select">|combo.minhaCombo|</select>
...
referenciando |tmp.select| serão retornados os valores selecionados separados por vírgula, |tmp.select.size| retornará a quantidade de elementos selecionados e para referenciar os valores selecionados individualmente usa-se |tmp.select.<índice>|, onde <índice> pode variar de 1 até |tmp.select.size|.
Uma outra característica suportada pelas combos é a passagem de parâmetros para a Combo a ser processada. Como exemplo, suponha que se queira passar para uma Combo se os elementos deverão vir ordenados em ordem crescente ou decrescente através de uma variável tmp.orderBy a sintaxe ficaria a seguinte:
|combo.<identificador-da-combo>?tmp.orderBy=desc|
Esse tipo de construção também aceita a passagem de múltiplos parâmetros, neste caso as atribuições das variáveis deverão estar separados por &. A sintaxe geral para um elemento Combo é a seguinte:
|combo.<identificador-da-combo>[?<variável1>=<valor1>[&<variável2>=<valor2>...]]|
O campo Banco de Dados indica o identificador de um dos servidores de bancos de dados definidos para o projeto que será usado para executar o comando.
O campo Chave indica o nome ou índice de uma das colunas retornada pelo resultado da pesquisa de onde serão pegos os valores para serem populados como valores-chaves das opções da combo.
O campo Descrição serve para que o desenvolvedor da aplicação escreva um breve comentário sobre a ação a ser executada pelo componente em questão.
O campo Filtrar define quais os caracteres que deverão ser filtrados do conteúdo das variáveis de sessão do WebIntegrator que estão sendo referenciadas no campo SQL antes da execução do comando. O objetivo é impedir que certos caracteres sejam passados para o comando a ser executado pelo banco de dados evitando que assim que o resultado do comando não seja intencionalmente alterado.
Como exemplo, suponha que haja a instrução SELECT * FROM tabCadastros WHERE nome LIKE |tmp.nome|% AND publico = 1 e, o usuário da aplicação, ao preencher o formulário coloque no campo correspondente à variável tmp.nome um valor como % OR nome = . Se o campo Filtrar não estiver definido com os caracteres %, então o WebIntegrator irá processar a seguinte instrução: SELECT * FROM cadastros WHERE nome LIKE % OR nome = % AND publico = 1 retornando como resultado todos as linhas da tabela.
O campo Identificador serve para que o desenvolvedor entre com um identificador único para o componente de página ou de projeto que está sendo definido. Será através desse identificador que o componente e/ou seus valores serão referenciado nas páginas do projeto.
A depender do componente que se estiver definindo para que o mesmo seja referenciado numa página será necessário o acréscimo de um prefixo como é o caso dos componentes Grid e Combo, nesses dois casos é obrigatório o uso dos prefixos grid. e combo. antes dos respectivos identificadores para que o conteúdo correto seja exibido.
O campo SQL contém o comando que será enviado para ser processado pelo banco de dados. Caso o comando seja composto por mais de uma instrução SQL separe-as por ponto-e-vírgula.
No componente Upload de Banco de Dados o valor da coluna relativo ao conteúdo deverá ser referenciado por um sinal de interrogação, exemplo: INSERT INTO MinhaTabela (arquivo, conteudo) VALUES (|tmp.arquivo|, ?).
A estrutura do comando a ser executado é dependente do banco de dados, podendo ser feitas chamadas a stored procedures, rotinas M (através do MJava), métodos de objetos do CachéFactory, execução de instruções SQL, etc. Para saber maiores detalhes como fazer essas chamadas clique aqui.
O campo Texto indica o nome ou índice da coluna retornada pelo resultado donde serão pegos os dados para serem populados como os textos (valores) da combo.
Para gerar uma combo com as pastas IMAP de um servidor pode ser utilizada a opção Java de Banco de Dados e no comando sql coloca-se br.com.itx.database.impl.ResultSetImapFolders:[id_servidor] onde o id do servidor tanto pode estar fixo como ser uma variável entre pipes.