# Relatório / Dashboard - customizar colunas da tabale de dados com Html, C#, CSS e Javascript O agilityflow permite customização através da Linguagem Html, CSS, Javascript e C# (csharp). O html do agilityflow é baseado no Razor do framework .Net, isso é, você pode além de customizar com HTML, utilizar código C# (razor) para dar mais flexibilidade e poder ao seu componente Html. ### Customizar a Tabela de dados (Datatable) Você pode utilizar tabela de dados nos Reports e/ou nos Dasboards. Estando na editção e customização de uma Tabela de dados, na barra de botões, clique na opção Customizar via Código, como na imagem abaixo:  Nessa área você poderá customizar o Javascript, CSS e o CSHTML (Razor C# + Html):  Nessa área podemos customizar toda a tabela de dados, como no exemplo abaixo.  Voltando a área de desenvolvimento, no menu de customização, teremos sempre 2 arquivos padrões: **CSS** e **Javascript**. O **CSS** é sempre colocado no topo da página, dentro da tag <HEAD> do Html O **Javascript** é sempre colocado no final da página, antes do fechamento do </Body> ### Customizar com CSS Todo código CSS da tabela de dados deve ser colocado na aba Style (CSS)  Nessa área, você pode criar customizações via linguagem CSS para toda a listagem e o seu uso é livre.
Levar em consideração o tratamento em CSS para a responsividade da plataforma em outros device, Mobile, Computador Desktop, Tablet, etc.
### Customizar com Javascript Todo código Javascript da datatable, deve ficar no arquivo Javascript.  ### Customizar com Html e/ou C# rie através do botão NOVO CSHTML um arquivo para cada coluna que incluímos na tabela de dados. Para isso, utilize o id da coluna como o nome do arquivo. Suas configurações devem estar como na imagem abaixo:  Antes de mostrar cada exemplo, abaixo descrevemos alguns métodos e propriedades disponíveis no contexto de cada customização de coluna, para que você consiga entender o que podemos fazer. #### Propriedade e Métodos C# disponíveis no contexto do CSHTML da Coluna O agilityflow disponibiliza uma biblioteca **C#** de contexto para a customização das colunas. Essa biblioteca está disponível no objeto "**ColumnContext**" e abaixo estão descritos as propriedades e métodos pré-programados para facilitar na utilização:Para utilizar qualquer método ou propriedade listadas abaixo, sempre utilizar antes a nomenclatura "ColumnContext.". Exemplo: **ColumnContext.Metodo()** ou **ColumnContext.Propriedade**
##### C# - Propriedadesint RowIndex {get;} | Retorna a posição da Linha na tabela, começando do 0 |
string GetText(string idColuna) | Retorna uma string com o **texto** da coluna passada no parâmetro |
string GetValue(string idColuna) | Retorna uma string com o **texto** da coluna passada no parâmetro |
int? GetInt(string idColuna) | Retorna o valor da coluna no tipo INT (inteiro), caso esse campo no formulário seja um número, se o valor for 10.000,99 Será retornado: 10000 |
decimal? GetDecimal(string idColuna) | Retorna o valor da coluna no tipo Decimal, caso esse campo no formulário seja um número, se o valor for 10.000,99 Será retornado: 10000.99 |
DateTime? GetDateTime(string idColuna) | Retorna o valor da coluna no tipo DateTime para valores que estão no formato de data dd/MM/yyyy ou dd/MM/yyyy hh:mm |
void SetCelColor(string color) | **Pinta o fundo da célula da coluna** Algumas cores já estão predefinidas seguindo padrão de tonalidade do agilityflow. Essas cores são: "red", "green", "yellow", "blue". Caso você julgue necessário você também pode utilizar cores no formato hexadecimal if(dt\_data\_e\_hora < DateTime.Now){ @ColumnContext.SetRowColor("red") //se em até 5 dias for ficar atrasado, coloca em amarelo a célula }else if(dt\_data\_e\_hora < DateTime.Now.AddDays(5)){ @ColumnContext.SetCelColor("yellow") } **importante usar o @ na frente** |
void SetRowColor(string color) | **Pinta o fundo da linha da linha** Algumas cores já estão predefinidas seguindo padrão de tonalidade do agilityflow. Essas cores são: "red", "green", "yellow", "blue". Caso você julgue necessário você também pode utilizar cores no formato hexadecimal if(dt\_data\_e\_hora < DateTime.Now){ @ColumnContext.SetRowColor("red") //se em até 5 dias for ficar atrasado, coloca em amarelo a célula }else if(dt\_data\_e\_hora < DateTime.Now.AddDays(5)){ @ColumnContext.SetCelColor("yellow") } **importante usar o @ na frente** |
void SetContextVariable(string key, string value) | Colocar uma variável e seu valor no contexto da listagem |
string GetContextVariable(string key) | Recupera o valor de uma variável que esteja no contexto da listagem |
string FormatDecimalToString(object numDecimal, string mascaraTipo = "dec2") | formata object 999999999.55 para o formato da mascara de acordo com o idioma. \- se for ingles, será 999,999,999.55 \- se for portugues, será 999.999.999,55 |
string FormatNumberToString\_EnglishFormat(object num, \[optional\]int? qtdCasasDecimais) | converte decimal para string, porém sempre a string vem no formato Inglês. coloca a a mesma qtd de casas decimais, caso o parâmetro qtdCasasDecimais estivar em branco |
string GetUsuarioLogadoNome() | retorna o nome do usuário logado |
string GetUsuarioLogadoPrimeiroNome() | retorna o primeiro nome do usuário logado |
string GetUsuarioLogadoPrimeiroESegundoNome() | retorna o primeiro e o segundo nome do usuário logado |
string GetUsuarioLogadoEmail() | retorna o e-mail do usuário logado |
Guid GetUsuarioLogadoId() | retorna o id do usuário logado |
CurrentLanguage.IsEnglish() | retorna true se for inglês |
CurrentLanguage.IsPortuguese() | retorna true se for português |
CurrentLanguage.IsSpanish() | returna true se for espanhol |
CurrentLanguage.GetIIF_TextFromCurrentLanguage(text_ptBR, text_ENG ,text_ESP) | dependendo do idioma, retorna o texto passado em 1 dos 3 parâmetros |
string GetUrlBase() | Retorna a URL base onde o agilityflow está instalado |
string GetEnvironmentVariable(string nomeDaVariavel) | Retorna o valor de uma variável de ambiente **Não é perimitir utilizar esse metodo nesse contexto** |
string GetEnvironmentVariable\_Text(string nomeDaVariavel) | Retorna o texto de uma variável de ambiente **Não é perimitir utilizar esse metodo nesse contexto** |
Button |  | ```pt ``` |
Small Text |  | ```pt
|
Tag Red |  | ```pt
|
Tag Outline Red |  | ```pt
|
Tag Yellow |  | ```pt
|
Tag Outline Yellow |  | ```pt
|
Tag Blue |  | ```pt
|
Tag Outline Blue |  | ```pt
|
Tag Green |  | ```pt
|
Tag Outline Green |  | ```pt
|
Tag gray |  | ```pt
|
Tag Outline gray |  | ```pt
|
Avatar |  | ```pt
|
Avatar |  | ```pt
|
Rating |  | ```pt
|
Rating |  | ```pt
|
Rating Red |  | ```pt
|
Rating Blue |  | ```pt
|
Rating Green |  | ```pt
|
Rating Gray |  | ```pt
|
Rating Ball |  | ```pt
|
Rating Ball |  | ```pt
|
Rating Ball Red |  | ```pt
|
Rating Ball Blue |  | ```pt
|
Rating Ball Green |  | ```pt
|
Rating Ball Gray |  | ```pt
|
Break Line | ```pt
``` | |
Line |  | ```pt
``` |
**Nome** | **ID** |
Data de criação | log\_data\_criacao |
Data de Alteração | log\_data\_alteracao |
Criado por | log\_usu\_criacao |
Alterado por | log\_usu\_alteracao |