Skip to Content
0
Former Member
Jun 29, 2011 at 12:51 PM

Consulta Formatada para Itens

281 Views

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.