+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 Apr 2026
  1. CeceliaWysel

    5 Pontos

  2. VernonSchaw

    5 Pontos

  3. MargieOsterh

    5 Pontos

200 pontos
Melhores 2026 Apr 06 - 12
  1. danilo.pereira

    96 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. willian.metalsystem

    69 Pontos

  5. henrique.muller

    62 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. luciano.fronza

    61 Pontos

  9. diuari.molinari

    52 Pontos

  10. diuari.molinari

    51 Pontos

518 perguntas
567 respostas
389 comentários
772 usuários