delphi passo a passo pesquisa cliente 2

6
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

Upload: adriano-vieira-da-silva

Post on 31-Jul-2015

78 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Delphi Passo a Passo Pesquisa Cliente 2

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

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

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

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

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