> For the complete documentation index, see [llms.txt](https://wedocs.gitbook.io/wedocs-5.1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wedocs.gitbook.io/wedocs-5.1/wedocs-5.0-es_es/cliente-desktop/recursos-extras-de-dashboards/formatacao.md).

# Formateo

## Componentes - Opciones Generales adicionales

Weknow posee diversas opciones que se repiten en sus componentes durante la creación y la edición. Este comportamiento genérico de la herramienta permite una mejor asimilación por parte del usuario final y crea una identidad para el sistema, tornando la experiencia de uso más agradable.

A continuación, se listan (en tópicos) las opciones, herramientas y funciones compartidas entre la mayoría o todos los componentes:

## Edición de componentes

Si desea *alterar un componente de un dashboard*, basta con hacer clic en el botón “*...*” también presente al posicionar el mouse en la barra superior del componente, en el canto superior izquierdo, y hacer clic en *Editar*:

![](/files/DKwTDAEAL8id8efwnaR0)

## Formato de Valores

Todos los campos en Weknow son automáticamente atribuidos a un formato de acuerdo con su tipo de datos en la base de datos. Sin embargo, esta configuración puede ser alterada a través de la opción *<mark style="color:blue;">Formato</mark>*.

Ella aparece en todos los componentes y sirve para configurar los resultados de los campos seleccionados de acuerdo con sus preferencias. Cada formato de valores posee sus características que pueden ser alteradas, y en la secuencia tenemos una lista de ejemplos de los formatos y sus características disponibles para alteración:

### Texto

* Prefijos, Sufijos y valor en caso de resultados Nulos;
* Tamaño Máximo para el campo, pudiendo cortar o no palabras;
* Remover espacios en Blanco;
* Caixa (*Caps Lock*) para todo el texto, para la primera letra o aún para la primera letra de cada palabra.

  <div align="left"><img src="/files/v4vidFLD8JIcae5fdh6d" alt=""></div>

### Número

* Prefijos, Sufijos y valor en caso de resultados Nulos;
* Separadores de millar y decimales;
* Nº de casas decimales y forzar para colocar aún no existiendo;
* Tamaño Máximo para el campo;
* Multiplicadores, para esconder los ceros en caso de valores muy altos o muy bajos;
* Señales de modularidad en casos de negativo y/o positivo.

  <div align="left"><img src="/files/liS2lFDJdswL7KmvGHQJ" alt=""></div>
* *Data, Hora, Data/hora, Mês/año e Intervalo de Tiempo*
* Prefijos, Sufijos y valor en caso de resultados Nulos;
* Máscara, para definir separadores para días y meses, por ejemplo.

  <div align="left"><img src="/files/SAo7X1rMWxQ6h7TdRNW4" alt=""></div>

  *\*Máscara: **d** = día, **n** = mes, **y** = año, **h** = hora, **m** = minutos, **s** = segundos.*

### Lista

* Prefijos, Sufijos y valor en caso de resultados Nulos;
* Opciones, son definidos los valores y cómo deben ser exhibidos.

  <div align="left"><img src="/files/CYYwnhZPeVbZfiSwTyFy" alt=""></div>
* *Lógico (Boolean)*
  * Prefijos, Sufijos y valor en caso de resultados Nulos;
  * Exhibiciones para valores verdadero (1) y falso (0).

    <div align="left"><figure><img src="/files/V70Ehz8UOvqiiOWfqnrC" alt=""><figcaption></figcaption></figure></div>

Además de la lista arriba, weKnow también posibilita la utilización de formatos patrones de fábrica, haciendo clic en “*<mark style="color:orange;">**...**</mark>*”. Esos formatos actúan como un facilitador y pueden ser alterados después de la selección sin alterar el patrón de la fábrica.

<div align="left"><img src="/files/wcUDir9cYMYr5YlkWFbY" alt=""></div>

Los formatos pueden ser alterados y aplicados cuantas veces fueran necesarias para cada campo seleccionado en un componente en el área *<mark style="color:blue;">Datos</mark>*.

Si desea retirar el formato de una forma simple y ágil, haga clic en el botón <mark style="color:blue;">**REMOVER FORMATO**</mark>, ya para aplicar el formato, basta con hacer clic en <mark style="color:blue;">**OK**</mark>.

## Filtros, Ordenaciones y Series

Para todos los componentes es necesario seleccionar al menos un campo del metadato para servir como base (denominado *<mark style="color:blue;">Datos</mark>* <mark style="color:blue;">o</mark> *<mark style="color:blue;">Valores</mark>*). En el lenguaje SQL esa operación es equivalente a un *Select*, sin embargo dentro del metadato, que por sí solo ya es una consulta.

Así como en el caso de los Datos, otros campos son habilitados en los componentes para hacer acciones equivalentes al SQL. Esas opciones son los *<mark style="color:blue;">Filtros</mark>*<mark style="color:blue;">,</mark> *<mark style="color:blue;">Filtros Agrupados</mark>*<mark style="color:blue;">,</mark> *<mark style="color:blue;">Ordenación</mark>* <mark style="color:blue;">e</mark> *<mark style="color:blue;">Series</mark>* que respectivamente funcionan como las cláusulas *Where*, *Having*, *Order* *by* y *Group* *by*. O sea, cuando un indicador es creado en weKnow, es como si el sistema estuviera traduciendo los campos y configuraciones en una nueva consulta SQL “por debajo de las cortinas”.

Vea a continuación los objetivos de cada una de esas opciones, en cuáles componentes pueden ser aplicados y ejemplos:

### Filtros

Esa opción se encuentra en todos los componentes y se resume en la utilización de uno o más valores de un campo para seleccionar apenas parte del resultado retornado en una consulta o indicador.

Es una opción muy ventajosa y cada vez más utilizada debido al hecho de que permite la creación de *Metadatos* sin la utilización de filtros. O sea, al utilizar una cláusula *Where* en el *Indicador* y no directamente en el *Metadato*, es posible dejar el metadato más genérico y así permitir su reutilización en diversos indicadores donde apenas el *Where* los diferencia.

Por ejemplo, un metadato cuyo objetivo es traer la lista de Médicos cuyo nombre comienza con la letra “P”. Con esa descripción, se puede realizar la consulta ya aplicando el filtro en el *Metadato* o entonces aplicarlo en el *Indicador*, conforme a continuación:

<div align="left"><img src="/files/PaFfjRZXzLMJHt5HUaZV" alt=""></div>

Note que los metadatos A y B son exactamente iguales hasta la cláusula *Where*, sin embargo B es más genérico pues está retornando todos los Nombres e Ids de todos los Médicos, sin excepciones. En la secuencia, ejemplos de planillas utilizando los metadatos A y B respectivamente:

<div align="left"><img src="/files/AI8SiCudkrdjRcnVLgFt" alt=""></div>

<div align="left"><img src="/files/nvt946jvXxQil5saU9yu" alt=""></div>

En este ejemplo, B está trayendo más valores, como comentado anteriormente eso se da pues aún no fue aplicado el filtro en este indicador. Para aplicarlo basta arrastrar el campo deseado para el área *<mark style="color:blue;">Filtro</mark>* y automáticamente Weknow abrirá la tela de edición del filtro:

<div align="left"><img src="/files/LcE5h4SdkjM38nT1vhNt" alt=""></div>

A partir de este punto se puede hacer uso de todas las configuraciones de la opción *<mark style="color:blue;">Filtro</mark>*, que son las mismas para todos los componentes.

Primero es necesario seleccionar el *<mark style="color:blue;">Operador</mark>*, que es la forma en que el sistema irá a comparar el valor del campo a un valor informado por el usuario. Hay diversas opciones de comparación, sin embargo para el ejemplo arriba usaremos la opción “<mark style="color:blue;">Comienza con</mark>”.

<div align="left"><img src="/files/J3rijGOcLGEV65KcpVuc" alt=""></div>

Después de eso, es necesario seleccionar el *<mark style="color:blue;">Modo</mark>*, que define la forma en que el valor de comparación será informado. Es posible informar el valor de cuatro formas:

* *<mark style="color:blue;">Nulo</mark>*, cuando el valor de comparación debe ser en blanco;
* *<mark style="color:blue;">Fijo</mark>*, cuando el valor es una constante;
* *<mark style="color:blue;">Fórmula</mark>*, para buscar un valor de acuerdo con una regla del Asistente de fórmula Weknow;
* *<mark style="color:blue;">SQL</mark>* cuando el valor a ser utilizado es dinámico y viniendo de una otra consulta.

  Para este ejemplo utilizaremos el modo *<mark style="color:blue;">Fijo</mark>*, y colocaremos el valor “P”. Obteniendo así los mismos resultados de la planilla creada con el metadato con la cláusula Where.

  <div align="left"><img src="/files/5j0FUHEMc5pU3xBH9rmD" alt=""></div>

  <div align="left"><img src="/files/4CX6E5Ti9XT1BgfSTUWN" alt=""></div>

  Este ejemplo muestra una configuración de filtro dentro de un indicador, sin embargo Weknow aún cuenta con un componente específico para filtros de componentes denominado *Contenedor* *de filtros*. Para más detalles vaya hasta este tópico en este mismo documento.

### Filtros Agrupados

Así como en los filtros, los filtros agrupados tienen el objetivo de seleccionar parte de los resultados de una pesquisa. Su diferencia del *<mark style="color:blue;">Filtro</mark>* está en el hecho de ser aplicado a las *<mark style="color:blue;">Funciones de Agregación</mark>*, no a los valores directamente.

En el lenguaje SQL, su equivalente es la cláusula *Having* y en el sistema está disponible para todos los componentes así como los *<mark style="color:blue;">Filtros</mark>*. Recordando que, eso ocurre pues todos ellos poseen funciones de agregación, permitiendo esa utilización del filtro agrupado. A continuación está un ejemplo en el componente *<mark style="color:blue;">Tarjeta</mark>*:

<div align="left"><img src="/files/nppDMLWf2q2oh1SVPvSq" alt=""></div>

En el ejemplo arriba tenemos un conjunto de tarjetas de valores y metas por convenios. Para llegar a ese ejemplo, están siendo utilizados los campos “*<mark style="color:blue;">Valor</mark>* *<mark style="color:blue;">Total</mark>*” y “*<mark style="color:blue;">meta</mark>*” como *<mark style="color:blue;">Valores</mark>* y el campo “*<mark style="color:blue;">company\_name</mark>*” como *<mark style="color:blue;">Series</mark>*.

Note, que ese campo en la imagen arriba está siendo sumado con una función de agregación, luego los resultados en tela son las *<mark style="color:blue;">Sumas</mark>* de todas las cuentas de aquel Convenio en ese período.

Piense en un escenario donde queremos traer apenas los convenios que el “*<mark style="color:blue;">Valor</mark>* *<mark style="color:blue;">Total</mark>*” es mayor que R$ 1.000.000. En ese caso basta arrastrar el campo, “*<mark style="color:blue;">Valor</mark>* *<mark style="color:blue;">Total</mark>*” para el área *<mark style="color:blue;">Filtros</mark>* <mark style="color:blue;">(</mark>*<mark style="color:blue;">agrupados</mark>*<mark style="color:blue;">)</mark>, seleccionar la función de agregación *<mark style="color:blue;">Sumar</mark>*, seleccionar ambos el Operador y el Modo (conforme demostrado en el tópico de Filtros) y adicionar el valor deseado:

<div align="left"><img src="/files/6DmFqb7cPpgOVppqosU6" alt=""></div>

Hecho eso, el sistema filtrará no los valores directamente (línea a línea) sino apenas la *<mark style="color:blue;">Suma</mark>* o el Total para cada uno de los convenios trayendo apenas los convenios con más de R$ 1.000.000, conforme imagen a continuación.

<div align="left"><img src="/files/q1utlHk5bBOtVEoFmGOx" alt=""></div>

Los *<mark style="color:blue;">Filtros</mark>* *<mark style="color:blue;">agrupados</mark>* son una herramienta igualmente poderosa para la mejor utilización de los metadatos y cuando combinados con múltiples *<mark style="color:blue;">Filtros</mark>* pueden crear diversas visiones diferentes sin la necesidad de un nuevo código SQL.

Para obtener más práctica en esa opción sugerimos testear más ejemplos del filtro con otros tipos de *<mark style="color:blue;">Funciones de agregación</mark>* y antes de desarrollar un nuevo metadato estudiar la posibilidad de reutilización del metadato en conjunto con nuevos filtros.

### Ordenación

Otra opción que es muy utilizada y está presente en tres de los componentes (*<mark style="color:blue;">Planilla</mark>*<mark style="color:blue;">,</mark> *<mark style="color:blue;">Gráfico</mark>* <mark style="color:blue;">y</mark> *<mark style="color:blue;">Tarjeta</mark>*). La ordenación es el equivalente a la cláusula *Order by* en el SQL y tiene como objetivo crear una regla para orden de demostración de los datos.

De las opciones generales es la más simple por no necesitar de ninguna configuración extra y depender apenas del campo que fuera seleccionado para servir de regla de ordenación.

Para demostrar esa opción en la práctica seguiremos el mismo ejemplo de la opción anterior (*<mark style="color:blue;">Filtros</mark>* *<mark style="color:blue;">Agrupados</mark>*) e iremos a organizar el componente Tarjeta de acuerdo con dos necesidades diferentes.

Primero vamos a adicionar una ordenación en la *<mark style="color:blue;">Tarjeta</mark>* utilizando un campo del tipo *<mark style="color:blue;">Texto</mark>*, de esa forma al hacer clic para seleccionar el sentido ordenación será utilizado el modelo *<mark style="color:blue;">Alfabético</mark>* “de A a Z” o “de Z a A”.

#### **Antes**

<div align="left"><img src="/files/fs9FPEazZhs8vOrMcdXI" alt=""></div>

<div align="left"><img src="/files/w0ObCPGQGqL6O6lHvIFL" alt=""></div>

#### Después

<div align="left"><img src="/files/zCig1aRrufAI9rQBmt59" alt=""></div>

Note que el sistema ya estaba ordenando alfabéticamente de acuerdo con el campo en *<mark style="color:blue;">Serie</mark>*. O sea, si el componente posee más que los campos en *<mark style="color:blue;">Valores</mark>*, como *<mark style="color:blue;">Rótulos</mark>* o *<mark style="color:blue;">Series</mark>*, el sistema automáticamente ordenará por esas opciones. Caso contrario él no aplicará una ordenación.

Después de adicionar el campo “*<mark style="color:blue;">company\_uf</mark>*” en la *<mark style="color:blue;">Ordenación</mark>*, él dejó de ordenar por el nombre de los convenios (campo “*<mark style="color:blue;">company\_name</mark>*”) y ordenó alfabéticamente por los Estados de los Convenios. En este ejemplo es posible alterar el sentido de la ordenación haciendo clic en el ícono de *Flecha* al lado del ícono de funciones agregadas.

Y en seguida vamos a adicionar una segunda ordenación que funcionará en conjunto con la ordenación alfabética anterior. El escenario propuesto es que algunos convenios son del mismo Estado lo que permite organizar nuevamente el listado de las tarjetas, sin embargo ahora utilizando de la opción *<mark style="color:blue;">Función de agregación</mark>*.

<div align="left"><img src="/files/POUdTkzlsCPinCRlYaqy" alt=""></div>

### Final

<div align="left"><img src="/files/ArUnIwnya3yhchVqWYdC" alt=""></div>

Como resultado obtuvimos las tarjetas ordenadas alfabéticamente por Estado e inmediatamente después por la *<mark style="color:blue;">Suma</mark>* del “*<mark style="color:blue;">Valor Total</mark>*” de cada convenio.

Vale la pena resaltar que este ejemplo trae solo dos formas de hacer la ordenación, sin embargo, esta opción se puede combinar con varias otras configuraciones para traer incluso un TOP 10 de Convenios más valiosos, por ejemplo (si se usa un limitador), dependiendo solo de la necesidad del indicador.

### Series

La opción series es el equivalente a la cláusula *Group by* en SQL, responsable de unir varios valores a través de un campo con un valor común entre registros.

Está muy asociada a tablas que poseen una clave externa de tablas como “Categoría” o “Tipo”, ya que estos campos se repiten muchas veces en estos escenarios y pueden servir como buenos campos para agrupar. Sin embargo, su uso no se restringe a este escenario, permitiendo que, en la práctica, cualquier campo pueda ser utilizado como un campo de *<mark style="color:blue;">Series</mark>*.

En el sistema, esta opción se encuentra en los componentes del tipo *<mark style="color:blue;">Gráfico</mark>*<mark style="color:blue;">,</mark> *<mark style="color:blue;">Tarjeta</mark>* <mark style="color:blue;">y</mark> *<mark style="color:blue;">Planilla</mark>* (a través de las líneas/columnas que actúan como *<mark style="color:blue;">Series</mark>*). A continuación, un ejemplo de la serie que se utiliza para transformar un gráfico más genérico en un gráfico separado por sexos sin alterar los <mark style="color:blue;">Metadatos</mark>:

<div align="left"><img src="/files/mVmDGvdmWZ6GeSukVOPj" alt=""></div>

<div align="left"><img src="/files/NF77ulqBpF2dgeAp2SI3" alt=""></div>

Observe que el sistema incluye automáticamente una segunda columna en el gráfico para cada uno de los *<mark style="color:blue;">Rótulos</mark>* sin tener la necesidad de agregar un campo más en *<mark style="color:blue;">Valores</mark>*.

*<mark style="color:blue;">**¡Atención!**</mark>* La configuración realizada en este ejemplo no interfiere con los colores del gráfico, para cambiarlos se utilizó *<mark style="color:blue;">Personalizaciones</mark>*.

Aún es posible incluir más de un campo en el área de series, trayendo más agrupaciones de acuerdo con la necesidad. El sistema separará de acuerdo con la cantidad de valores para cada una de las series. La serie con menos valores se convierte en el primer nivel de agrupación, la segunda con menos valores se convierte en el segundo nivel y así sucesivamente.

## Variables de entrada

En el día a día de trabajo del Analista, es posible encontrarse con situaciones que exigen la entrada de algún dato para que sea posible generar determinada información. Sin que se cambien las configuraciones del componente y que dispense la necesidad de un perfil con permisos de Edición.

Este dato que se informará, podrá asumir N responsabilidades de acuerdo con lo que se definió en la configuración del componente, por ejemplo:

* Meta;
* Parámetro;
* Clasificación;

En la práctica, es una forma del usuario visualizador interactuar con los gráficos disponibles por weKnow, y agregar más valor a la información generada.

Ejemplo:

Para agregar una Variable de entrada, primero abrimos la edición del componente, y en la pantalla que se abrió, en el listado de campos, hago clic en **Agregar campo de entrada**, donde se definirán:

* Nombre
* Título
* Categoría
* Tipo de dato (si es texto, decimal, fecha, etc.)
* Valor (valor predeterminado)

<div align="left"><img src="/files/aGjSp2JDwvw9TnhHhEgL" alt=""></div>

En este ejemplo definiremos una **Meta** por **Período** para las ventas facturadas en cada estado, es decir, una línea que cortará el gráfico de barras, identificando cuáles de los estados alcanzaron el promedio en determinado período.

Para esto, agrego el campo Variable de entrada al Eje Y, y lo defino como una línea (también se pueden definir otros tipos de gráfico). Y luego hago clic en Concluir, para finalizar la configuración de la variable.

Ahora con la Variable de entrada ya definida, vamos a configurar un filtro para que podamos interactuar con la misma. Para eso, en el contenedor de filtros, hacemos clic en el ícono de Filtro, después en los tres puntitos para abrir el Dropdown y luego, hacemos clic en **Agregar Filtro Simple**.

<div align="left"><img src="/files/lSF4GzBTctlVz6oelrWA" alt=""></div>

En la ventana que se abrió en la creación de un nuevo filtro en este contenedor, configure el filtro simple normalmente, así como la creación de filtros para la interacción con otros tipos de vínculos. Vale la pena resaltar que el formato del campo filtro debe ser el mismo que el de la variable de entrada.

Para finalizar la creación del campo en este contenedor de filtro, haga clic en Siguiente y luego en concluir.

<div align="left"><img src="/files/3gt22SACFr906IkcI77i" alt=""></div>

Ahora la **Variable de entrada** ya está configurada y lista para recibir valores. En este ejemplo que configuramos, definiremos una meta, y validaremos cuáles estados están por debajo/encima de lo que se definió.

La línea gris que corta el Gráfico, representa la **Meta** configurada en la **Variable de entrada**.

<div align="left"><img src="/files/xgDGXyqQwrQYY9UDCZK6" alt=""></div>

Se pueden configurar varios filtros y variables, para generar resultados más complejos.
