cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta Formatada preencher campo de usuário

former_member541463
Participant
0 Kudos

bom dia,

Preciso de uma consulta para preenchimento automático de um campo de usuário, caso sejam atendidas as regras em 2 tabelas diferentes.

Meu cenário:

Meu campo de usuário está na NF Saída( OINV.[meucampo] ) preciso preenchê-lo com valor 0(zero) caso os campos de 2 outras tabelas obedeçam ao seguinte:

OCRD.[GroupCode] = X and INV1.[CFOPCode] = Y

Obrigado!

Johan_H
Active Contributor
0 Kudos

Por favor, comente sobre a minha resposta em vez de postar uma resposta sozinho. Quando você responde, eu não sou notificado. Quando você comenta minha resposta, recebo uma notificação. Por favor, veja a minha resposta a esta informação adicional como comentário à minha resposta.

Accepted Solutions (0)

Answers (2)

Answers (2)

Johan_H
Active Contributor

Oi,

Pode haver várias linhas (INV1) e cada linha pode ter um valor diferente no campo [CFOPCode]. Você deseja mostrar um único valor no cabeçalho (OINV). O que deve acontecer quando em uma linha INV1. [CFOPCode] = Y e em outra linha INV1. [CFOPCode] = N?

Saudações,

Johan

Johan_H
Active Contributor

Oi,

No seu exemplo, o INV1. O campo [CFOPCode] obtém um valor numérico, não um booleano. Dependendo do tipo de dados que você implementará, é possível adaptar e testar essas consultas:

SELECT CASE 
WHEN T0.GroupCode = 103 AND 'seu valor aqui' IN (select $[$38.18]) THEN 0 ELSE null
END
FROM OCRD T0
WHERE T0.CardCode = $[OINV.CardCode]

A variável numerada precisa ser o código correspondente para o campo INV1 [CFOPCode]. Você pode ativar as Informações do Sistema no menu Exibir e examinar a parte inferior direita da janela do cliente. o formato é $[$Item.Column]

Saudações,

Johan

former_member541463
Participant
0 Kudos

Olá, Infelizmente seu exemplo só funciona no caso de 'seu valor aqui'IN(select$[$38.18]) estar na primeira linha do documento.

Eu preciso que ele trate todas as linhas, para que se alguma delas independente da posição atender os requisitos o campo seja preenchido.

Obrigado!

Johan_H
Active Contributor

Oi,

Por favor, teste esta versão:

SELECT CASE
WHEN T0.GroupCode = 103 AND 'seu valor aqui' IN (select $[INV1.CFOPCode\]) THEN 0 ELSE null
END
FROM OCRD T0
WHERE T0.CardCode =$[OINV.CardCode]

Saudações,

Johan

former_member541463
Participant
0 Kudos

Obrigado, mas não funcionou...

Já estou quase desistindo de implementar isso, não consigo enxergar uma solução e já tive ajuda de várias pessoas... Porém quando "funciona" só pega se estiver na primeira linha.

Johan_H
Active Contributor
0 Kudos

Em geral, um FMS que recebe informações do nível de linha só pode ser colocado em um campo no nível da linha. A consulta que forneci foi baseada em um post muito antigo, que sugeria que isso poderia ser feito. Lamento não poder ajudar.

former_member541463
Participant
0 Kudos

Bom dia, primeiramente obrigado pela atenção...

O que preciso é se em qualquer linha do documento a CFOP=Y então já atende meu filtro.

exemplo real:

Se OCRD.[GroupCode] = 103 and INV1.[CFOPCode] = 5405 (em qualquer linha) então preenche OINV.[meucampo] com 0(zero)