FIND com cláusula WHERE

Discussão em 'Progress 4GL' iniciado por alexandre.hubner, Março 2, 2010.

  1. alexandre.hubner

    alexandre.hubner Sem Pontuação

    Bom dia prezado Marcos!

    Infelizmente o filtro de Data (tipo DATE) não funcionou. Tentei de diversas formas!

    De qualquer forma obrigado pela tentativa - pelo auxílio!

    Se você tiver qualquer outro tipo de sujestão, agradeço!

    Um abraço e até mais!

    Alexandre
  2. kirchner

    kirchner Membro Participativo Moderador

    Alexandre,

    Não tenho outra idéia, mas com aquele código exemplo eu consegui resolver o problema.

    Como você implementou?
  3. alexandre.hubner

    alexandre.hubner Sem Pontuação

    Marcos,
    Ocorre que neste caso, ele vai retornar todos os registros que têm a (data = digitado no campo) OU (data = ?). [<- nulo]
    E o que preciso é que ele me retorne todos os registros que têm a
    (data = digitado no campo) OU (se digitado no campo = "" ENTAO data = *).

    Não sei se fui claro...
    E pelo que entendi, então, seu código não atende a isto. Estou certo?

    Obrigado novamente!

    Alexandre
  4. kirchner

    kirchner Membro Participativo Moderador

    Não é isso Alexandre,

    É todos os registros em que o valor da coluna na tabela seja igual a variável OU que a variável seja NULL.

    De novo:
    (campoData = variavelData OR variavelData = ?)

    Se você digitar um valor, substituindo a variável vai ficar:
    Código:
    campoData = 08/03/2010 OR 08/03/2010 = ?
    A primeira condição é verdadeira só para os registros da data informada.


    Se não digitar valor, a variável tem null (?). Daí fica:
    Código:
    campoData = ? OR ? = ?
    A segunda condição é verdadeira para todos os registros. Retorna tudo.
  5. mcarril

    mcarril Membro Participativo

    E o que preciso é que ele me retorne todos os registros que têm a
    (data = digitado no campo) OU (se digitado no campo = "" ENTAO data = *).

    Você pode fazer assim:

    IF data <> ? THEN DO:

    find NA TABELA com a data.

    END.
    ELSE DO:


    find NA TABELA sem a data na cláusula WHERE.



    END.

Compartilhe esta Página