Fornece um objeto utilizado na construção de Painéis ou Gráficos.
Este objeto pode ser utilizado na construção de serviços REST utilizados no Dashboard.
CorePanel():New()
Método construtor da classe.
Local oCorePanel := CorePanel():New() |
CorePanel():SetFields(aCampos)
Método que define os campos que serão retornados no Json do serviço.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aCampos | Array | Array que contém o De / Para dos campos que serão apresentados no serviço | X |
Local oCorePanel := CorePanel():New() Local aCampos := {} Aadd(aCampos, {“code”, “A1_CODIGO”}) Aadd(aCampos, {“name”, “A1_NOME”}) oCorePanel:SetFields(aCampos) |
CorePanel():SetQuery(cQuery)
Método que define a query que será utilizada no serviço.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cQuery | Caractere | Recebe a query que será executada. | X |
Local oCorePanel := CorePanel():New() Local cQuery := “” cQuery := “ SELECT A1_COD, A1_NOME FROM " + RetSqlName("SA1") + " SA1 ” oCorePanel:SetQuery(cQuery) |
CorePanel():SetWhere(cWhere)
Método que define a clausula where que será no método SetQuery().
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cWhere | Caractere | Where que será utilizado na query enviada para o método SetQuery() |
Local oCorePanel := CorePanel():New() Local cQuery := “ SELECT A1_COD, A1_NOME FROM "+ RetSqlName("SA1") + " SA1 ” Local cWhere := “” oCorePanel:SetQuery(cQuery) cWhere := “ SA1.D_E_L_E_T = ‘ ‘ ” oCorePanel:SetWhere(cWhere) |
CorePanel():SetIndexKey(cIndexFather)
Método que atribui a ordenação do Alias principal.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cIndexFather | Caractere | Ordem utilizada no alias |
Local oCorePanel := CorePanel():New() //Ordenação Crescente (ASC) oCorePanel:SetIndexKey("A1_NOME") //Ordenação Decrescente (DESC) oCorePanel:SetIndexKey("-A1_NOME") |
CorePanel():SetGroupBy(cGroup)
Método responsável por definir um agrupador na query utilizada no serviço.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cGroup | Caractere | Campos que devem compor o agrupador | X |
Local oCorePanel := CorePanel():New() Local cQuery := " SELECT tbl.CAMPO1, tbl.CAMPO2, COUNT(1) COUNT FROM TABLE tbl " Local cWhere := " WHERE FILIAL = 'valor' AND D_E_L_E_T_ = ' ' " oCorePanel:SetQuery(cQuery) oCorePanel:SetWhere(cWhere) oCorePanel:SetGroupBy(" tbl.CAMPO1, tbl.CAMPO2 ") oCorePanel:SetIndexKey("tbl.CAMPO1") |
CorePanel():SetPage(nPage)
Método que atribui o número da página em que o usuário vai navegar.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
nPage | Numérico | Número da página que será apresentada para o usuário | 1 |
Local oCorePanel := CorePanel():New() Local nPage := 8 oCorePanel:SetPage(nPage) |
CorePanel():SetPageSize(nPageSize)
Método que atribui a quantidade máxima de registros que serão exibidos por página.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
nPageSize | Numérico | Quantidade máxima de registros apresentados por página para o usuário. | 10 |
Local oCorePanel := CorePanel():New() Local nPageSize := 20 oCorePanel:SetPageSize(nPageSize) |
CorePanel():DefFields(lConvProt, cField)
Método que efetua a conversão entre campos do Objeto e Protheus
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
lConvProt | Lógico | Define se deve converter os campos para padrão Protheus | .T. | ||
cField | Caractere | Campo que será convertido |
Local oCorePanel := CorePanel():New() oCorePanel:DefFields(.T.,"CAMPO") |
CorePanel():GetDataType(lConvProt, cField)
Retorna o tipo do dado de um determinado campo.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
lConvProt | Lógico | Define se deve converter os campos para padrão Protheus | .T. | ||
cField | Caracteres | Campo que será convertido |
Local oCorePanel := CorePanel():New() Local dData If oCorePanel:GetDataType(.T.,"CAMPO") == "D" dData := Date() Endif |
CorePanel():SetFieldsFilt(cFields)
Método que define quais campos serão retornados pelo serviço.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cFields | Caractere | Campos que serão retornados no JSON. | X |
Local oCorePanel := CorePanel():New() Local cFields := "order, totValue, product" oCorePanel:SetFieldsFilt(cFields) |
CorePanel():ToObjectJson()
Método que retorna o JSON serializado.
Local oCorePanel := CorePanel():New() Local lRet := .T. Local cError := “Erro na requisição” If lRet Self:SetResponse( oCorePanel:ToObjectJson()) Else cError := oCorePanel:GetJsonError() SetRestFault( 500, EncodeUtf8(cError) ) EndIf |
CorePanel():ToSingleObject()
Método que retorna um JSON serializado para apenas um objeto.
Utilizado em requisições do tipo GET que retornam informações de apenas um registro.
Local oCorePanel := CorePanel():New() Local lRet := .T. Local cError := “Erro na requisição” If lRet Self:SetResponse(oCorePanel:ToSingleObject()) Else cError := oCorePanel:GetJsonError() SetRestFault( 500, EncodeUtf8(cError) ) EndIf |
CorePanel():GetJsonObject()
Método que retorna o objeto JSON da classe
Local oCorePanel := CorePanel():New() Local oJson oJson:= oCorePanel:GetJsonObject() If oJson['items'] != Nil ... Endif |
CorePanel():SetApiQstring(aQueryString)
Método que define os campos (Retornados pelo Json), page (página que será apresentada) e pagesize (Quantidade máxima de registros por página) e filtros.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aQueryString | Array | Recebe o filtro a ser utilizado quando retornado o Json |
Local oCorePanel := CorePanel():New() Local aQueryString := {} aAdd(aQueryString, {“fields” , “order, totValue” }) aAdd(aQueryString, {“page” , 10 }) aAdd(aQueryString, {“pagesize” , 5 }) oCorePanel:SetApiQString(aQueryString) |
CorePanel():SetApiFilter(aFilter)
Método que atribui um filtro de pesquisa.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aFilter | Array | Array com expressões de filtro que serão utilizadas | X |
Local oCorePanel := CorePanel():New() Local aFilter := {} aAdd(aFilter, {“A1_COD = '000001'”}) oCorePanel:SetApiFilter(aFilter) |
CorePanel():GetApiFilter()
Método que retorna o filtro de pesquisa.
Local oCorePanel := CorePanel():New() oCorePanel:GetApiFilter() |
CorePanel():BuildJson()
Método que responsável por construir o objeto JSON.
Local oCorePanel := CorePanel():New() Self:SetContentType("application/json") oCorePanel:SetQuery(cQuery) oCorePanel:SetWhere(cWhere) oCorePanel:SetFields(aCampos) oCorePanel:SetApiQstring(aQueryString) oCorePanel:BuildJson() |
CorePanel():SetJson(lHasNext, aItems)
Método que responsável por atribuir um objeto JSON, de acordo com o contrato estabelecido pela TOTVS, contento o [items] e o [hasNext].
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
lHasNext | Lógico | Indica se o objeto possui próxima página. | .T. | ||
aItems | Array | Array com os valores do objeto. |
Local aItems := {} Local lHasNext := .T. Local oCorePanel := CorePanel():New() Local oItem := JsonObject():New() If (cTemp)->(Eof()) lHasnext := .F. EndIf aAdd(aItems, oItem) oCorePanel:SetJson(lHasNext, aItems) |
CorePanel():SetTable(cAlias)
Método que recebe o alias que será responsável pela geração do JSON.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cAlias | Caractere | Alias recebido para a geração do JSON. | X |
Local oCorePanel := CorePanel():New() Local cAlias := GetNextArea() oCorePanel:SetTable(cAlias) |
CorePanel():SetUpsertData(cAlias, cIndex, cBody)
Método que efetua a inclusão ou alteração de registros.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cAlias | Caractere | Alias recebido para a geração do JSON. | X | ||
cIndex | Caractere | Índice utilizado na busca. | |||
cBody | Caractere | Json recebido no Body da mensagem. | X |
Local oCorePanel := CorePanel():New() If oCorePanel:SetUpsertData(cAlias, Nil, cBody) Self:SetResponse( EncodeUtf8("Registro incluído com sucesso")) Else SetRestFault( 500, EncodeUtf8("Falha ao converter o arquivo.") ) Endif |
CorePanel():Destroy()
Método responsável por destruir o objeto.
Local oCorePanel := CorePanel():New() If oCorePanel:SetUpsertData(cAlias, Nil, cBody) Self:SetResponse( EncodeUtf8("Registro incluído com sucesso")) Else SetRestFault( 500, EncodeUtf8("Falha ao converter o arquivo.") ) Endif oCorePanel:Destroy() |
CorePanel():SetPOHeader(aFields)
Método responsável por retornar um Array conforme esperado na propriedade p-columns do componente Table da biblioteca de componentes PO-UI
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aFields | Array | Array de até quatro dimensões com os dados: aFields[n, 1] = Property aFields[n, 2] = Label - Descrição apresentada na tabela. aFields[n, 3] = Determina se a propriedade Action possui um link para o próximo nivel da visão. aFields[n, 3] = Formato | X |
Local aFields := {} Local aItems := {} Local oResponse := JsonObject():New() Local oCorePanel := CorePanel():New() aAdd(aFields, { "A1_COD" , "Código" ,"Link" }) aAdd(aFields, { "A1_LOJA" , "Loja" }) aAdd(aFields, { "A1_NOME" , "Nome" }) aAdd(aFields, { "total" , "Total Faturado" }) aItems := oCorePanel:SetPOHeader(aFields) oResponse["items"] := aItems Self:SetResponse( EncodeUtf8(oResponse:ToJson())) |
CorePanel():SetPOCombo(aOptions)
Método responsável por retornar um Array conforme esperado na propriedade p-options do componente Combo da biblioteca de componentes PO-UI.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aOptions | Array | Array de duas dimensões com as seguintes informações: aOptions[n, 1] = Valor (Value) aOptions[n, 2] = Rotulo (Label) | X |
Local oCorePanel := CorePanel():New() Local aOptions := {} aAdd(aOptions, {"phone" ,"Telefono" }) aAdd(aOptions, {"cellPhone" ,"Celular" }) oCorePanel:SetPOCombo(aOptions) |
CorePanel():SetPOForm(cDivider, cProperty, cGridColumns, cLabel, lRequired, cType, aOptions, loptionsMulti)
Método responsável por construir um Formulário utilizando como base o componente DynamicForm do da biblioteca da PO-UI.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
cDivider | Caractere | Cria uma divisória entre os campos, utilizando o nome definido na propriedade cDivider. | |||
cProperty | Caractere | Nome da Propriedade. | |||
cGridColumns | Caractere | Número de Colunas Ocupado pelo Campo. | |||
cLabel | Caractere | Rotulo/Label do Campo. | |||
lRequired | Lógico | Define se o campo é obrigatório. | |||
cType | Caractere | Tipo do Campo. | |||
aOptions | Array | Lista de opções do campo. | |||
loptionsMulti | Caractere | Define se o campo é MultSelect. |
sim
Local oResponse := JsonObject():New() Local oCorePanel := CorePanel():New() oCorePanel:SetPOForm("Tipo de Gráfico", "graphictype" , 6 , "Tipo de Gráfico" , .T., "string", oCorePanel:SetPOCombo({{"pie","Pizza"},{"polarArea","Radar"}})) oCorePanel:SetPOForm("Filtros" , "typesearchcombo" , 12 , "Tipo de Pesquisa" , .T., "string", oCorePanel:SetPOCombo({{"mensal","Mensal"},{"anual","Anual"}})) oCorePanel:SetPOForm("" , "datadereferencia", 6 , "Data de Referência" , .T., "date") oResponse := oCorePanel:GetPOForm() Self:SetResponse( EncodeUtf8(oResponse:ToJson())) |
CorePanel():GetPOForm()
Método responsável por retornar o Formulário, construído através do método SetPOForm.
Local oResponse := JsonObject():New() Local oCorePanel := CorePanel():New() oCorePanel:SetPOForm("Tipo de Gráfico", "graphictype" , 6 , "Tipo de Gráfico" , .T., "string", oCorePanel:SetPOCombo({{"pie","Pizza"},{"polarArea","Radar"}})) oCorePanel:SetPOForm("Filtros" , "typesearchcombo" , 12 , "Tipo de Pesquisa" , .T., "string", oCorePanel:SetPOCombo({{"mensal","Mensal"},{"anual","Anual"}})) oCorePanel:SetPOForm("" , "datadereferencia", 6 , "Data de Referência" , .T., "date") oResponse := oCorePanel:GetPOForm() Self:SetResponse( EncodeUtf8(oResponse:ToJson())) |
CorePanel():SetGraphInfo(aDados, cLegenda, cTipo, cBgColor, lBackGround, lDrillDown)
Método responsável por adicionar linhas e/ou colunas em um Gráfico de Barra ou Linha.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aDados | Caractere | Cria uma divisória entre os campos, utilizando o nome definido na propriedade cDivider. | X | ||
cLegenda | Caractere | Nome da Propriedade. | X | ||
cTipo | Caractere | Número de Colunas Ocupado pelo Campo. | |||
cBgColor | Caractere | Rotulo/Label do Campo. | |||
lBackGround | Lógico | Define se o campo é obrigatório. | .F. | ||
lDrillDown | Caractere | Tipo do Campo. | .T. |
Local oCorePanel := CorePanel():New() Local aHeader := {"2019","2020","2021"} Local aData1 := { Randomize(1,99), Randomize(1,99), Randomize(1,99) } Local aData2 := { Randomize(1,99), Randomize(1,99), Randomize(1,99) } Local aSaldo := {} Local nSaldo := 0 oCorePanel:SetGraphInfo( aData1, 'Vendedor 01' ) oCorePanel:SetGraphInfo( aData2, 'Vendedor 02' ) nSaldo := aData1[1] + aData2[1] aAdd(aSaldo, nSaldo) nSaldo := aData1[2] + aData2[2] aAdd(aSaldo, nSaldo) nSaldo := aData1[3] + aData2[3] aAdd(aSaldo, nSaldo) oCorePanel:SetGraphInfo( aSaldo, "Média", "line", "rgba(255,240,210,0.0)", .F., .F.) |
CorePanel():GetGraphInfo()
Método responsável por retornar todos os gráficos adicionados através do método SetGraphInfo.
Local aGraphic := {} Local oCorePanel := CorePanel():New() oCorePanel:SetGraphInfo( aSaldo, "Média", "line", "rgba(23,132,175,0.59)", .F., .F.) aGraphic := oCorePanel:GetGraphInfo() |
CorePanel():SetGraphic( aLegenda, aDados, lCurrency, cType, cTitle ) Class CorePanel
Método responsável por adicionar linhas e/ou colunas em um Gráfico de Barra ou Linha.
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aLegenda | Array | Legendas apresentadas no Gráfico | X | ||
aDados | Array | Dados impressos no Gráfico. Observação: Para gráficos do tipo barra/linha, pode se usar o próprio GetGraphInfo | |||
lCurrency | Lógico | Informa se a máscara retornada será ou não do tipo moeda | .F. | ||
cType | Caractere | Tipo de Gráfico que será retornado. | |||
cTitle | Caractere | Título apresentado no Gráfico. |
Local oCorePanel := CorePanel():New() Local aLegenda := {"Minha Legenda"} Local aDados := {} Local nValor := 0 For nLoop := 1 To 10 nValor += Randomize(1,99) Next nLoop aDados := { nValor } oCorePanel:SetGraphic(aLegenda, aDados , .T.,,"Titulo do Grafico") |