Filtro utilizando campo Texto auto_complete e processamento ajax.

Amigos,
tenho a seguinte problema:

  • um filtro com dois campos numero e data. O campo número é do tipo texto auto_complete, utilizando uma lookup para selecionar o número por nome do paciente. Utilizo o processamento Ajax pelo campo data (este é do tipo Select que me traz todas as datas referentes ao paciente selecionado).
    O problema é que o processamento ajax - do campo data - só é executado se eu utilizar a lookup para selecionar o paciente. Se for informando direto o numero do paciente ela não é ativada.
    Pergunto: Existe algum controle para ativar o select do campo data caso o usuário digite o número ao invés de utilizar a lookup?
    Sds.

Pelo que percebo vc está tendo problemas com o fato de que o campo auto-complete do SC vc deve escolher um valor retornado na lista. Vc tem que clicar numa opção de retorno. Isso ocorre com auto-complete tipo texto, e pelo que estou vendo também com o tipo numero, que para ser sincero nunca usei.

Cleyton, inicialmente agradeço a atenção. Procurei entender o que ocorre quando seleciono um item da Lookup para que acione o processamento da função ajax. Não sei que tipo de opção de retorno posso utilizar, pois as opções no SC para Filtro são muito limitadas.
Em todo caso fica o meu obrigado.
Sds.

Explica o objetivo da sua aplicação e como está fazendo que o pessoal aqui é gente boa. Sem solução seu problema não vai ficar.

Cleyton,
o que posso acrescentar a mais é o seguinte:

  • uma aplicação de diagnostico médico, onde a PK é numero do paciente e data da consulta médica. Criei um filtro com dois campos: numero do paciente e data de atendimento. O número do paciente é do tipo Texto auto-complete com uma lookup com select entre a tabela de paciente e consulta médica, pois só os pacientes que tiveram consulta podem ser diagnosticados, pois tenho que recuperar os sintomas identificados na consulta médica. O campo data de consulta médica é do tipo select com uma lookup trazendo todas consultas referentes ao paciente selecionado. Coloquei no campo numero do paciente o processamento ajax selecionando o campo data de atendimento.
    Problema: só funciona o processamento ajax, que chama a lookup da data se utilizar a função lookup do numero do paciente.
    Conclusão: não consigo encontrar uma saída.

Sds.

Amigos ,

  Em campo com autocomplete em que preciso dar opção para o  cliente encontrar o que quer por mais de uma campo, no lookup coloco a 1a coluna a de retorno e na segunda coluna concateno o que poderá ser pesquisado tipo:
 lookup de paciente:   
 select codigo_paciente  , nome_paciente + ',  Cod.-> ' + codigo_paciente + ' C.P.F. -> ' + cpf_paciente from paciente
 coloco criterio "qualquer parte"
 dependendo do banco de dados voce verifica como concatenar os campos da segunda coluna
 se der problema por concatenar direto no lookup então crie uma view

 no lookup a pesquisa é feita sobre a segunda coluna então se voce digitar uma das tres informações a busca será feita

Abraços !

Supondo que a tabela consulta tenha, entre outros campos, o ID do paciente e a DATA da consulta:

Eu faria uma consulta e no FILTRO DA CONSULTA eu usaria o campo ID para selecionar o paciente e o campo DATA para fazer uma consulta ente datas. A consulta já abriria em modo filtro e o usuário escolhe o paciente e a data para selecionar.

No filtro da consulta, no campo ID eu usaria um auto complete tipo texto para selecionar o paciente pelo nome, mas passando o ID como parâmetro.

Na grid de resultado desta consulta eu faria as ligações para outras aplicações, conforme o caso. Gosto de usar campo imagem html para isso.

Amigos,
o meu problema no filtro, que está ligado a aplicação diagnostico (formulario ), está no fato de só conseguir que a lista de datas das consultas médicas seja carregada se eu utilizar a lookup do número do paciente (tipo texto auto-complete). Caso contrário, se digitar diretamente no campo o número do paciente, a lista de datas das consultas não é preenchida.
De qualquer forma, vou verificar a sugestão do Cleyton, trazendo o paciente e as datas.
Sds.

Esse tipo de campo no SC, auto-complete, não permite que vc digite o valor diretamente no campo. Vc tem que escolher um item da lista que ele retorna, mesmo que vc saiba o valor (código do paciente).

Cleyton,
só para acrescentar, o SC permite, num campo auto-complete, você digitar direto no campo. Existe sim um problema na versão 5 (não sei se foi resolvido na v6) que é a seguinte:

  • eu tenho um campo numero_paciente do tipo int(6), que faz parte do filtro e do formulario. No filtro coloquei o campo numero_paciente como Numero Auto-Complete. Coloquei uma lookup, para o usuário digitar o nome do paciente. Ocorreu o seguinte erro: se eu digitar direto no campo, um numero do paciente, a partir do número 1000, quando eu clicar no Filtrar, o SC formata com (.) agrupando por milhar, o select não encontra o paciente “1.000”, e a aplicação entendi que é um novo registro. Se eu utilizar a lookup ele não formata. Tentei mudar na propriedade do campo numero_paciente para não colocar nem (.) e nem (,) para agrupar por milhar e não funcionou. Tive que colocar no campo numero_paciente como Texto Auto-Complete para poder usar, tanto a lookup, quanto poder digitar o número do paciente, para o SC não agrupar por milhar.
    Sds.

Sim, neste caso funciona porque vc busca por texto mas o valor passado é um número. Agora experimenta digita um nome neste campo sem escolher uma opção na lista de retorno, vai dar erro. Contudo, funcionou como vc precisa. Se o usuário souber o número ele digita direto, se não pode fazer uma busca pelo nome do paciente.

Mas eu ainda faria um consulta com filtro e faria uma ligação para o formulário de diagnóstico. Pensando um pouco no usuário, se ele for trabalhar em duas consultas do mesmo paciente em um mesmo atendimento, uma consulta é mais prática porque evita ter de refazer o filtro para voltar novamente ao formulário. E ainda tem o fato de que vc poder tem uma consulta com dados do paciente que possa interessar o usuário (suponho que o usuário seja um médico) e na subconsulta listar por data as consultas a serem diagnosticadas.

Cleyton,
inicialmente, eu havia sugerido isso. Ele é um pouco conservador. Este sistema que fiz para ele é um upgrade do que ele possuia. Alias, o que ele tinha era só uma tabela com campos do tipo long. Eu normalizei as tabelas e acrescentei novas funcionalidades. Ele preferiu manter o layout de entrada de dados da consulta como fazia. Logo, para ele criar consulta (lista de varios registros) ele não gostou não.
De toda forma, foi de grande ajuda a sua.
Obrigado mesmo.