RB
Alterar um TCriteria para campos tipo TDB em tempo de execução
Olá, gostaria de saber se é possível (e como) alterar o TCriteria para um campo do tipo TDBMultiSearch em tempo de execução?
Exemplo:
Tenho um TDBMultiSearch que usa um determinado criterio para buscar informações no banco, porém quando o usuário seleciona uma opção (em um radio ou combo, por exemplo) esse critério de busca deveria ser alterado conforme a opção escolhida pelo usuário.
Pelo que entendi precisaria fazer uma espécie de reload do campo TDBMultiSearch (ou excluir e criá-lo novamente em tempo de execução), porém não consegui obter êxito nas minhas tentativas até o momento.
Se alguém tiver alguma sugestão agradeço.
Exemplo:
Tenho um TDBMultiSearch que usa um determinado criterio para buscar informações no banco, porém quando o usuário seleciona uma opção (em um radio ou combo, por exemplo) esse critério de busca deveria ser alterado conforme a opção escolhida pelo usuário.
Pelo que entendi precisaria fazer uma espécie de reload do campo TDBMultiSearch (ou excluir e criá-lo novamente em tempo de execução), porém não consegui obter êxito nas minhas tentativas até o momento.
Se alguém tiver alguma sugestão agradeço.
Editado 02/06/2022 (há 2 anos) - Clique para ver alterações
Bom dia.
Já tentou isso? https://framework.adianti.me/tutor/index.php?class=FormInteractionsView
Valeu Ivan, porém para campo do tipo TDBMultiSearch essa lógica não se aplica para minha necessidade, pois eu preciso alterar os critérios para fazer a busca e não os valores do campo.
Tente o seguinte:
1 - ao trocar as opções do radio/combo, grave os dados referentes aos filtros na sessão
2 - crie uma classe copiando AdiantiMultiSearchService e altere a parte dos filtros para considerar os dados da sessão salvos no passo 1
3 - defina essa nova classe como a responsável pelo preenchimento dos dados. Ex:
Se a base de dados não for muito extensa, eu já usei assim, preenchendo a matriz em tempo de execução. Pra mim , funcionou
Olá,
Estamos trabalhando para que na próxima versão seja possível definir partes do critério dinâmicas, que são alimentadas a partir de variáveis de sessão, que possam ser modificadas em tempo de execução.