Definição dos filtros
|
|
Em alguns módulos do Hipercusto é possível criar um filtro adicional para seleção de registros e "trabalhar" somente com o intervalo de registros que atenderem a condição informada.
Na definição desse filtro você pode utilizar qualquer campo da tabela onde estão os dados que devem ser processados seguindo a sintaxe abaixo:
<campo> <operador> <valor> [<condições adicionais>]
Onde:
- <campo>: indica o campo do arquivo que deverá ser utilizado na seleção dos registros.
- <operador>: é o tipo de operação de comparação ou seleção que deverá ser efetuada. Exemplos: maior, menor, igual, etc.
- <valor>: é o valor (ou valores) que deve ser utilizado para selecionar os registros.
- <condições adicionais>: são as demais condições de seleção que deverão ser consideradas (opcional)
Opções de Seleção / Comparação: Você pode usar os seguintes operadores:
= |
Igual: serão selecionados somente os registros que forem igual ao valor indicado. Exemplo: acTIPO = 'M' seleciona os registros cujo campo acTIPO seja igual a 'M'. |
<> |
Diferente: serão selecionados os registros que forem diferentes do valor informado. Exemplo: acTIPO <> 'M' seleciona os registros cujo campo acTIPO seja diferente de 'M" |
< |
Menor que: seleciona os registros que forem menor que o valor informado. Exemplo: mpCUSTO_LIQUIDO < 10 seleciona as matérias-primas com custo inferior a R$ 10,00 |
<= |
Menor ou igual a: seleciona os registros que forem menor ou igual ao valor informado. Exemplo: mpCUSTO_LIQUIDO <= 50 seleciona as matérias-primas com custo inferior ou igual a R$ 50,00 |
> |
Maior que: seleciona os registros que forem maior que o valor informado. Exemplo: hvQTD_VENDA > 15 seleciona todas as vendas com quantidade superior a 15 unidades. |
>= |
Maior ou igual a: seleciona os registros que forem igual ou maior que o valor informado. Exemplo: hvQTDE_VENDA >= 10 seleciona as vendas com quantidade igual ou superior a 10 unidades. |
BETWEEN |
Entre: seleciona os registros que estiverem entre os dois valores informados. Exemplo: acLOTE_ECONOMICO BETWEEN 100 AND 150 seleciona os produtos com lote econômico igual ou superior a 100 e igual ou inferior a 150. |
IN |
Em: seleciona os registros cujo campo seja igual a um dos informados. Exemplo: mpGRUPO IN ('AÇO' , 'PAPEIS' , 'TUBOS' , 'COLAS') seleciona as matérias-primas que sejam de um dos grupos informados. |
LIKE |
Como: seleciona os registros que obedeçam a máscara especificada, sendo que na máscara o caracter % indica "qualquer coisa" enquanto o _ indica "qualquer caractere". Você também pode usar o complemento IGNORE CASE para ignorar a caixa de texto (maiúsculas/minúsculas) Exemplos: mpDESCRICAO LIKE 'A%' seleciona apenas as matérias-primas que iniciem com a letra A. acCODIGO LIKE '%ST' seleciona apenas os produtos que cujo código termine com ST. grCODIGO LIKE 'G_A%' seleciona apenas os grupos que iniciem com a letra G, tenham qualquer caracter na segunda posição e que possuam a letra A como terceiro caracter e depois tenham qualquer letra. acDESCRICAO LIKE '%LITRO%' IGNORE CASE seleciona os produtos cuja descrição contenha a palavra LITRO sem fazer distinção de maiúsculas e minúsculas. |
NOT |
Não: seleciona os registros que não satisfizerem a condição informada. Por exemplo: mpGRUPO NOT IN ('AÇO' , 'PAPEIS' , 'TUBOS' , 'COLAS') seleciona os grupos que não sejam os indicados. |
Condições Adicionais: Se necessário, você pode especificar condições adicionais para seleção dos registros mas, para isso, você deverá utilizar um dos operadores abaixo:
AND |
E: indica que todas as condições devem ser satisfeitas para que o registro seja selecionado. Exemplo: acTIPO = 'M' AND acCODIGO LIKE 'A%' seleciona os registros cujo campo acTIPO seja igual a 'M' e que o campo acCODIGO inicie com a letra A. |
OR |
OU: indica que pelo menos uma das condições devem ser satisfeitas para que o registro seja selecionado. Exemplo: acTIPO = 'M' OR acTIPO = 'S' seleciona os registros cujo campo acTIPO seja igual a 'M' ou 'S'. Se for utilizar a condição OR com o mesmo campo prefira utilizar a opção IN. O exemplo acima faz o mesmo que: acTIPO IN ('M','S') |
Funções e operadores adicionais: Você poderá, ainda, utilizar as funções e/ou operadores abaixo na seleção dos registros:
( ) |
Parênteses: permite definir a prioridade dos filtros ou operações matemáticas. Exemplo: (mpUNIDADE = 'GR' AND mpCODIGO LIKE 'P%' ) OR (mpUNIDADE = 'UN' AND mpCODIGO LIKE 'E%') |
CAST( .. AS ..) |
Indicação de Tipo: Permite definir corretamente um valor para comparação, utilizado principalmente quando se deseja utilizar datas na comparação. Por exemplo: hvDATA = BETWEEN CAST('2010-01-01 00:00:00' AS DATETIME) AND CAST('2010-01-31 23:59:59' AS DATETIME) seleciona todos os registros de venda com data entre o dia 01/01/2010 e 31/01/2010. Repare que a data deve ser fornecida entre aspas e no padrão ISO, isto é, ano-mês-dia seguido do horário no formato hora:minuto:segundo |
UPPER( ) |
Maiúsculas: converte o texto para letras maiúsculas antes de efetuar a comparação. Exemplo: UPPER(clRAZAO_SOCIAL) LIKE 'CIA%' seleciona os clientes com razão social iniciando com "CIA" fazendo antes a conversão dos nomes para letras maiúsculas. |
LOWER( ) |
Minúsculas: converte o texto para letras minúsculas antes de efetuar a comparação. Exemplo: UPPER(vdRAZAO_SOCIAL) LIKE 'santa%' seleciona os clientes com razão social iniciando com "santa" fazendo antes a conversão dos nomes para letras minúsculas. |
EXTRACT( ..FROM..) |
Extração: Utilizado com campos do tipo data, permite extrair "partes" da mesma. Use YEAR para extrair o ano, MONTH para extrair o mês, DAY para extrair o dia, HOUR para extrair as horas, MINUTE para extrair os minutos ou SECOND para extrair os segundos. Exemplo: EXTRACT(YEAR FROM hvDATA) = 2010 seleciona todas as vendas do ano de 2010 |
ABS( ) |
Valor Absoluto: retorna o valor sem seu sinal, isto é, se o valor for negativo o sinal será desprezado. Exemplo: ABS(hvMARGEM_PERC) > 10 |
+ |
Adição: soma dois ou mais campos. Exemplo: (mpCUSTO_1 + mpCUSTO_2) > 15 seleciona as matérias-primas cuja soma do valor de custo 1 com o valor de custo 2 seja maior do que quinze. |
* |
Multiplicação: multiplica dois ou mais campos. Exemplo: (hvVALOR_VENDA * hvQTDE) >= 1500 seleciona as vendas com valor total da venda for igual ou maior que R$ 1.500,00 |
/ |
Divisão: divide dois ou mais campos. Exemplo: (mpCUSTO_2 / mpCUSTO_LIQUIDO) > 0.10 seleciona as matérias-primas onde o valor do custo 2 seja maior que 10% do custo líquido total da matéria-prima. |
- |
Subtração: subtrai dois ou mais campos. Exemplo: (hvVALOR_VENDA - hvFRETE) > 100 seleciona as vendas com valor unitário, sem o frete, maior que R$ 100,00 |
Veja alguns exemplos de seleção de registros:
No arquivo de fórmulas de produtos:
acTIPO in ('M','A','S') AND acCODIGO LIKE '10%'
Seleciona os itens de fórmulas com tipos iguais a M (matéria-prima), A (produto) ou S (semiacabado) e que o código do produto inicial com a sequência 10.
No arquivo de fórmulas de semiacabados:
saTIPO = 'C'
Seleciona os registros de fórmulas com tipos iguais a C (processos/setores produtivos).
No arquivo de matérias-primas:
UPPER(mpUNIDADE) in ('PC','UN','CEN','MT')
Seleciona as matérias-primas com o campo unidade igual a PC, UN, CEN ou MT.
No arquivo de vendas:
( ( (hvVLR_LUCRO / hvVALOR_VENDA) * 100 ) > 30) AND hvDATA BETWEEN CAST('2010-10-01 00:00:00' AS DATETIME) AND CAST('2010-10-31 23:59:59' AS DATETIME)
Seleciona os registros de vendas do período de 01/10/2010 e 31/10/2010 e que tiveram um lucro superior a 30%.
No arquivo de produtos:
acDESCRICAO like 'FIOS%' IGNORE CASE
Seleciona os produtos com descrições que iniciem com FIOS sem considerar a caixa de texto (maiúsculas ou minúsculas).
No arquivo de prestadores de serviços:
psDESCRICAO like '%SILVA%' IGNORE CASE
Seleciona os prestadores que possuam a palavra SILVA no seu nome sem considerar a caixa de texto (maiúsculas ou minúsculas).
No arquivo de prestadores de serviços:
(pvVLR_MOD + psVLR_MAQ + psVLR_DGR) > 1200
Seleciona os prestadores com custo total superior a R$ 1.200,00.
No arquivo de produtos:
UPPER(saGRUPO) in ('GR01','AC02','ST00') OR saGRUPO LIKE 'TS%' IGNORE CASE
Seleciona os produtos que sejam dos grupos: GR01, AC02 ou ST00 ou dos grupos que iniciem com a sequência ST.
Lembre-se, esses são apenas alguns exemplos de filtros que poderão ser criados. Existe infinitas possibilidades que poderão ser utilizadas para seleção dos registros desejados.