Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Para a exibição do browser foi criado o Método totalizadorS5503(), onde será retornado além das informações necessárias para o preenchimento dos campos do componente Page Dynamic Table o RECNO da tabela pai do evento S-5503 que será usado como chave para os demais métodos. 

Este mesmo método é utilizado para o retorno do filtro rápido e filtro avançado onde retornamos as informações do cabeçalho para o browser.

Para esta implementação utilizamos o método disponível pelo TLPP oRest:getQueryRequest responsável por retornar os parâmetros informados na requisição via URI (query param) que serão utilizados na query principal retornando os valores filtros.

                  
Painel
borderColorwhite
bgColorblack
titleColorwhite
borderWidth0
borderStylesolid

MethodtotalizadorS5503() ClassTotalizador5503

    LocaloJson     := JsonObject():New()
    LocaloJsonAux  
    LocalnPage     asnumeric
    LocalnPageSizeasnumeric
    LocalnRegIni   asnumeric
    LocalnRegFim   asnumeric
    LocalcPerRef   ascharacter
    LocalcCPF      ascharacter
    LocalcQry      ascharacter
    LocalcNome     ascharacter
    LocalcSearch   ascharacter
    LocaljQuery := oRest:getQueryRequest()

    T2M->(DbSetOrder(1))
    T2M->(DbGoTop())

    oJson['items'] := {}
    cPerRef     := IIF(jQuery['perRef']     <> Nil,jQuery['perRef'],           '')
    cCPF        := IIF(jQuery['cpf']        <> Nil,jQuery['cpf'],              '')
    cSearch     := IIF(jQuery['search']     <> Nil,jQuery['search'],           '')
    nPage       := IIF(jQuery['page']       <> Nil,Val(jQuery['page']),        1 )
    nPageSize   := IIF(jQuery['pageSize']   <> Nil,Val(jQuery['pageSize']),    15)

    nRegIni := ( ( nPage - 1 ) * nPageSize ) + 1    
    nRegFim := nPage * nPageSize

    cQry += "        SELECT * FROM ( "
    cQry += "           SELECT ROW_NUMBER() OVER( ORDER BY T2M.R_E_C_N_O_ ) LINE_NUMBER, "
    cQry += "               T2M.R_E_C_N_O_  RECNO, T2M_PERAPU PERIODO, T2M_CPFTRB CPF, T2M_NRRECI RECIBO "
    cQry += "           FROM " + RetSqlName("T2M") + " T2M "
    cQry += "           WHERE T2M_PERAPU = ? "

    If !Empty(cCPF) .or. !Empty(cSearch)
        cQry += "           AND T2M_CPFTRB = ? "
    EndIf

    cQry += "           AND D_E_L_E_T_ = '' "
    cQry += "       ) TAB  "
    cQry += "        WHERE LINE_NUMBER BETWEEN "+ cValTochar(nRegIni) + "AND " + cValTochar(nRegFim) + " "

    oStatement := FWPreparedStatement():New( ChangeQuery(cQry) )

    oStatement:setString(1,cPerRef)

    If !Empty(cCPF)
        oStatement:setString(2,cCPF)
    EndIf  

    If !Empty(cSearch)
        oStatement:setString(2,cSearch)
    EndIf    

    cQry := oStatement:getFixQuery()

    cAliasProd := MPSysOpenQuery(cQry)

    While (cAliasProd)->(!EoF())

        cNome   := TAFGetNT1U((cAliasProd)->CPF)

        IfEmpty(cNome)
            C9V->(DbSetOrder(3))

            IfC9V->(MsSeek(xFilial("C9V") + (cAliasProd)->CPF + "1"))
                cNome := C9V->C9V_NOME
            Else
                cNome := TAFGetNT3A((cAliasProd)->CPF)
            EndIf

        EndIf

        oJsonAux := JsonObject():New()
        oJsonAux['period']          := Transform((cAliasProd)->PERIODO,"@R 9999-99")
        oJsonAux['cpf']             := AllTrim(Transform((cAliasProd)->CPF,"@R 999.999.999-99"))
        oJsonAux['name']            := cNome
        oJsonAux['receipt']         := AllTrim((cAliasProd)->RECIBO)
        oJsonAux['processNumber']   := '1234556'
        oJsonAux['RECNO']           := (cAliasProd)->RECNO

        Aadd(oJson['items'],oJsonAux)
        FreeObj(oJsonAux)

        (cAliasProd)->(DbSkip())

    End

    oJson["hasNext"] := HasNext( nRegFim,cPerRef )

    (cAliasProd)->(DbCloseArea())
    T2M->(DbCloseArea())
    FreeObj(oStatement)

ReturnoRest:SetResponse(oJson)

...