Delphi Passo a Passo Pesquisa Cliente 2
-
Upload
adriano-vieira-da-silva -
Category
Documents
-
view
76 -
download
13
Transcript of Delphi Passo a Passo Pesquisa Cliente 2
![Page 1: Delphi Passo a Passo Pesquisa Cliente 2](https://reader033.fdocument.pub/reader033/viewer/2022052411/55721085497959fc0b8d4bed/html5/thumbnails/1.jpg)
1.20 inserir dois btBtn da paleta additional
Propriedade 1:
KIND: bkOk
NAME: btnOk
CAPTION: Ok
Propriedade 2:
KIND: bkCancel
NAME: btnCancelar
CAPTION: Cancelar
1.21 clique duplo no botão localizar no formulário frmLocCliente
A atualização do ClienteDataSet é muito simples, ou seja, ele recebe o valor do
Edit e manda para a query, ela faz a comparação com o parâmetro, e retorna o
resultado.
1.22 clique duplo no botão localizar no formulário frmCadCliente
1.23 configurando parâmetro
![Page 2: Delphi Passo a Passo Pesquisa Cliente 2](https://reader033.fdocument.pub/reader033/viewer/2022052411/55721085497959fc0b8d4bed/html5/thumbnails/2.jpg)
Criar uma procedure Localizado no frmLocCliente
Estamos alimentando o ClienteDataSet através do parâmetro.
Selecione o GRID e no evento OndblClick com clique duplo.
Clique duplo no botão OK
Clique duplo no botão Cancelar
![Page 3: Delphi Passo a Passo Pesquisa Cliente 2](https://reader033.fdocument.pub/reader033/viewer/2022052411/55721085497959fc0b8d4bed/html5/thumbnails/3.jpg)
2 Evento OnReconcileError
Selecione o evento OnReconcileError do cdsCadCliente
Na cláusula Uses coloque a Unit Dialogs
Assim quando ocorrer algum erro no clientDataSet será emitida uma mensagem
de erro, ficando fácil tratar o erro.
3 Campo auto incremento.
O firebird não possui auto incremento por isso utilizamos generator. Abra
o IbExpert clique com o botão direito do mouse e escolha New Generator.
Name: GEN_CLICODIGO
Value: 1000
Depois dê um commit utilizando o botão com um raio.
È preciso criar um tabela que contenha apena um registro:
Tabela: código
Campo: id = 1
Volte Ao Delphi e insira um componente SqlQuery da paleta DbExpress
no dmCliente.
Propriedade:
Name: sqyPedCod
sqlConnection: dmPrincipa.sqlConSisComercial
SQL:
![Page 4: Delphi Passo a Passo Pesquisa Cliente 2](https://reader033.fdocument.pub/reader033/viewer/2022052411/55721085497959fc0b8d4bed/html5/thumbnails/4.jpg)
Cada vez que executamos um select, teremos um novo número em ordem
crescente, a função GEN_ID está incrementando o valor e retornando ao select.
Agora precisamos de um evento para buscar o generator na query e gravá-lo no
banco de dado, o evento mais adequado é BeforeUpdateRecord do Provider, ele é
chamado no momento que o registro está preste a ser enviado ao banco de dado.
Precisamos definir um valor para chave primária, já que alimentamos o campo
somente no evento.
O que vamos fazer e preencher o campo chave com um valor negativo, já que
não teremos clientes com código negativo.
3.1 Declare na seção private do dmCliente:
No evento OnCreate do dmCliente inicie a variável vNum:=0
3.2 Colocar número negativo na chave primaria:
Selecione o evento OnNewRecord do clientDataSet.
A cada registro novo a variável será decrementada e enviada ao campo
clicodigo. Neste caso não a problema se o usuário cancelar a inclusão, pois neste
momento apenas utilizaremos o sequenciador negativo.
3.3 selecione o componente dspCadCliente e o evento BeforeUpdateRecord
![Page 5: Delphi Passo a Passo Pesquisa Cliente 2](https://reader033.fdocument.pub/reader033/viewer/2022052411/55721085497959fc0b8d4bed/html5/thumbnails/5.jpg)
Selecione dspCadCliente na propriedade options lique a opção
poPropagateChanges.
Clique duplo no cdsCadCliente selecione clicodigo no evento OngetTex
3.4 controle de ocorrência
Clique duplo no cdsCadCliente selecione clicodigo propriedade ProviderFlags
marque true para a opção pflnKey, e faça o mesmo para sdscadcliente.
Selecione dspCadCliente e altere a propriedade UpDataMode para
upwereKeyOnly