Histórico da Página
...
Tipo | Descrição |
---|---|
Caracter | String no formato json com conteúdo necessário da tela de detalhes. |
Exemplo de Uso
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Method BuscaDetalhes(oFiltro,nPagina) Class StatusLotesAVencer Local aColunas := {} Local cAlias := GetNextAlias() Local cJsonRet := "" Local cQuery := "" Local dDataFim := Nil Local lExpResult := .F. Local nIndCol := 0 Local nIndHeader := 0 Local nIndTag := 0 Local nPos := 0 Local nStart := 1 Local nTamPagina := 20 Local oDados := JsonObject():New() Local oEstHeader := JsonObject():New() Default nPagina := 1 //A exportação de resultado para o formato csv passa o parâmetro nPagina igual a zero para que o resultado não seja filtrado If nPagina == 0 lExpResult := .T. EndIf oFiltro["01_B8_FILIAL"] := PadR(oFiltro["01_B8_FILIAL"], FWSizeFilial()) //Propriedades que devem ser retornadas na requisição de detalhes oDados["items"] := {} //Array de objetos json com os dados que serão visualizados na tabela oDados["columns"] := {} //Array de objetos json com as colunas que serão visualizadas na tabela oDados["canExportCSV"] := .T. //Indica se permite a exportação do resultado do detalhe para arquivo csv oDados["headers"] := {} //Array de objetos com os headers da página de detalhes oDados["tags"] := {} //Array de objetos json com as tags que serão visualizadas no detalhe oDados["hasNext"] := .F. //Indica se há mais páginas de dados para serem visualizadas na tabela //Definição das colunas da tabela PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_FILIAL","Filial","string",lExpResult) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_LOTECTL","Lote","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_NUMLOTE","Sub-Lote","string",lExpResult) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_PRODUTO","Produto","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B1_DESC","Desc. Produto","string",lExpResult) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_LOCAL","Armazém","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_DTVALID","Validade","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_QTDORI","Quant. Orig.","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_SALDO","Saldo","string",.T.) PCPMonitorUtils():AdicionaColunaTabela(aColunas,@nIndCol,"B8_UM","Un. Medida","string",lExpResult) oDados["columns"] := aColunas PCPMonitorUtils():AdicionaTagMonitor(oDados["tags"],@nIndTag,"po-icon-calendar",dToC(dDatabase) + " - " + dToC(dDataFim)) PCPMonitorUtils():AdicionaTagMonitor(oDados["tags"],@nIndTag,"po-icon-bar-code",oFiltro["02_B8_PRODUTO"]) oEstHeader["font-weight"] := "bold" PCPMonitorUtils():AdicionaHeaderDetalhe("Lotes a Vencer do Produto " + oFiltro["02_B8_PRODUTO"],nIndHeader,"po-sm-12",oEstHeader:FromJson()) //Exemplo de query com filtros com uso de paginação considerando a exceção da exportação de resultado cQuery += " SELECT " cQuery += " SB8.B8_FILIAL, SB8.B8_QTDORI, SB8.B8_PRODUTO, SB8.B8_LOCAL, SB8.B8_DTVALID, " cQuery += " SB8.B8_SALDO, SB8.B8_LOTECTL, SB1.B1_DESC, SB8.B8_NUMLOTE, SB1.B1_UM " cQuery += " FROM "+RetSqlName("SB8")+" SB8 " cQuery += " LEFT JOIN "+RetSqlName("SB1")+" SB1 ON SB1.B1_FILIAL = '"+xFilial("SB1",oFiltro["01_B8_FILIAL"])+"' AND SB1.B1_COD = SB8.B8_PRODUTO AND SB1.D_E_L_E_T_ = ' ' " cQuery += " WHERE SB8.B8_FILIAL = '" + xFilial("SB8",oFiltro["01_B8_FILIAL"]) + "' " cQuery += " AND SB8.B8_PRODUTO = '"+oFiltro["02_B8_PRODUTO"]+"' " cQuery += " AND SB8.B8_DTVALID BETWEEN '"+DTOS(ddatabase)+"' AND '"+DTOS(dDataFim)+"' " cQuery += " AND SB8.B8_SALDO > 0 " cQuery += " AND SB8.D_E_L_E_T_ = ' ' " cQuery += " ORDER BY SB8.B8_FILIAL,SB8.B8_DTVALID,SB8.B8_LOTECTL " dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAlias,.F.,.F.) If nPagina > 1 nStart := ( (nPagina-1) * nTamPagina ) If nStart > 0 (cAlias)->(DbSkip(nStart)) EndIf EndIf While (cAlias)->(!Eof()) aAdd(oDados["items"], JsonObject():New()) nPos++ oDados["items"][nPos]["B8_FILIAL" ] := (cAlias)->B8_FILIAL oDados["items"][nPos]["B8_LOTECTL" ] := (cAlias)->B8_LOTECTL oDados["items"][nPos]["B8_NUMLOTE" ] := (cAlias)->B8_NUMLOTE oDados["items"][nPos]["B8_PRODUTO" ] := (cAlias)->B8_PRODUTO oDados["items"][nPos]["B1_DESC" ] := (cAlias)->B1_DESC oDados["items"][nPos]["B8_QTDORI" ] := (cAlias)->B8_QTDORI oDados["items"][nPos]["B1_UM" ] := (cAlias)->B1_UM oDados["items"][nPos]["B8_LOCAL" ] := (cAlias)->B8_LOCAL oDados["items"][nPos]["B8_DTVALID" ] := PCPMonitorUtils():FormataData((cAlias)->B8_DTVALID, 5) oDados["items"][nPos]["B8_SALDO" ] := (cAlias)->B8_SALDO (cAlias)->(dbSkip()) If !lExpResult .And. nPos >= nTamPagina Exit EndIf End oDados["hasNext"] := (cAlias)->(!Eof()) (cAlias)->(dbCloseArea()) cJsonRet := oDados:ToJson() FreeObj(oDados) FreeObj(oEstHeader) Return cJsonRet |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas