Adiciona uma nova linha de informação em monitores do tipo texto.
Parâmetros
| Nome | Tipo | Descrição | Referência |
|---|---|---|---|
| aLinhas | Array | Array das linhas de informação do monitor de texto passado como referência para receber uma nova linha. | X |
| nIndice | Numérico | Indice para a posição ser adicionada no array. | X |
| cTexto | Caracter | Texto que será adicionado na corrente do monitor. (Poderão ser usadas tags html para formatação do texto) | |
| cClasse | Caracter | Classes com os estilos para as linhas. | |
| cEstilo | Caracter | Estilo para a linha. (Deve ser uma string no formato json) | |
| lAcessaDet | Lógico | Indica se poderá acessar os detalhes do monitor através do click na linha. | |
| cParamDet | Caracter | Parâmetro que será passado ao carregamento dos detalhes do monitor ao clicar na linha. |
Exemplo de Uso

Method BuscaDados(oFiltros, cTipo, cSubTipo) Class StatusLotesAVencer
Local aSemaforo := StrTokArr(Replace(oFiltros["03_SEMAFORO"],",","."),";")
Local cAliasQry := GetNextAlias()
Local cCodProd := oFiltros["02_B8_PRODUTO"]
Local cJsonDados := ""
Local cQuery := ""
Local cTxtPrc := ""
Local cTxtSec := ""
Local cUnMedida := ""
Local dFilterDat := PCPMonitorUtils():RetornaPeriodoFinal(oFiltros["05_TIPOPERIODO"],ddatabase,cValtoChar(oFiltros["06_PERIODO"]))
Local nIndLinha := 0
Local nQuant := 0
Local nValSemaf1 := Val(aSemaforo[1])
Local nValSemaf2 := Val(aSemaforo[2])
Local nLotes := 0
Local nSaldo := 0
Local oJsonRet := JsonObject():New()
Local oStylePrc := JsonObject():New()
Local oStyleSec := JsonObject():New()
oJsonRet["corTitulo"] := "white"
oJsonRet["alturaMinimaWidget"] := "350px"
oJsonRet["alturaMaximaWidget"] := "500px"
oJsonRet["linhas"] := {}
oJsonRet["tags"] := {}
oFiltros["01_B8_FILIAL"] := PadR(oFiltros["01_B8_FILIAL"], FWSizeFilial())
cUnMedida := Posicione("SB1",1,xFilial("SB1",oFiltros["01_B8_FILIAL"])+cCodProd,"B1_UM")
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
cTxtPrc := cValToChar(nLotes)
cTxtSec := cValToChar(nSaldo) + " " + cUnMedida
Else
nQuant := nSaldo
cTxtPrc := cValToChar(nSaldo)
cTxtSec := cValToChar(nLotes) + IIF(nLotes > 1, " Lotes", " Lote")
EndIf
If nLotes > 0
oStyleSec["color"] := "white"
oJSonRet["corFundo"] := IIF(nQuant < nValSemaf1,"rgb(38,186,65)",IIF(nQuant < nValSemaf2,"rgb(255,207,1)","rgb(245,0,49)"))
If oJSonRet["corFundo"] == "rgb(255,207,1)"
oStyleSec["color"] := "black"
oJsonRet["corTitulo"] := "black"
EndIf
oStylePrc["font-weight"] := "bold"
oStylePrc["font-size"] := "120px"
oStylePrc["line-height"] := "130px"
oStylePrc["text-align"] := "center"
oStylePrc["color"] := oStyleSec["color"]
oStylePrc["cursor"] := "pointer"
PCPMonitorUtils():AdicionaLinhaInformacao(oJsonRet["linhas"],@nIndLinha,cTxtPrc,"po-sm-12",oStylePrc:ToJson(),.T.)
PCPMonitorUtils():AdicionaLinhaInformacao(oJsonRet["linhas"],@nIndLinha,cTxtSec,"po-font-title po-text-center po-sm-12 po-pt-1 bold-text",oStyleSec:ToJson())
Else
oJsonRet["corFundo"] := "rgb(38,186,65)"
PCPMonitorUtils():AdicionaLinhaInformacao(oJsonRet["linhas"],@nIndLinha,"Nenhum lote do produto vencerá no período selecionado.","po-font-text-large-bold po-text-center po-sm-12 po-pt-4",oStyleSec:ToJson())
EndIf
cJsonDados := oJsonRet:toJson()
FwFreeArray(aSemaforo)
FreeObj(oJsonRet)
FwFreeObj(oStylePrc)
FwFreeObj(oStyleSec)
Return cJsonDados |