Histórico da Página
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Method BuscaDados(oFiltros, cTipo, cSubTipo) Class StatusLotesAVencer Local aSemaforo := StrTokArr(Replace(oFiltros["03_SEMAFORO"],",","."),";") Local cAliasQry := GetNextAlias() Local cCodProd := oFiltros["02_B8_PRODUTO"] Local cLabel := "" Local cJsonDados := "" Local cQuery := "" Local cUnMedida := "" Local cValorFim := "" Local cValSemaf1 := aSemaforo[1] Local cValSemaf2 := aSemaforo[2] Local dFilterDat := PCPMonitorUtils():RetornaPeriodoFinal(oFiltros["05_TIPOPERIODO"],ddatabase,cValtoChar(oFiltros["06_PERIODO"])) Local nLotes := 0 Local nPos := 0 Local nQuant := 0 Local nSaldo := 0 Local nValorFim := 0 Local nValSemaf1 := Val(cValSemaf1) Local nValSemaf2 := Val(cValSemaf2) Local oJsonRet := JsonObject():New() Local oGauge := PCPMonitorGauge():New() //Propriedades que devem ser retornadas para monitores do tipo gráfico //Propriedades que devem ser retornadas para monitores do tipo gráfico oJsonRet["corTitulo"] := "black" //Cor do título do monitor. Se não for informada, assumirá o valor #2590aa oJsonRet["alturaMinimaWidget"] := "350px" //Altura mínima do monitor. Se não for informada, assumirá o valor 350px oJsonRet["alturaMaximaWidget"] := "500px" //Altura máxima do monitor. Se não for informada, assumirá o valor 350px oJsonRet["tags"] := {} //Array de objetos json com as tags que serão visualizadas no monitor oJsonRet["series"] := {} //Array de objetos json com as séries do gráfico. Será apenas inicializado para o gráfico do tipo velocímetro. oJsonRet["categorias"] := {} //Array de strings com as categorias do gráfico. Será apenas inicializado para o gráfico do tipo velocímetro. oFiltros["01_B8_FILIAL"] := PadR(oFiltros["01_B8_FILIAL"], FWSizeFilial()) cUnMedida := Posicione("SB1",1,xFilial("SB1",oFiltros["01_B8_FILIAL"])+cCodProd,"B1_UM") //Query com os filtros para buscar as informações e apresentar no monitor cQuery += " SELECT " cQuery += " SB8.B8_PRODUTO CODIGO_PRODUTO, " cQuery += " SUM(SB8.B8_SALDO) SALDO, " cQuery += " COUNT(SB8.R_E_C_N_O_) QUANTIDADE_LOTES " cQuery += " FROM "+RetSqlName("SB8")+" SB8 " cQuery += " WHERE SB8.B8_FILIAL = '" + xFilial("SB8",oFiltros["01_B8_FILIAL"]) + "' " cQuery += " AND SB8.B8_PRODUTO = '" + cCodProd + "' " cQuery += " AND SB8.B8_DTVALID BETWEEN '"+DTOS(ddatabase)+"' AND '"+DTOS(dFilterDat)+"' " cQuery += " AND SB8.B8_SALDO > 0 " cQuery += " AND SB8.D_E_L_E_T_ = ' ' " cQuery += " GROUP BY SB8.B8_FILIAL,SB8.B8_PRODUTO " dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasQry,.F.,.F.) If (cAliasQry)->(!Eof()) cCodProd := AllTrim((cAliasQry)->CODIGO_PRODUTO) nLotes := (cAliasQry)->QUANTIDADE_LOTES nSaldo := (cAliasQry)->SALDO End (cAliasQry)->(dbCloseArea()) If oFiltros["04_TIPOSEMAFORO"] == "L" nQuant := nLotes cLabel := IIF(nLotes > 1, "Lotes", "Lote") Else nQuant := nSaldo cLabel := cUnMedida EndIf If nQuant > nValSemaf2 nValorFim := nQuant + (nValSemaf2 - nValSemaf1) Else nValorFim := nValSemaf2 + (nValSemaf2 - nValSemaf1) EndIf cValorFim := cValToChar(nValorFim) //Especifica as propriedades do gráfico tipo velocímetro oGauge:SetMaxValue(nValorFim) oGauge:SetValue(nQuant) oGauge:SetValueStyle("color",IIF(nQuant < nValSemaf1,"rgb(38,186,65)",IIF(nQuant < nValSemaf2,"rgb(255,207,1)","rgb(245,0,49)"))) oGauge:SetValueStyle("font-weight","bold") oGauge:SetLabel(cLabel) oGauge:SetLabelStyle("font-weight","bold") oGauge:SetThreshold("0","rgb(38,186,65)") oGauge:SetThreshold(cValSemaf1,"rgb(238,173,45)") oGauge:SetThreshold(cValSemaf2,"rgb(245,0,49)") If Val(cValSemaf1) > 0 oGauge:SetMarker("0") Endif oGauge:SetMarker(cValSemaf1) oGauge:SetMarker(cValSemaf2) oGauge:SetMarker(cValorFim) //Atribui o objeto json do velocímetro ao objeto json de retorno do método oJsonRet["gauge"] := oGauge:GetJsonObject() //Adiciona tags ao monitor PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPos,"po-icon-calendar",cValToChar(ddatabase) + " - " + cValToChar(dFilterDat)) PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPos,"po-icon-bar-code",cCodProd) If cTipo == "chart" PCPMonitorUtils():AdicionaTagMonitor(oJsonRet["tags"],@nPos,"po-icon-star-filled",IIF(oFiltros["04_TIPOSEMAFORO"] == "L",cValToChar(nSaldo) + " " + cUnMedida,cValToChar(nLotes) + IIF(nLotes > 1, " Lotes", " Lote"))) EndIf cJsonDados := oJsonRet:toJson() FwFreeArray(aSemaforo) FreeObj(oGauge) FreeObj(oJsonRet) Return cJsonDados |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas