É possível usar uma entrada fornecida pelo usuário em um ou mais campos no formulário para determinar os valores em uma caixa de seleção. Essa técnica é útil quando você deseja fornecer ao usuário dois conjuntos com várias opções válidas da sua origem de dados, mas não deseja permitir que o usuário especifique uma seleção personalizada. Essa opção, portanto, ajuda a garantir a padronização e a validade das seleções dos usuários e, ao mesmo tempo, em geral fornece-lhes várias opções de escolha.
Uma aplicação comum dessa técnica ocorre em um formulário com caixas de seleção para país e estado. Usando os atributos reportobjid e reportobjvars, é possível configurar a caixa de seleção de estado para exibir apenas os estados do país selecionado pelo usuário.
Para usar a técnica de preencher previamente uma caixa de seleção com base na seleção de um usuário em uma caixa anterior, siga este processo. Este processo usa um cenário de país/estado como exemplo de execução.
Em nosso exemplo de execução, crie um objeto de dados de relatório para recuperar a lista de países do banco de dados.
Quando o formulário é exibido, o objeto de dados de relatório é executado e preenche a caixa de combinação com os dados resultantes.
Registre a ID do objeto de dados para referência futura.
Considere a seguinte consulta de amostra de um objeto de dados para o MDB. Esse exemplo retorna a lista de países disponíveis para o serviço ou opção de serviço ao qual o formulário está anexado
SELECT country_id,country_name from my_country_table
Essa consulta faz o seguinte:
Observação: ao usar um objeto de dados para preencher uma caixa de combinação, não adicione opções à caixa de seleção, pois elas são ignoradas (não usadas) quando o usuário abre o formulário. Quaisquer opções para a caixa de seleção são ignoradas, apenas o objeto de dados é levado em consideração.
Observação: como opção, você pode localizar o texto da dica de ferramenta ou o nome da caixa de seleção se usuários de diferentes localidades forem usar esse formulário.
Em nosso exemplo de execução, crie um segundo objeto de dados de relatório para recuperar os estados do banco de dados, com base no país que o usuário selecionou. Siga as diretrizes na Etapa 1 para criar o segundo objeto de dados de relatório.
select state_id,state_name from my_state_table where country_id=%selected_country%
Um valor válido é um dos seguintes:
Observação: inclua as sequências de caracteres em aspas simples, conforme mostrado. Dentro de uma sequência de caracteres com aspas, se necessário, use uma barra invertida (\) como caractere de escape para especificar uma aspas simples literal ou um apóstrofo. Por exemplo: $({‘what\’s the status?’})
$({'reportvar':_.user.lastName,’reportvar1’:’abc’,’reportvar2’:12,’reportvar3’:foo()})
Em nosso exemplo de execução, crie uma segunda caixa de seleção a ser preenchida com os estados do banco de dados, com base no país que o usuário selecionou. Para o atributo reportobjvars da caixa de seleção de estado, especifique a função JavaScript predefinida chamada ca_fdGetSelectedOptionValues, como se vê a seguir:
$({'selected_country':ca_fdGetSelectedOptionValues ('<form _id> ','country' )[0]})
Especifica o valor do atributo _id do formulário contendo a primeira caixa de seleção. Consulte este formulário na Etapa 2.
Especifica o valor do atributo _id da primeira caixa de seleção. Crie e registre este valor na Etapa 2.
ca_fdFetchSelectData('<form _id>','<field _id>');
Especifica o valor do atributo _id do formulário contendo a segunda caixa de seleção. Consulte este formulário na Etapa 4.
Especifica o valor do atributo _id do formulário contendo a segunda caixa de seleção. Crie e registre este valor na Etapa 4.
Em nosso exemplo de execução, defina o atributo onchange da caixa de seleção de país para o seguinte:
ca_fdFetchSelectData('<form _id>','<state field _id>');
Como prática recomendada, teste este formulário com um serviço em um ambiente de teste antes de usá-lo em um ambiente de produção.
| Copyright © 2010 CA. Todos os direitos reservados. | Enviar email à CA Technologies sobre este tópico |