Histórico da Página
Classe auxiliar para criação dinâmica de cards e charts (gráficos) para telas genéricas de dashboard, para ser utilizada em aplicativos angular POUI
Essa classe deve ser utilizada como herança da sua classe que terá os cards e charts
Essa classe por padrão herdas herda a classe genérica de adapter FwAdapterBaseV2, portanto podem ser utilizados os métodos disponíveis na classe pai também.
classe disponível a partir da lib 20240115
Métodos disponíveis:
- addCard()
- addChart()
- setOrderDefault()
- card
- chart
Métodos que devem ser implementados na classe que herdar esta
Exemplos
...
addCard Âncoraaddcard addcard
addcard | |
addcard |
...
Método que irá criar um chart (grafico) no dashboard, o nome desse método é dinâmico, deve ser de acordo com o card chart que foi criado no new da classe.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
oChart | Objeto | Objeto do tipo totvs.framework.adapter.dashboard.chart |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Method new(cVerb as character) as object Class home _Super:new( cVerb, .T. ) // graficos disponiveis na home do dashboard de privilégio ::addChart("group_rules", STR0009 ) //"Regra de grupo do usuário" Return self //------------------------------------------------------------------- /*/{Protheus.doc} group_rules definições referente ao chart group_rules @param, oCard, objeto de chart a ser criado. @param, jResponse, json de retorno da api até o momento @return objeto de chart passado por parametro @author Caio Lima @since 15/12/2023 //-----------------------------------------------------------------*/ Method group_rules(oChart as object, jResponse as json) as object Class home Local cSql as character Local cAlias as character Local cAliasBk as character oChart:setDescription(STR0029) //"Total de usuários por regra de acesso do grupo (prioriza, desconsidera ou soma)" oChart:addColumn("user_id", STR0011, "string", .T.) //"Id do usuário" oChart:addColumn("user_code", STR0012, "string", .T.) //"Código do usuário" oChart:addColumn("name", STR0013, "string", .T.) //"Nome do usuário" oChart:addColumn("group_rule", STR0030, "string", .T.) //"Regra de acesso do grupo" // a api de detalhes desse grafico será a mesma referente a api de total de usuários, // apenas mostrando a coluna de regra de acesso do grupo a mais oChart:setApiDetail("/api/framework/dashboard/detail/totvs.framework.adapter.privileges.home/total_users") cAliasBk := Alias() cSql := ::group_RulesQuery("total") cAlias := FwExecCachedQuery():OpenQuery(cSql,,,,"30","10") oChart:addDataChart(STR0032, (cAlias)->PRIORIZA, STR0031, "color-03") //"Usuários que priorizam os acessos do grupo" //"Prioriza" oChart:addDataChart(STR0033, (cAlias)->DESCONSIDERA, STR0034, "color-05") //"Desconsidera" //"Usuários que desconsideram os acessos do grupo" oChart:addDataChart(STR0036, (cAlias)->soma, STR0035, "color-07") //"Usuários que somam os acessos do grupo" //"Soma" (cAlias)->(DbCloseArea()) FWRestAlias(cAliasBk) Return(oChart) |
...
Método para definir a query que será utilizada nos detalhes de uma card ou chart, o nome desse método é dinâmico, deve ser de acordo com o card que foi criado no new da classe.
...
Método para definir os campos que serão utilizados nos detalhes de uma card ou chart, o nome desse método é dinâmico, deve ser de acordo com o card que foi criado no new da classe.
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Method new(cVerb as character) as object Class home _Super:new( cVerb, .T. ) // Cards disponiveis na home do dashboard de privilégio ::addCard("total_users", STR0001 ) //"Total de usuários" Return self //----------------------------------------------------------------------------- /*/{Protheus.doc} addFieldsTotal_Users Função para geração do mapa de campos @author totvs @since 11/12/2023 @version 1.0 /*/ //----------------------------------------------------------------------------- Method addFieldsTotal_Users() Class home ::addMapFields( 'user_id' , 'USR_ID' , .T., .T., { 'USR_ID', 'C', 06, 0 },,.T. ) ::addMapFields( 'user_code' , 'USR_CODIGO' , .T., .T., { 'USR_CODIGO', 'C', 25, 0 },,.T. ) ::addMapFields( 'name' , 'USR_NOME' , .T., .F., { 'USR_NOME', 'C', 30, 0 },,.T. ) ::addMapFields( 'group_rule' , 'group_rule' , .T., .F., { 'group_rule', 'C', 12, 0 },,.T. ) ::setOrderDefault('user_id') Return |
...
setDescription Âncora setDescription setDescription
setDescription | |
setDescription |
Descrição
Método para definir a descrição completa de um card ou chart, deve ser utilizado dentro do método dinâmico que recebe o nome da propriedade e recebe como parâmetro o mesmo
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cDescription | Carácter | descrição a ser definida |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//-------------------------------------------------------------------
/*/{Protheus.doc} total_users
definições referente ao card total_users
@param, oCard, objeto de card a ser criado.
@return objeto de card passado por parametro
@author Caio Lima
@since 15/12/2023
//-----------------------------------------------------------------*/
Method total_users(oCard as object) as object Class home
oCard:setDescription(STR0010) //"Total de usuários existente no protheus"
Return(oCard) |
...
setValue Âncora setValue setValue
setValue | |
setValue |
Descrição
Método para definir o valor do card, deve ser utilizado dentro do método dinâmico que recebe o nome da propriedade e recebe como parâmetro o mesmo
Disponível apenas para o card
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nValue | numerico | Valor a ser definido para o card |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//-------------------------------------------------------------------
/*/{Protheus.doc} total_users
definições referente ao card total_users
@param, oCard, objeto de card a ser criado.
@return objeto de card passado por parametro
@author Caio Lima
@since 15/12/2023
//-----------------------------------------------------------------*/
Method total_users(oCard as object) as object Class home
Local cSql as character
Local nValue as numeric
cSql := ::total_UsersQuery("total")
nValue := FwExecCachedQuery():ExecScalar(cSql, "QTD", "30", "10")
oCard:setValue(nValue)
Return(oCard) |
...
setApiDetail Âncora setApiDetail setApiDetail
setApiDetail | |
setApiDetail |
Descrição
Método para definir a api que será utilizada para os detalhes de um card ou chart
caso não seja definido será utilizado o default que é
/api/framework/dashboard/detail/:cDashClient/:cWich
caso seja definido uma api detail diferente não é necessário implementar os métodos addfields e query referente.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cApiDetail | Carácter | caminho para a api de detalhes de um card ou chart |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//-------------------------------------------------------------------
/*/{Protheus.doc} total_users
definições referente ao card total_users
@param, oCard, objeto de card a ser criado.
@return objeto de card passado por parametro
@author Caio Lima
@since 15/12/2023
//-----------------------------------------------------------------*/
Method total_users(oCard as object) as object Class home
// utilizo a api de detalhes já existente no dashboard de saneamento.
oCard:setApiDetail("/api/framework/privileges/sanitation/usersWithoutPrivileges")
Return(oCard) |
...
addColumn Âncora addColumn addColumn
addColumn | |
addColumn |
Descrição
Adiciona uma coluna que será utilizada para a estrutura de detalhes do card/chart
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cProperty | caractere | nome da coluna que virá na api de detalhes |
cLabel | caractere | titulo da coluna |
cType | caractere | tipo da coluna |
lVisible | logico | indica se a coluna será visivel na grid de detalhes |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//-------------------------------------------------------------------
/*/{Protheus.doc} total_users
definições referente ao card total_users
@param, oCard, objeto de card a ser criado.
@return objeto de card passado por parametro
@author Caio Lima
@since 15/12/2023
//-----------------------------------------------------------------*/
Method total_users(oCard as object) as object Class home
oCard:addColumn("user_id", STR0011, "string", .T.) //"Id do usuário"
oCard:addColumn("user_code", STR0012, "string", .T.) //"Código do usuário"
oCard:addColumn("name", STR0013, "string", .T.) //"Nome do usuário"
Return(oCard) |
...
addDataChart Âncora addDataChart addDataChart
addDataChart | |
addDataChart |
Descrição
Adiciona uma nova dimensão no gráfico a ser construído
Método disponível apenas para objeto do tipo chart
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cLabel | caractere | titulo da dimensão |
nValue | numerico | valor da dimensão |
cToolTip | caractere | Tooltip da dimensão, exibida no mousehover no grafico |
cColor | caractere | cor da dimensão, para maiores informações consultar documentação de chart do POUI |
Retorno nil
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//-------------------------------------------------------------------
/*/{Protheus.doc} total_users
definições referente ao chart total_users
@param, oChart, objeto de chart a ser criado.
@return objeto de chart passado por parametro
@author Caio Lima
@since 15/12/2023
//-----------------------------------------------------------------*/
Method total_users(oChart as object) as object Class home
Local cSql as character
Local cAlias as character
Local cAliasBk as character
cAliasBk := Alias()
cSql := ::group_RulesQuery("total")
cAlias := FwExecCachedQuery():OpenQuery(cSql,,,,"30","10")
oChart:addDataChart(STR0032, (cAlias)->PRIORIZA, STR0031, "color-03") //"Usuários que priorizam os acessos do grupo" //"Prioriza"
oChart:addDataChart(STR0033, (cAlias)->DESCONSIDERA, STR0034, "color-05") //"Desconsidera" //"Usuários que desconsideram os acessos do grupo"
oChart:addDataChart(STR0036, (cAlias)->soma, STR0035, "color-07") //"Usuários que somam os acessos do grupo" //"Soma"
(cAlias)->(DbCloseArea())
FWRestAlias(cAliasBk)
Return(oCard) |
Exemplo:
Âncora | ||||
---|---|---|---|---|
|