• O tópico abaixo exige noções básicas de programação e seleção de registros.
  • Se tiver dúvidas em como definir os filtros, entre em contato com nosso departamento de suporte e, se for o caso, contrate nosso serviço de consultoria para auxiliá-lo.
  • Muito cuidado na definição dos filtros pois se eles não forem definidos corretamente o resultado obtido não será o desejado.


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.