OR ou UNION campo auto-complete ou select

Pessoal, boa tarde.
Tenho a seguinte situação. Um tela de PEDIDO tenho um campo SELECT que contém a informação de VENDEDORES ATIVOS.
O problema ocorre exatamente aí. Quando consulto um pedido que o vendedor está inativo o campo fica em branco.
A nível de banco de dados o select ficaria assim: select id, nome from vendedores where (status = ‘A’ or id = {id_vendedor}…
ou usando um union assim:
select id, nome from vendedores where status = ‘A’ union all
select id, nome from vendedores where id={id_vendedor}

As duas soluções nos campos acima não funcionam... ou se funciona já não testei ainda.
Alguém já teve esse problema ? qual a solução.
Desde já Obrigado.

At.
Adriano

Adriano,

Se estás usando OR, da forma que colocaste ele sempre vai deixar de mostrar quando o status for diferente de ‘A’. Tente fazer o inverso:

select id, nome from vendedores where (id = {id_vendedor} or status = ‘A’ …

Assim o OR só irá ser executado se a primeira condição for falsa.

Uma sugestão…

O certo neste caso é usar 2 CAMPOS.

Um campo VIRTUAL que vai aparecer só quando o Pedido já estiver Incluído e outra campo o do SELECT normal que só aparece quando se esta inserindo novo Registro.
sc_field_display({Meu_Campo}, on/off)
Permite, dinamicamente, exibir ou não um determinado campo.
Em princípio, todos os campos são exibidos (condição “on”).

E o sc_lookup(Dataset, “Comando SQL”, “Conexão”) para preencher o campo VIRTUAL que vai ser mostrado quando não for INCLUSÃO.

Boa opção, Jailton.

Jailton, boa tarde.
Nessa sugestão, acho que não que ficaria bom, pois a nível de layout vai interferir, pois o segundo campo vai estar fisicamente no layout, e para isso tenho que aumentar a quantidade de campos para um determinado bloco.
E outra, caso o pedido seja feito errado (para o vendedor), como faria para alterar ?

Isso realmente acho que é um BUG simples de ser resolvido... mas de grande importância.

Kleyber boa tarde, na sua sugestão acho que não teria que ser assim, pois fiz vários testes aqui no pl-sql.
Mas de qualquer forma, estarei testanto.

Você pode também por para mostrar o campo normal se a data do pedido for igual a data atual, se for menor ele mostra o campo virtual ai dá certo, caso o vender já
tiver incluído o pedido altera-lo no mesmo dia.

Por que isto seria um bug?

Então Kleyber, porque como aquele campo é um campo sql, ele não está interpretando o SQL correto, digo isso pela escrita do SQL e não do campo em si…
Vou fazer os testes e voltou a publicar os resultados.
Desde já, obrigado a todos por estarem vendo essa situação comigo.