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.
...
Métodos que devem ser implementados na classe que herdar esta
...
Método que irá criar um chart (grafico) no dashboard, o nome desse método é dinâmico, deve ser de acordo com o card 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) |
...
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 |
...
Âncora | ||||
---|---|---|---|---|
|
Descrição
Método para definir a descrição completa de um card ou chart, deve ser utilizado dentro do metodo dinâmico que recebe o nome do card ou chart e recebe como parâmetro o card ou chart
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) |
...
Âncora | ||||
---|---|---|---|---|
|
Descrição
Método para definir o valor do card, deve ser utilizado dentro do método dinâmico que recebe o nome do card e recebe como parâmetro o card.
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) |
...
Âncora | ||||
---|---|---|---|---|
|
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
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) |
...
Âncora | ||||
---|---|---|---|---|
|
Descrição
Adiciona uma coluna que será utilizada para a estrutura de detalhes do card
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) |