cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta Formatada para Itens

Former Member
0 Kudos

Bom dia a todos.

EStou desenvolvendo uma consulta formatada, na qual eu crio codigo dos itens referentes ao seu tipo: 'S' para itens de serviço, 'M' para itens Materiais e 'F' para itens fictícios.

Porem preciso que esse codigo se altere quando satisfazer as condições:

Exemplo:

Se o item for Material e ñ ficticio, codigo = 'M000000'.

Se o item for Material E ficticio, codigo = 'F000000'.

Se o item fo Servico e Ñ ficticio, codigo = 'S000000'.

Se o item for Serviço E ficticio, codigo = 'F000000'.

Quando publico a consulta, o B1 me apresenta apenas um campo onde se realizará a alteração. Nesse caso escolho 'Serviços e Materiais', onde ao modificar o item para Servico e clicado em Ficticio, o codigo se altera. O mesmo para materiais.

Minha duvida é: Tem alguma forma de utilizar dois campos de alteração? Ou meu código está errado? Segue:

DECLARE @sequencial varchar(1)

DECLARE @controle varchar(1)

set @sequencial = $[OITM.ItemClass]

set @controle = $[OITM.Phantom]

--Direcionamento

BEGIN

IF @sequencial = '1' GOTO Servico

IF @sequencial = '2' GOTO Item

END

Servico:

IF @controle <> 'Y'

BEGIN

Select Top 1 'S'+right(('000000' + cast((right(cast(replace(itemcode,'S','') as int),6))++1 as varchar(6))), 6)

from

where Substring(itemcode,1,1)='S'

order by itemcode desc

END

--Ficticio:

IF @controle = 'Y'

BEGIN

Select Top 1 'F' +right(('000000' + cast((right(cast(replace(itemcode,'F','') as int),6))++1 as varchar(6))), 6)

from

where Substring(itemcode,1,1)='F'

END

Item:

IF @controle <> 'Y'

BEGIN

Select Top 1 'M' +right(('000000' + cast((right(cast(replace(itemcode,'M','') as int),6))++1 as varchar(6))), 6)

from

where Substring(itemcode,1,1)='M'

order by itemcode desc

END

--Ficticio:

IF @controle = 'Y'

BEGIN

Select Top 1 'F'+right(('000000' + cast((right(cast(replace(itemcode,'F','') as int),6))++1 as varchar(6))), 6)

from

where Substring(itemcode,1,1)='F'

END

Aguardo novas soluções.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Olá,

Se você deseja colocar uma consulta formatada em um campo que depende da alteração de dois campos minha sugestão seria você usar um terceiro campo.

Criar um campo de usuário "Flag", Atualizar (Sim, Não), como default o não.

Após o cliente informar os dados se é serviço/material e se é ficticio , ele deve mudar o flag para SIM.

Então você prende a sua consulta formatada baseando-se na mudança deste campo criado.

Eu precisei fazer algo parecido com o que fez. Utilizar uma consulta que dependia da atualização de dois campos. E a solução foi usar desta forma descrita acima.

Você poderia chamar o campo de "Gera Código".

Att,

Answers (0)