...
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 |
---|
borderColor | white |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 0 |
---|
borderStyle | solid |
---|
| |
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) |
...