Tópico anterior: Como preencher previamente a caixa de combinação com base em um objeto de dados de relatórioPróximo tópico: Como usar expressões JavaScript em campos


Como usar a entrada do usuário para preencher previamente uma caixa de seleção

Você pode usar uma entrada fornecida pelo usuário em um ou mais campos do 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 de várias opções válidas da origem de dados, mas não deseja 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 de país e estado. Usando os atributos reportobjid e reportobjvars, você pode configurar a caixa de seleção de estado para exibir somente os estados do país selecionado pelo usuário.

Para usar essa técnica de preencher previamente uma caixa de seleção com base na seleção do usuário em uma caixa de seleção anterior, siga este processo. Este processo usa o cenário de país-estado como exemplo de execução.

  1. No Criador de relatórios, crie um objeto de dados que consulte na origem dos dados (como o MDB) os dados desejados na primeira caixa de seleção. A consulta deve retornar a lista de todos os valores possíveis e preencher a caixa de combinação com essa lista. Essa etapa faz parte do processo de preencher previamente uma caixa de combinação com base em um objeto de dados de relatório.

    No 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 a opção de serviço à qual o formulário está conectado

    SELECT country_id,country_name from my_country_table
    

    Essa consulta faz o seguinte:

  2. No formulário, adicione a primeira caixa de seleção; ela é um dos elementos de um formulário.
    1. Para o atributo _id, especifique um valor significativo e salve o formulário. Registre o valor para referência futura ao especificar o atributo reportobjvars.
    2. Para o valor do Atributo HTML chamado reportobjid, especifique a identificação do objeto de dados e salve o formulário.

    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 serão ignoradas (não usadas) quando o usuário abrir o formulário. As opções da caixa de seleção serão ignoradas e apenas o objeto de dados será considerado.

    1. Para o atributo múltiplo da caixa de seleção, especifique Falso, para que os usuários possam selecionar apenas uma opção na caixa de combinação. Salve o formulário.
    2. Para o atributo de título (texto da dica de ferramenta), há a opção de especificar o texto de instrução, como "Clique na seta e role para selecionar um país". Salve o formulário.
    3. Como opção, é possível renomear o texto de exibição padrão do grupo de seleção, mudando-o de "Selecionar" para um nome mais significativo, selecionando o elemento na Árvore de componentes e clicando no ícone Renomear no topo da árvore.

      Observação: você tem a opção de localizar o texto da dica de ferramenta ou o nome da caixa de seleção, caso usuários de locais diferentes usem esse formulário.

    4. Deixe o atributo de valor em branco. Esse valor é preenchido com o primeiro resultado retornado pela consulta.
  3. Crie um segundo objeto de dados de relatório para recuperar uma lista de valores do banco de dados, com base na seleção do usuário na primeira caixa de seleção. Nesse objeto de dados de relatório, especifique algumas variáveis de relatório na consulta que devem ser preenchidas usando a entrada fornecida pelo usuário em outros campos do formulário

    No 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 selecionado pelo usuário. Siga as diretrizes da Etapa 1 para criar o segundo objeto de dados de relatório.

  4. No formulário, adicione a segunda caixa de seleção. Essa caixa é preenchida previamente, com base na seleção do usuário para a primeira caixa de seleção. Siga as diretrizes da Etapa 2 para criar a segunda caixa de seleção, mas lembre-se das seguintes considerações:
  5. Na segunda caixa de seleção, especifique o atributo reportobjvars usando o seguinte formato: $({'reportvar':valor}).

    Os valores válidos são os seguintes:

    No 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 selecionado pelo usuário. Para o atributo reportobjvars da caixa de seleção de estado, especifique a função JavaScript predefinida chamada ca_fdGetSelectedOptionValues, da seguinte maneira:

    $({'selected_country':ca_fdGetSelectedOptionValues ('<form _id> ','country' )[0]})
    
    form _id

    Especifica o valor do atributo _id do formulário que contém a primeira caixa de seleção. Você faz referência a esse formulário na Etapa 2.

    país

    Especifica o valor do atributo _id da primeiro caixa de seleção. Você cria e registra esse valor na Etapa 2.

  6. Na primeira caixa de seleção, defina o atributo onchange para recuperar os dados para a segunda caixa de seleção assim que o usuário fizer a seleção na primeira caixa de seleção. Para o atributo onchange, especifique a função JavaScript predefinida chamada ca_fdFetchSelectData, usando o seguinte formato:
    ca_fdFetchSelectData('<form _id>','<field _id>'); 
    
    form _id

    Especifica o valor do atributo _id do formulário que contém a segunda caixa de seleção. Você faz referência a esse formulário na Etapa 4.

    field_id

    Especifica o valor do atributo _id do formulário que contém a segunda caixa de seleção. Você cria e registra esse valor na Etapa 4.

    No nosso exemplo de execução, defina o atributo onchange para a caixa de seleção de país com o seguinte:

    ca_fdFetchSelectData('<form _id>','<state field _id>'); 
    
  7. Teste o formulário para verificar se ele funciona como esperado.

Como prática recomendada, teste esse formulário com um serviço em um ambiente de teste antes de usá-lo em um ambiente de produção.