Atribuir valor automaticamente
Olá...
Bem sou muito iniciante em Delphi, infelizmente naum tenho condições de fazer um curso de delphi no momento então estou me esforçando ao máximo para aprender algo...estou tentando desenvolver um simples sistema para locadora....estou utilizando Delphi 7.0 e Firebird 1..5...
Seguinte: Já fiz o sistema de cadastro de Clientes e Filmes...funciona perfeitamente...mas eu queria saber como fazer para que cada vez que eu clicar no botão ´INSERIR´(que limpa a tela para um novo cadastro) eu atribua um valor automaticamente para o Edit Código...por exemplo
no meu cadastor de usuários tem lá:
Código
Nome
CPF
Endereço....etc...
eu que no campo código já venha uma numeração crescente...tipo o primeiro cadastro 1, o segundo 2, o terceiro 3 e etc....
A outra dúvida eh a seguinte....
Fiz o sistema de cadastro blz...mas estou tendo dificuldades para fazer o de consulta...no form eu tenho um dbgrid e um edit...eu qro que conforme eu vá digitando o nome do cliente o sistema vá filtrando os nomes no dbgrid....
Por favor peço que me ajudem...estou me esforçando p/ aprender...mas sozinho eh dificil d++...como sou iniciante peço que alguem explica detalhadamente...
Desde já agradeço
Vlw galera
Bem sou muito iniciante em Delphi, infelizmente naum tenho condições de fazer um curso de delphi no momento então estou me esforçando ao máximo para aprender algo...estou tentando desenvolver um simples sistema para locadora....estou utilizando Delphi 7.0 e Firebird 1..5...
Seguinte: Já fiz o sistema de cadastro de Clientes e Filmes...funciona perfeitamente...mas eu queria saber como fazer para que cada vez que eu clicar no botão ´INSERIR´(que limpa a tela para um novo cadastro) eu atribua um valor automaticamente para o Edit Código...por exemplo
no meu cadastor de usuários tem lá:
Código
Nome
CPF
Endereço....etc...
eu que no campo código já venha uma numeração crescente...tipo o primeiro cadastro 1, o segundo 2, o terceiro 3 e etc....
A outra dúvida eh a seguinte....
Fiz o sistema de cadastro blz...mas estou tendo dificuldades para fazer o de consulta...no form eu tenho um dbgrid e um edit...eu qro que conforme eu vá digitando o nome do cliente o sistema vá filtrando os nomes no dbgrid....
Por favor peço que me ajudem...estou me esforçando p/ aprender...mas sozinho eh dificil d++...como sou iniciante peço que alguem explica detalhadamente...
Desde já agradeço
Vlw galera
Ramms
Curtidas 0
Respostas
Yallebr
24/05/2005
Amigo,
As duas perguntas vc encontra já no forum.
Procure primeiro por ´Autoincremento´ ou ´Autoincremento DbExpress´.
A segunda basta vc utilizar ¬ em sua pesquisa sql. E coloca para disparar a consulta no onchange do edit. Isso não é bom para a velocidade.
As duas perguntas vc encontra já no forum.
Procure primeiro por ´Autoincremento´ ou ´Autoincremento DbExpress´.
A segunda basta vc utilizar ¬ em sua pesquisa sql. E coloca para disparar a consulta no onchange do edit. Isso não é bom para a velocidade.
GOSTEI 0
Ramms
24/05/2005
Entaum kra com relação ao sistema de consulta..eu não tenho a minima idéia de como faze-lo...to ligado do ¬ mas naum sei como fazer o sistema inteiro....sou muito cabaço em delphi ainda....vlw...
GOSTEI 0
Yallebr
24/05/2005
Amigo isso é SQL.
Agora vc precisa executar seu comando. O q vc está utilizando ADO, BDE, DDExpress ou o q ?
Vou dar o exemplo com DbExpress - ClientDataSet.
CDS.CommandText := ComandoSQL;
CDS.Open;
Lembre -se de colocar o DataSetProvider / option para AllowCommandText para True.
Fala qual tecnologia de acesso a dados vc ta usando.
ComandoSQL = ´Select Campos from Tabela where Nome = ´Yalle¬´
Agora vc precisa executar seu comando. O q vc está utilizando ADO, BDE, DDExpress ou o q ?
Vou dar o exemplo com DbExpress - ClientDataSet.
CDS.CommandText := ComandoSQL;
CDS.Open;
Lembre -se de colocar o DataSetProvider / option para AllowCommandText para True.
Fala qual tecnologia de acesso a dados vc ta usando.
GOSTEI 0
Ramms
24/05/2005
DBExpress kra..
GOSTEI 0
Roger1976
24/05/2005
Kra, essa pesquisa é feita através do findnearest. Dê 2 cliques no campo onde vc vai fazer a consulta, e digite a linha de comando abaixo:
dm.cdsConsulta.FindNearest([campo.text]);
dm - é o nome que dei no data module - poderia ser qualquer um
cdsConsulta - é o nome que dei para o clientdataset
Se vc colocou os componentes direto no formulário, não precisa do nome do data module, é só colocar o nome do clientdataset que vc deu.
Eu tbem tô começando a aprender o delphi...
Qto ao campo auto incremento, eu tbem tô buscando uma solução pra este problema, caso eu a encontre, o avisarei.
Espero ter ajudado...
[]´s
dm.cdsConsulta.FindNearest([campo.text]);
dm - é o nome que dei no data module - poderia ser qualquer um
cdsConsulta - é o nome que dei para o clientdataset
Se vc colocou os componentes direto no formulário, não precisa do nome do data module, é só colocar o nome do clientdataset que vc deu.
Eu tbem tô começando a aprender o delphi...
Qto ao campo auto incremento, eu tbem tô buscando uma solução pra este problema, caso eu a encontre, o avisarei.
Espero ter ajudado...
[]´s
GOSTEI 0
Ramms
24/05/2005
Awe kra pelo seu exemplo com o DataModule2.ClientDataSet1.FindNearest([Edit1.Text]);
Tipo ele vai pro ultimo registro do dbgrid...com qualquer nome que eu digitar...eu tinha consguido fazer uma busca só que com uma parada de params...de acordo com o exemplo da revista clubedelphi numero 61 do mes passado....só que qdo clicava no registro só fechava o form....
Se alguem quiser e puder me ajudar agradeço....
Tipo ele vai pro ultimo registro do dbgrid...com qualquer nome que eu digitar...eu tinha consguido fazer uma busca só que com uma parada de params...de acordo com o exemplo da revista clubedelphi numero 61 do mes passado....só que qdo clicava no registro só fechava o form....
Se alguem quiser e puder me ajudar agradeço....
GOSTEI 0
Roger1976
24/05/2005
Véio, tem outro detalhe que acabei me esquecendo. O campo a ser pesquisado tem que tá indexado. Então, tem que acrescentar mais uma linha de comando. No evento [b:b70a1c0b99]onenter[/b:b70a1c0b99], digite:
[b:b70a1c0b99]
dm.cdsConsultaSimples.IndexFieldNames := ´NOME DO CAMPO´;[/b:b70a1c0b99]
No formulário, vá ao evento [b:b70a1c0b99]oncreate [/b:b70a1c0b99]e digite:
[b:b70a1c0b99] datamodule.datasource.DataSet.Open;[/b:b70a1c0b99]
no [b:b70a1c0b99]onclose[/b:b70a1c0b99]:
[b:b70a1c0b99] datamodule.datasource.DataSet.Close;[/b:b70a1c0b99]
Se não for usar data module, ignore o datamodule.
E, por fim, aquela linha que te passei, que será digitada no evento [b:b70a1c0b99]onchange[/b:b70a1c0b99]:
[b:b70a1c0b99] datamodule.clientdataset.FindNearest([campo.Text]);[/b:b70a1c0b99]
Eu fiz e refiz, deu certo, qualquer problema, te mando o projeto que eu fiz, é só mandar o seu e-mail.
[b:b70a1c0b99]
dm.cdsConsultaSimples.IndexFieldNames := ´NOME DO CAMPO´;[/b:b70a1c0b99]
No formulário, vá ao evento [b:b70a1c0b99]oncreate [/b:b70a1c0b99]e digite:
[b:b70a1c0b99] datamodule.datasource.DataSet.Open;[/b:b70a1c0b99]
no [b:b70a1c0b99]onclose[/b:b70a1c0b99]:
[b:b70a1c0b99] datamodule.datasource.DataSet.Close;[/b:b70a1c0b99]
Se não for usar data module, ignore o datamodule.
E, por fim, aquela linha que te passei, que será digitada no evento [b:b70a1c0b99]onchange[/b:b70a1c0b99]:
[b:b70a1c0b99] datamodule.clientdataset.FindNearest([campo.Text]);[/b:b70a1c0b99]
Eu fiz e refiz, deu certo, qualquer problema, te mando o projeto que eu fiz, é só mandar o seu e-mail.
GOSTEI 0
Wagsilvasilva
24/05/2005
Ola Ramms. Olha só que coincidência.
Também sou iniciante em delphi e, também estou começando a desenvolver um sistema pra video locadoras, porém ainda estou no primeiro formulário (cadastro de clientes), e foi a única tabela que criei até agora. Para conectar ao banco utilizo dbexpress com sqlconection, sqldataset, datasetprovider e clientedataset (fiz essa conexão graças a edição nº 61 da revista clubedelphi, te aconselho comprar esta edição, ou melhor, assiná-la. Tenho aprendido muitas coisas lá.
Meu primo utiliza o ibexpert para fazer um campo autoincremento com o interbase. Voce consegue faze-lo apenas com alguns cliques.
Tenho algumas linhas de código que baixei para conseguir fazer este autoincremento, porém ainda nao testei. Se quiser estas linhas me passe seu e-mail que te envio os códigos.
Também sou iniciante em delphi e, também estou começando a desenvolver um sistema pra video locadoras, porém ainda estou no primeiro formulário (cadastro de clientes), e foi a única tabela que criei até agora. Para conectar ao banco utilizo dbexpress com sqlconection, sqldataset, datasetprovider e clientedataset (fiz essa conexão graças a edição nº 61 da revista clubedelphi, te aconselho comprar esta edição, ou melhor, assiná-la. Tenho aprendido muitas coisas lá.
Meu primo utiliza o ibexpert para fazer um campo autoincremento com o interbase. Voce consegue faze-lo apenas com alguns cliques.
Tenho algumas linhas de código que baixei para conseguir fazer este autoincremento, porém ainda nao testei. Se quiser estas linhas me passe seu e-mail que te envio os códigos.
GOSTEI 0
Ramms
24/05/2005
wag kra ehauiheia...eu tenho essa edição da revista....consegui fazer a consulta só que qdo clica no nome fecha a tela (com o exemplo da revista)....
está ficando muito bom o sistema em breve posto para vcs avaliarem
E qto a sua dica roger vou testa-la qualquer coisaposto aki...vlwz...
está ficando muito bom o sistema em breve posto para vcs avaliarem
E qto a sua dica roger vou testa-la qualquer coisaposto aki...vlwz...
GOSTEI 0
Ramms
24/05/2005
Só pra avisar.....
Funcionou awe awe aweii vlw....
Funcionou awe awe aweii vlw....
GOSTEI 0
Cabelo
24/05/2005
Colega..
seguinte..
no evento KeyPress do seu Edit, coloque esta procedure :
procedure P_Localizar(l_Key : Char; l_Edit : TEdit; l_Client : TClientDataSet; l_Campo : string; l_grid : TDBGrid);
begin
if (l_key <> #13) then
begin
if (l_key <> 8) then
begin
l_Client.Locate(l_Campo, l_Edit.Text + l_key, [loCaseInsensitive, loPartialKey]);
end
else
begin
l_Client.Locate(l_Campo, l_Edit.Text, [loCaseInsensitive, loPartialKey]);
end;
end
else
begin
l_Client.Edit;
l_grid.SetFocus;
end;
end;
Espero ter ajudado.
seguinte..
no evento KeyPress do seu Edit, coloque esta procedure :
procedure P_Localizar(l_Key : Char; l_Edit : TEdit; l_Client : TClientDataSet; l_Campo : string; l_grid : TDBGrid);
begin
if (l_key <> #13) then
begin
if (l_key <> 8) then
begin
l_Client.Locate(l_Campo, l_Edit.Text + l_key, [loCaseInsensitive, loPartialKey]);
end
else
begin
l_Client.Locate(l_Campo, l_Edit.Text, [loCaseInsensitive, loPartialKey]);
end;
end
else
begin
l_Client.Edit;
l_grid.SetFocus;
end;
end;
Espero ter ajudado.
GOSTEI 0
Ramms
24/05/2005
Opa kra naum entendi o que vc quis dizer com esse código ^^ heuiahei acontece....
Entaum tenho mais algumas dúvidas:
Toda vez que eu abro o form de cadastro ele mostra o ultimo registro lá...eu qria que ele iniciasse em branco....mas com a tabela aberta...
E
Alguem sabe aonde eu posso encontrar um bom tuto sobre Master Detail??
Tipo eu tenho que vincular uma fita alugada a um locatário...tipo tem que ficar registrado que akele kra alugou akela fita...vlw
Entaum tenho mais algumas dúvidas:
Toda vez que eu abro o form de cadastro ele mostra o ultimo registro lá...eu qria que ele iniciasse em branco....mas com a tabela aberta...
E
Alguem sabe aonde eu posso encontrar um bom tuto sobre Master Detail??
Tipo eu tenho que vincular uma fita alugada a um locatário...tipo tem que ficar registrado que akele kra alugou akela fita...vlw
GOSTEI 0