Fórum Campo Lookup com where no SQL quot;em brancoquot; #278211
20/04/2005
0
ò eu de novo, com esse problema em lookups..rss..
seguinte..
Tenho uma tabela IA0100, nesta tabela eu gravo um código para embalagens.
No cadastro (EB0100) de embalagens, tem um campo chamado C_UNITARIO, neste campo eu gravo um código que é cadastrado numa tabela de Unidades de Medida. Neste mesmo cadastro tenho um outro campo chamado C_EMBALAGEM e C_QTD.
Adescrição do registro na tela fica assim ex:
1 Caixa(s) com 6 Unidade(s);
1 Caixa(s) com 5 Frasco(s);
1 Rolo(s) com 100 metro(s);
Quando eu estou no grid de IA0100, tenho um campo chamado C_EMBALAGEM que traz aa descrições das embalagens acima, para o usuário selecionar uma delas.
Só lembrando, no cadastro de Materiais, eu tenho um Campo C_UNITARIO que tb é cadastrado na tabela de Unidades de medida.
de acordo com este código C_UNITARIO, eu dou um select com where na tabela EB0100.
assim :
se o Material tiver UN (Unidade(s)), então meu select deve trazer todas as embalagens que o C_UNITARIO for UN, até aí funciona legal, o problema está quando eu insiro um outro registro que não for da mesma unidade, no grid o campo fica em branco.
Como resolver este problema?
Cabelo
Curtir tópico
+ 0Posts
25/04/2005
Cabelo
Gostei + 0
25/04/2005
Rafael Santana
você poderia postar seu select aqui e a forma como vc cadastra as unidades?
obrigado
Gostei + 0
25/04/2005
Cabelo
Select
select C_COD_EMBALAGEM, C_DESC_EMBALAGEM from EB0100 where
C_COD_EMB_MINIMA = ´´´+cdsIN0100.fieldbyname(´C_COD_EMB_MINIMA´).asstring+´´´ order by C_DESC_EMBALAGEM
Este é o select para mostrar asembalagens compatíveis com o determinado Material.
este select está no evento Scroll do clientdataset dos materiais.
Não entendí a dúvida no insert..]
Vc quer saber quais são os campos?
Código - PK
descrição
Gostei + 0
26/04/2005
Cabelo
Gostei + 0
27/04/2005
Cabelo
Gostei + 0
27/04/2005
Emerson Nascimento
poste a estrutura das tabelas e como elas são relacionadas. assim ficará mais fácil te ajudar.
Gostei + 0
27/04/2005
Cabelo
Você escolhe o material, aí eu dou um select na tabela de embalagens para selecionar somente as embalagens em que o campo C_UNITARIO coincide com o campo C_EMB_MINIMA na tabela dos materiais..
mas até aí funciona bem..
O problema começa quando tenho vários registros, assm :
1 Teste 1 UN Caixa(s) com 10 Unidade(s)
1 Teste 2 UN Unidade(s)
1 Teste 3 FR Caixa(s) com 3 Frascos(s)
na tabela eu armazeno da forma que está acima..mas..
no grid o 3º item, no campo da embalagem, fica em branco, pois o unitário dele é diferente do registro em que o DataSet está ponteirado..
Gostei + 0
28/04/2005
Cabelo
Gostei + 0
29/04/2005
Cabelo
Gostei + 0
29/04/2005
Christian_adriano
Tenta o código seguinte:
with DataSet do begin Close; SQL.Text := ´select EM.C_COD_EMBALAGEM, EM.C_DESC_EMBALAGEM from EB0100 EM where´ SQL.Add(´EM.C_COD_EMB_MINIMA = :COD order by C_DESC_EMBALAGEM´); // Condição pelo "C_UNITARIO" da tabela de Materiais já Consultada ParamByName(´COD´).asInteger := cdsMATERIAIS.FieldByName(´C_UNITARIO´).asInteger; Open; end
Se não funciona me dê um toque para resolvermos isso.
t+
Christian.
Gostei + 0
02/05/2005
Cabelo
Muito Obrigado pela atenção...
Mas o select q você me passou eu já faço, não usando parâmetros, mas usando o fieldbyname direto.. o problema está no segunte.. tenho que ´puxar´ os registros de três tabelas distintas sendo que duas não possuem relacionamento nenhum..
Acho que meu problema está em achar o evento certo para colocar os selects..
Eu tenho a tabela de materiais cujo um dos campos é C_UNITARIO. Tenho uma outra tabela a de embalagens, cujo um campo também é C_UNITARIO. O problema está quando eu uso este material em uma terceira tabela.. Tenho um GRID com dois campos lookups, sendo estes campos C_MATERIAL e C_EMBALAGEM, que será selecionado pelo usuário para realizar o cadastro de entrada de material.
Na hora de inserir o material, funciona blz, pois quando eu seleciono um material, eu executo um outro select, na tabela de embalagens, para trazer ´somente as embalagens´ que coincidem com o C_UNITARIO. (este é o select que você me passou), até aqui tudo beleza.
O problema começa quando tenho vários registros nesta 3ª tabela, e os C_UNITARIO´s não coincidem.
Isto é o select da embalagem fica ponteirada no 1º registro, que coincide com o primeiro material. Quando o C_UNITARIO é diferente do primeiro fica com a embalagem em branco..
o resultado da consulta acima :
Agradeço a atenção, mas tem outra sugestão?
Gostei + 0
03/05/2005
Cabelo
Gostei + 0
05/05/2005
Cabelo
Gostei + 0
06/05/2005
Cabelo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)