+4 votos
136 visitas
O código abaixo não está funcionando conforme esperado:

sWhere := sWhere + ' AND ' + CurrentSystemWrapper.BuildINSqlClause('HANDLE', _dbProduto.GetSelectedHandles, True);
por (33 pontos)
editado por | 136 visitas

1 Resposta

+3 votos
Melhor resposta

A função do TBFilter GetSelectedHandles retorna a lista de handles separados virgula.

A função BuildINSqlClause espera uma lista de handles separada por pipe.

Um cuidado extra com a função BuildINSqlClause é que o terceiro parâmetro informa se é uma lista com descrição, obtida por um campo do tipo filtro, onde os handles estão dispostos no formato 1|_|2|_|3|_

Veja exemplos:

Sistema.BuildINSqlClause("A.HANDLE", "1|_|2|_|3|_", True);

Sistema.BuildINSqlClause("A.HANDLE", "1|2|3", False);

Sistema.BuildINSqlClause("A.HANDLE", "1,2,3", False); // Ops, deve ser com PIPE.

 

Documentação do BuildINSqlClause disponível em:

http://wiki.benner.com.br/wiki/index.php?title=BSistema.BuildINSqlClause

por (368 pontos)
selecionada por
Você sabia? O campo TBFilter originalmente gravava as informações no formato:
1|Maria|2|João|3|Marta

Se os registros fosem alterados o TBFilter mostrava o valor antigo do registro.
Por isso não é mais gravada a legenda do registro, porém o formato deveria ser mantido, logo passou-se a gravar: 1|_|2|_|3|_.
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