Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wilke1

com dbgrid

Recommended Posts

ola amigos e o seguinte eu tenho dois dbgrids, eu quero selecionar no dbgrid1 o codigo do promotor de vendas , e no outroamostrar aonde ele se encontra trabalhando.usando querydesde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia disparar a consulta tb na propriedade AfterScroll da query1, assim quando navegar de um registro para outro no grid ele vai atualizar.

voce tem algum exemplo marcio?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É simples, vai no evento AfterScroll da query1 e faça a localização na query2, algo do tipo:

 

query2.Close;query2.SQL.Clear;query2.SQL.Add('select *');query2.SQL.Add('from tabel2');query2.SQL.Add('where tabela2.campo = ' + IntToStr(query1CAMPO.Value));query2.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É simples, vai no evento AfterScroll da query1 e faça a localização na query2, algo do tipo:

 

query2.Close;query2.SQL.Clear;query2.SQL.Add('select *');query2.SQL.Add('from tabel2');query2.SQL.Add('where tabela2.campo = ' + IntToStr(query1CAMPO.Value));query2.Open;
vou fazer o teste agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

É simples, vai no evento AfterScroll da query1 e faça a localização na query2, algo do tipo:

 

query2.Close;query2.SQL.Clear;query2.SQL.Add('select *');query2.SQL.Add('from tabel2');query2.SQL.Add('where tabela2.campo = ' + IntToStr(query1CAMPO.Value));query2.Open;
vou fazer o teste agora

 

resolvido

valeu marcio http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Marcio estou com outra duvida eo seguinte na hora de cadastrar um novo promotor de vendas ele da essa mensage'' is not a valid integer value'' estou fazendo assim no botão novoQrypromotores.Close; Qryhorariopromotor.close; if messagedlg('Deseja Cadastrar um Novo Promotor de Vendas',mtconfirmation,[mbyes,mbno],0)=mryes then begin Qrypromotores.open; Qrypromotores.Insert; Qryhorariopromotor.Open; Qryhorariopromotor.Insert; Dblookupcomboboxfornecedor.SetFocus; Dblookupcombobox11.KeyValue:=''; Dbcombobox1.Text:=''; Dbedit44.Text:=''; Dbedit45.Text:='';agora quando eu desabilito o evento afterscroll da qrypromotores ai ele permite incluirdesde ja agradeço pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque somente uma validação no evento AfterScroll antes de abrir, algo do tipo:

 

if not query1CAMPO.IsNull then	begin	query2.Close;	query2.SQL.Clear;	query2.SQL.Add('select *');	query2.SQL.Add('from tabel2');	query2.SQL.Add('where tabela2.campo = ' + IntToStr(query1CAMPO.Value));	query2.Open;	end;

Assim validando para somente consultar caso o código exista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque somente uma validação no evento AfterScroll antes de abrir, algo do tipo:

if not query1CAMPO.IsNull then	begin	query2.Close;	query2.SQL.Clear;	query2.SQL.Add('select *');	query2.SQL.Add('from tabel2');	query2.SQL.Add('where tabela2.campo = ' + IntToStr(query1CAMPO.Value));	query2.Open;	end;
Assim validando para somente consultar caso o código exista.
marcio ainda continua dando esse erroeu fiz assimif not Qrypromotores.FieldByName('CD_PROMOTOR').IsNull then

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria como você rodar passo-a-passo para ver em qual linha gera o erro ?

eu fiz passo a passo e ele dar erro aqui ''Qrypromotores.Insert''

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não poderia ser nesta linha em si, visto que o erro acontece quando ele tenta atribuir um valor a um campo inteiro... mas o valor esta nulo, quando estiver rodando, use o F7, assim ele vai entrar em todas as procedures e functions, podendo ver exatamente a linha do erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não poderia ser nesta linha em si, visto que o erro acontece quando ele tenta atribuir um valor a um campo inteiro... mas o valor esta nulo, quando estiver rodando, use o F7, assim ele vai entrar em todas as procedures e functions, podendo ver exatamente a linha do erro.

eu vou analisar ai eu te aviso marcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não poderia ser nesta linha em si, visto que o erro acontece quando ele tenta atribuir um valor a um campo inteiro... mas o valor esta nulo, quando estiver rodando, use o F7, assim ele vai entrar em todas as procedures e functions, podendo ver exatamente a linha do erro.

eu vou analisar ai eu te aviso marcio
Marcio deu certo eu coloquei um close antes do insert marcio me descupe pela pertubação, mas eu tenho outra duvidae o seguinte eu tenho um dblookupcombobox, e nele eu tenho uma opção de selecionar todas as lojas,mas agora eu quero seleciona todas as lojas, e essas lojas vem ser incluidas todas de uma só veztipo assimif DBLOOKUPCOMBOBOX11.Text='TODAS AS LOJAS' then Qryhorariopromotor.FieldByName('cd_loja').AsString:= 001,002,003,004 ECT..voce entendeu desde ja agradeço pela sua ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso esta opção esteja marcada, terá de fazer um while sobre as lojas e fazer um insert na tabela.

marcio me descupa pela ignorancia,mas não consegui montar while , voce tem algum exemplo :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho nada pronto, foi uma forma de resolver que encontrei, você precisa montar, vai indo por passos, analisando as linhas geradas... e ver o produto final gerado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho nada pronto, foi uma forma de resolver que encontrei, você precisa montar, vai indo por passos, analisando as linhas geradas... e ver o produto final gerado...

procedure TFMFornecedor.QryhorariopromotorAfterInsert(DataSet: TDataSet);begin inherited; if DBLOOKUPCOMBOBOX11.Text='Todas as lojas' then datamoduledetalhes.QueryLoja.First; while not datamoduledetalhes.QueryLoja.Eof do begin Qryhorariopromotor.sql.clear; Qryhorariopromotor.SQL.Add('insert into tb_horario_promotores(cd_promotor,cd_loja,dia_semana,ds_hora_inicial,ds_hora_final)'); Qryhorariopromotor.SQL.Add('values(:codpromotor,:loja,:dia,:hora1,:hora2) '); Qryhorariopromotor.ParamByName('codpromotor').Value:=Qrypromotores.FieldByName('cd_promotor').AsString; Qryhorariopromotor.ParamByName('loja').Value:=datamoduledetalhes.QueryLoja.FieldByName('cd_loja').AsString; Qryhorariopromotor.ParamByName('dia').Value:=dbcombobox1.Text; Qryhorariopromotor.ParamByName('hora1').Value:=dbedit44.Text; Qryhorariopromotor.ParamByName('hora2').Value:=dbedit45.Text; datamoduledetalhes.QueryLoja.Next; end;end;marcio estou fazendo assim, mas ainda não deu certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.