> For the complete documentation index, see [llms.txt](https://ajuda.consistem.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.consistem.com.br/tecnologia/erp/componentes/funcionalidades/camada-de-personalizacao/personalizacao-de-consultas.md).

# Personalização de Consultas

## Inclusão de Colunas

A funcionalidade de **Inclusão de Colunas** permite trazer dados de outras tabelas ou criar colunas calculadas para enriquecer as informações exibidas nos grids, sem a necessidade de customizações complexas no código-fonte do **Consistem ERP**.

O acesso é realizado através do ícone <i class="fa-sliders">:sliders:</i> (Personalizar Dados) localizado no rodapé do grid. Ao clicar, você será direcionado ao programa [Personalização da Consulta (CSW1CUSTOM060)](/componentes/manuais-de-telas/camada-de-personalizacao/personalizacao-da-consulta.md).

<figure><img src="/files/yI6gvABW0xxkOOAr23mw" alt=""><figcaption></figcaption></figure>

### Métodos de Inclusão

Existem duas formas de adicionar novas colunas, dependendo da complexidade do dado que você precisa:

<figure><img src="/files/be6Pn1Xu2KdJPztrRF9P" alt=""><figcaption></figcaption></figure>

#### **Adicionar Tabela (Vínculo Simples)**

Ideal para trazer informações complementares de cadastros. O sistema faz o vínculo automático através das chaves das tabelas.

{% hint style="success" %} <mark style="color:$success;">**Exemplo**</mark>\
Em um grid de itens de pedido, você pode adicionar uma coluna para mostrar o "Nome da Empresa" buscando automaticamente do Cadastro de Empresas, sem digitar código.
{% endhint %}

<figure><img src="/files/1mHDXgLosjm2Qd5VQCvy" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Stn1diN1haDXAXBxtoV8" alt=""><figcaption></figcaption></figure>

#### **Adicionar Coluna (Low Code / Avançado)**

Utilizado para dados que exigem cálculo ou lógica específica. Permite uso de programação (Caché/IRIS ou SQL).

{% hint style="success" %} <mark style="color:$success;">**Exemplo SQL**</mark>\
Criar uma coluna que calcula o somatório do valor de ICMS (`vlricms`) da tabela de Notas Fiscais, filtrando por variáveis de contexto como `:empresa:` e `:dataIni:`.
{% endhint %}

<figure><img src="/files/ZfJ3aHeA1JuIMTnGHuag" alt=""><figcaption></figcaption></figure>

### **Como Habilitar**

Após criar a coluna, é necessário sair da tela e acessá-la novamente (ou reabrir o <kbd>**F7**</kbd>) para que a alteração seja carregada.

<figure><img src="/files/xWWXpWe6YdXBEJ6lZptA" alt=""><figcaption></figcaption></figure>

#### Alcance Global em Pesquisas

As colunas personalizadas inseridas em telas de pesquisa <kbd>**F7**</kbd> seguem uma lógica compartilhada. Isso significa que a nova coluna ficará visível em todos os programas que utilizam aquele mesmo <kbd>**F7**</kbd>.

{% hint style="warning" %} <mark style="color:orange;">**Importante**</mark>\
\
Isso significa que a nova coluna ficará visível em **todos os programas** do sistema que utilizam aquela mesma janela de pesquisa.
{% endhint %}

#### **Identificação Visual**

Para facilitar a distinção entre o que é nativo e o que foi personalizado, o sistema adiciona automaticamente o símbolo de copyright (©) ao título da coluna criada.

<figure><img src="/files/8fsE7JGyAgbKu2kPtduX" alt=""><figcaption></figcaption></figure>

### Guia Técnico

*Esta seção é destinada a analistas e desenvolvedores.*

Ao utilizar a opção de *Low Code* em *Caché/IRIS*, a lógica deve preencher a variável de retorno específica.

**Variáveis de Retorno:**

* `tabRetorno("dados")`: **Obrigatório**. Contém o valor final que será exibido na célula.
* `tabRetorno("display")`: Valor editado/formatado (máscara).
* `tabRetorno("corFundo")`, `tabRetorno("corFonte")`, `tabRetorno("negrito")`: Opcionais (0 ou 1) para formatação condicional via código.

#### **Exemplos de Busca de Dados**

**Caso A: Busca via Índice da Coluna do Grid**\
Útil quando você precisa pegar um valor que já está na tela (no grid), baseando-se na posição da coluna (ex: coluna 30).

```javascript
new ftcl,nomeCliente,sc,dados,display,detalha
;
; Recupera a linha atual do grid
set dados=$get(tabParametros(1))
;
; Chama rotina usando a coluna 30 como parâmetro (cód. cliente)
set sc=$$VerCliente^CCFTRG001(CE,$piece(dados,z,30),.ftcl)
;
set nomeCliente=$piece(ftcl,z,2)
set tabRetorno("dados")=nomeCliente
```

**Caso B: Busca via Variável Nomeada (Contexto)**\
Mais seguro e legível. Acessa o dado diretamente pelo nome da variável de contexto (ex: `:codCliente:`), sem depender da posição da coluna.

```javascript
new ftcl,nomeCliente,sc
;
; Usa a variável de memória CE e a variável de contexto :codCliente:
set sc=$$VerCliente^CCFTRG001(CE,:codCliente:,.ftcl)
;
set nomeCliente=$piece(ftcl,z,2)
set tabRetorno("dados")=nomeCliente
```

***

## Formatação Condicional

A Formatação Condicional permite criar indicadores visuais dinâmicos nas suas consultas, facilitando a identificação rápida de situações críticas ou status importantes.

Com base em regras que você define, o sistema altera automaticamente a aparência das colunas no grid. É possível personalizar:

* **Cor da Fonte:** Altere a cor do texto (ex: Vermelho para valores negativos).
* **Cor de Fundo:** Destaque a célula inteira (ex: Fundo amarelo para registros pendentes).
* **Estilo:** Aplique **Negrito** para dar ênfase a dados prioritários.

{% hint style="success" %} <mark style="color:green;">**Exemplo**</mark>

Em uma consulta de Estoque, você pode configurar para que qualquer produto com saldo abaixo do mínimo apareça automaticamente com a **Fonte Vermelha** e em **Negrito**, chamando a atenção do operador imediatamente.
{% endhint %}

<figure><img src="/files/YtiWFYlMBynNZAR2iEOJ" alt=""><figcaption></figcaption></figure>

***

## Hyperlinks: Navegação entre Telas

É possível transformar colunas do grid em **links clicáveis**. Essa funcionalidade agiliza a navegação, permitindo que o usuário clique em um registro e abra automaticamente a tela de detalhes correspondente, sem precisar sair da consulta atual.

#### Formas de Implementação

O link pode ser ativado de duas maneiras:

1. **Via Código Fonte :** Ocorre quando a classe do dado possui a configuração nativa de link no código fonte.
2. **Via Personalização**: Caso o link nativo não exista, você pode criá-lo manualmente.

{% hint style="success" %} <mark style="color:green;">**Exemplo**</mark>

Imagine um grid que exibe uma lista de compras. Você pode transformar a coluna **Código do Fornecedor** em um hyperlink.

Ao clicar no código, o sistema abre automaticamente o programa **Detalhamento de Fornecedor (CCCGI665)**, carregando as informações completas daquele registro.
{% endhint %}

<figure><img src="/files/83exH0uJQ9BRC3KIONQ6" alt=""><figcaption></figcaption></figure>

<p align="center">Esse conteúdo foi útil?</p>

<p align="center"><a href="https://movidesk.consistem.com.br/form/10395/" class="button primary" data-icon="thumbs-up">Sim</a> <a href="https://movidesk.consistem.com.br/form/10395/" class="button primary" data-icon="thumbs-down">Não</a></p>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ajuda.consistem.com.br/tecnologia/erp/componentes/funcionalidades/camada-de-personalizacao/personalizacao-de-consultas.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
