+4 votos
40 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 | 40 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 (347 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 Mar 2020
  1. henrique.muller

    28 Pontos

  2. willian.metalsystem

    24 Pontos

  3. juliano.pezzini

    14 Pontos

  4. alan.jantz

    9 Pontos

  5. SlimShady

    6 Pontos

  6. maicon.pereira

    6 Pontos

  7. anônimo

    5 Pontos

  8. rafael.paludo

    5 Pontos

  9. fabio

    5 Pontos

  10. robert.volles

    5 Pontos

200 pontos
Melhores 2020 Mar 30 - Apr 05
  1. anônimo

    5 Pontos

  2. willian.metalsystem

    2 Pontos

420 perguntas
470 respostas
342 comentários
465 usuários