Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 20 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
50 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Passo a Passo de como gerar parcelas usando DBExpress com ClientDataSet
Publicado por agnaldosouza : Sexta, Novembro 19, 2004 - 03:15 GMT-3 (12227 leituras)
Comentários comentar   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Passo a Passo de como gerar parcelas usando DBExpress com ClientDataSet.
Para fazer esse exercício você precisará de:
2 edits da palheta Standard
1 DateTimePicker da palheta Win32
1 DBGRig para ver os dados
eu uso particularmente os componentes da RXLib
seria
1 edit da palheta standard
1 CurrencyEdit da palheta RXControls
1 DateEdit1 da palheta RXControls
1 DBGrid paraver os dados
mas nesse exemplo usarei os primeiros, pois muita gente não tem RX instalado ou não gostam de usar outros componentes que não são nativos vamos lá

usando o interbase

criaremos um banco com nome de parcelas.gdb
nesse banco crie uma tabela que chamei de parcela com os respectivos valores
CREATE TABLE "PARCELA"
(
"VALOR" DECIMAL(10, 2),
"DATA" DATE,
"PARC" INTEGER
);

ok feito isso vamos ao delphi

coloque no formulário

os 2 edits com os nomes de
EdtValor e EdParcela
em o DateTimePicker com o nome de EdtData

conectando ao banco

Usaremos a palheta DBExpress

coloque um SQLConnection e conect no banco de dados fique atento para o dialet ele vem por defaut 1 coloque 3 conect com o banco
coloque um SQLDataSet1 na propriedade SQLConnection coloque SQLConnection1 para linkar o SQLDataSet1 com o banco de dados.
A propriedade CommandText ( coloque select * from PARCELA)
um DataSetProvider1 com a propriedade DataSet ligada ao SQLDataSet1 coloque agora um ClientDataSet1 propriedade provaidername ligada ao DataSetProvider1 e finalmente um DataSource1
ligado ao ClientDataSet1 e o DBGrid1 com a propriedade DataSourse ligada ao DataSource1
feito isso vamos lá

coloque também SQLDataSet2,DataSetProvider2,
ClientDataSet2 e repita o procedimento anterior só que no CommandText do SQLDataSet2 coloque SELECT COUNT(PARC) FROM PARCELA

No Evento onClick do botão incluir coloque

procedure TForm1.Btn_IncluirClick(Sender: TObject);
var
i: Byte;
begin
//Abro o Banco
ClientDataSet1.Open;
//Chamo um procedimento para verificar se tem prestação pendente
verificaparcela;
// Minha variável no caso i inicialmente é 0
i:=0;
// minha variável recebe 1 do numero de parcelas no caso o digitado dentro de edParcela.Text
for i := 1 to StrToInt(edParcela.Text) do
begin
// verifico o numero é menor do que o da variavel
if ClientDataSet1.RecordCount < i then
// se for insiro
ClientDataSet1.Insert
else
//senao edito
ClientDataSet1.Edit;
//PARC vai receber o numero de parcelas que eu digitei
ClientDataSet1.FieldByName('PARC').Value := i;
//VALOR vai receber o valor digitado dividido pelo numero de parcelas
ClientDataSet1.FieldByName('VALOR').Value :=(StrToFloat(edtValor.Text)/(StrToInt(edParcela.Text)));
//DATA recebe a data replicando conforme o numero das parcelas
ClientDataSet1.FieldByName('DATA').Value:= incMonth( Date, i - 1);
//Gravo no banco
ClientDataSet1.Post;
//vou para o próximo
Next;
end;
//Dou um updade para gravar esse registro no banco lembre-se que quando
//trabalho com clientDataSet eu trabalho em cachê é necessário dar um
//ApplyUpdates(0) para gravar no banco o (0) significa o numero de erros
//claro com certeza isso só vai acontecer se não tiver nenhum erro ok
ClientDataSet1.ApplyUpdates(0);
//Mando uma mensagem de texto
showmessage('Arquivo incuido com sucesso');
end;


em private declare o procedimento de verificacao
procedure verificaparcela; Ctrl+Shift+C para criar o procedimento

procedure TForm1.verificaparcela;
var
//Crio uma variavel para verificar o resultado
result:string;
begin
//Aqui verifico se a coluna em que esta a parcela esta vazia
if ClientDataSet1.Fields.Fields[2].AsString<>'' then
begin
//Abro o ClientDataset de verificação de contagem dos campos
ClientDataSet2.Open;
begin
//result vai receber a quantidade de parcelas em aberto
result:=ClientDataSet2COUNT.AsString;
//envio uma mesagem para o usuario falando que tem a quantidade que retornar
//em aberto
Showmessage('Você possui '+ result +' parcelas pendentes' + #13
+ 'Nao é possivel efetuar pagamento');
//aborto a operação e fecho o ClientDataSet referente a contagem dos campos
abort;
ClientDataSet2.Close;
end;
end;
end;

Esse é um exemplo simples dai use a imaginação para melhorar e dar mais produtividade na sua execução

Exemplo criado por
Agnaldo de Souza Filho: Analista de Sistemas


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados