Restaurando FILTRO EM ORIGINAL SDO

Discussão em 'Progress 4GL' iniciado por carlos, Agosto 4, 2009.

  1. carlos

    carlos Membro Participativo

    Eu estou fazendo um filtro para uma SDO como segue:

    DO:
    ASSIGN C-operador Where-Field.

    IF Where-Field NE '' THEN DO:
    iOperador = LOOKUP(C-operador, C-operador:LIST-ITEM-PAIRS).
    cOperador = ENTRY(iOperador, C-operador:LIST-ITEM-PAIRS).

    Name-Field = ENTRY(LOOKUP(wWhere-By:SCREEN-VALUE, wWhere-By:LIST-ITEMS), fName) + " ".

    Name-Field = Name-Field + cOperador + " " + Where-Field.

    DYNAMIC-FUNCTION('addQueryWhere' IN hData,
    Name-Field, '','').

    DYNAMIC-FUNCTION('openQuery' IN hData).

    END.

    END.

    Mas isso vem com um filtro SDO é a chave entre o pai eo filho, o filtro que estou fazendo é para SDO filho ... A minha pergunta é: como é que eu restuarar o filtro que vem com o filtro original.

    Eu fiz um procedimento que restaurou o filtro original, mas isto só funciona para mim e quando vou para o filtro BROWSE PAI e mudar para outro registo e vá para BROWSE teen me mostra que nada se mantém acima do filtro carregado.

    DO:
    Where-Field:SCREEN-VALUE = "".
    B-query:SENSITIVE = FALSE.

    DYNAMIC-FUNCTION('setQueryWhere' IN hData, '').
    /*DYNAMIC-FUNCTION('closeQuery' IN hData).*/
    DYNAMIC-FUNCTION('addQueryWhere' IN hData,
    cSourceFields, '',''). /* Cobrado com esta função novamente
    Filtro origne pai e filho,
    cSourceFields esta variável quando eu carregar o filtro */
    DYNAMIC-FUNCTION('openQuery' IN hData).

    mNameItem = "".
    mOperador = "".

    END.

    Espero ter a sua ajuda.

    Carlos

Compartilhe esta Página