Wilke1 0 Denunciar post Postado Abril 3, 2007 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
Hugo Slepicka 0 Denunciar post Postado Abril 4, 2007 Partindo do principio que no Grid 1 estejam os dados do Promotor... e que o Grid 2 esteja ligado a Query que efetuará a consulta... No Evento OnCellClick do DBGrid Faça a consulta pela localização do Promotor... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Abril 4, 2007 Poderia disparar a consulta tb na propriedade AfterScroll da query1, assim quando navegar de um registro para outro no grid ele vai atualizar. Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Abril 4, 2007 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
marcio.theis 3 Denunciar post Postado Abril 4, 2007 É 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
Wilke1 0 Denunciar post Postado Abril 4, 2007 É 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
Wilke1 0 Denunciar post Postado Abril 4, 2007 É 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 resolvidovaleu marcio http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Abril 4, 2007 beleza... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Abril 4, 2007 beleza... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif 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
marcio.theis 3 Denunciar post Postado Abril 4, 2007 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
Wilke1 0 Denunciar post Postado Abril 4, 2007 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
marcio.theis 3 Denunciar post Postado Abril 4, 2007 Teria como você rodar passo-a-passo para ver em qual linha gera o erro ? Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Abril 4, 2007 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
marcio.theis 3 Denunciar post Postado Abril 4, 2007 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
Wilke1 0 Denunciar post Postado Abril 4, 2007 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
Wilke1 0 Denunciar post Postado Abril 4, 2007 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 marcioMarcio 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
marcio.theis 3 Denunciar post Postado Abril 4, 2007 Caso esta opção esteja marcada, terá de fazer um while sobre as lojas e fazer um insert na tabela. Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Abril 4, 2007 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
marcio.theis 3 Denunciar post Postado Abril 5, 2007 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
Wilke1 0 Denunciar post Postado Abril 5, 2007 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