Árvore de páginas

Versões comparadas

Chave

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

...

Painel
borderColorwhite
bgColorblack
titleColorwhite
borderWidth0
borderStylesolid

                  

ClassTotalizador5503

    publicMethodNew() asobject
      

      //Browser
    @Get("/totalizadorS5503")
    publicMethodtotalizadorS5503()

    //Tabela 1 (Neste exemplo usamos apenas esse metodo para as duas tabelas)
    //Pode ser implementado um segundo metodo para a tabela 2
    @Get("/totalizadorS5503/Details")
    publicMethodtotalizadorDetails()

EndClass



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. 

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)

05. Links de consulta:

https://po-ui.io/documentation

...