0 votos
66 visitas

Bom dia,
Tem como mostrar um campo string no formulário, mas ocultá-lo na janela de escolha de campos de busca da treeview?
Isso é possível via builder ou macro?

Se não for possível, tem como interceder na montagem da cláusula where e tratar esse campo modificando o where que o builder montou? (veja ponto do debug abaixo, aonde o runner monta o filtro da árvore)
Entrando "TreeViewEditing".
Permite edição do node.
Verificando texto digitado na árvore.
Filtro para árvore: (UPPER(A.DESCRICAO) LIKE 'AMB%')
TreeViewCollapsing
TreeViewCollapsed
Gerando o SQL para árvore.
In  ModuleOnNodeWhere
Out ModuleOnNodeWhere

qWork.Open
qLoadQuery.Open
qLoadQuery.Close
qWork.Close
TreeViewExpanding

 

por (17 pontos) | 66 visitas

1 Resposta

0 votos
Bom, como não encontrei solução alternativa, o que fiz para:

1- Impedir que o campo apareça na treeview para que o usuário não faça pesquisa por ele:
- tornei o campo invisível nessa carga, e criei um campo do tipo rótulo para exibir a informação no formulário

2) Alterar a busca de forma mais performática usando o % no meio da busca e não no final:
- Como o usuário conhece somente uma parte final do campo (ex.os ultimos 7 caracteres) criei um botão na carga que ao ser clicado abre uma janela e pede para o usuario digitar parte dos ultimos digitos do campo que ele conhece (ex. se quer procurar o codigo "SAXXXXX0220023200000223344"digita só: 223344), ai faço uma query no banco buscando esse campo de forma "REVERSA"
WHERE REVERSE(RTRIM(CODIGO_X)) LIKE reverse('" + "%" + vMeuCampo + "')"
(vai ficar assim--> ... like '443322%'

Como no cliente esta tabela tem mais de 70 milhoes de registro, criei no banco de dados um indice por função reversa:REVERSE(RTRIM(CODIGO_X)).

O resultado da query é apresentado num grid com outras informações, o usuário da um duplo clic na linha e copio o campo CHAVE do registro pra memoria (clippboard), se ele quiser pesquisar mais detalhes da tabela, ele cola o campo chave na treeview e busca normalmente o restante das informacoes que quer.
por (17 pontos)

Perguntas relacionadas

Melhores Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários