Usuários mais ativos no mês 12/2019
  1. henrique.muller

    844 Pontos

  2. paulo.silva

    842 Pontos

  3. maicon.pereira

    582 Pontos

  4. juliano.pezzini

    472 Pontos

  5. leandro.piscke

    428 Pontos

  6. diuari.molinari

    400 Pontos

  7. dirceu.schlickmann

    347 Pontos

  8. Camila

    288 Pontos

  9. bruno.cardoso

    272 Pontos

  10. Rafael Leonhardt

    253 Pontos

Nao permitir que campo seja utilizado na treeview como filtro ou alterar query do Runner

0 votos
15 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

 

perguntou Jul 1, 2016 por marcos.assumpcao (17 pontos)

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.
respondida Jul 20, 2016 por marcos.assumpcao (17 pontos)

Perguntas relacionadas

+6 votos
1 resposta 22 visitas
+1 voto
1 resposta 37 visitas
+4 votos
1 resposta 64 visitas
+10 votos
1 resposta 62 visitas
...