Buscar

Como trabalhar com Classe

Código

Viu pessoal é bem simples trabalhar com classe. Vamos lá, primeiro passo cria uma "Unit", de um nome conforma a sua sugestão.Segundo passo, comece a pensar como essa classe vai te apoiar no desenvolvimento da aplicação.

Exemplo de classe:
unit uRelatorioNf;

interface
   Type
     TRelatorioNf = Class
      private
         vAno : Integer;
         vJaneiro : Real;
         vFevereiro : Real;
         vMarco : Real;
         vAbril : Real;
         vMaio : Real;
         vJunho : Real;
         vJulho : Real;
         vAgosto : Real;
         vSetembro : Real;
         vOutubro : Real;
         vNovembro : Real;
         vDezembro : Real;

         function anoOK(): Boolean;
         function janeiroOk() :Boolean;
         function fevereiroOK():Boolean;
         function marcoOK():Boolean;
         function abrilOK():Boolean;
         function maioOK():Boolean;
         function junhoOK():Boolean;
         function julhoOK():Boolean;
         function agostoOK():Boolean;
         function setembrOK():Boolean;
         function outubroOK():Boolean;
         function novembroOK():Boolean;
         function dezembroOK():Boolean;
      public
         property Ano : Integer read vAno write vAno;
         property Janeiro : Real read vJaneiro write vJaneiro;
         property Fevereiro :Real read vFevereiro write vFevereiro;
         property Marco :Real read vMarco write vMarco;
         property Abril : Real read vAbril write vAbril;
         property Maio : Real read vMaio write vMaio;
         property Junho read vJunho write vJunho;
         property Julho read vJulho write vJulho;
         property Agosto read vAgosto write vAgosto;
         property Setembro read vSetembro write vSetembro;
         property Outubro read vOutubro write vOutubro;
         property Novembro read vNovembro write vNovembro;
         property Dezembro read vDezembro write vDezembro;

         procedure IncluirAnual();
         procedure ConsultarAnual();

     End;


implementation

uses udmClasse, SysUtils, uRotinasGenericas, DB;

{ TRelatorioNf }

function TRelatorioNf.abrilOK: Boolean;
begin
  if (vAbril = null) then vAbril := 0;

     Result := vAbril >=0;
end;

function TRelatorioNf.agostoOK: Boolean;
begin
  if vAgosto = null then vAgosto:=0;

  Result := vAgosto >=0;
end;

function TRelatorioNf.anoOK: Boolean;
begin
    if (vAno = null) then vAno := 0;

    Result := vAno>=0;

end;

procedure TRelatorioNf.ConsultarAnual();
var
  mSQL : string;
begin
  mSQL := 'select month(data_emissao) AS mes,year(data_emissao)AS Ano, sum(valor_total_nf) AS Soma';
  mSQL := mSQL+ 'from vwnf_imprime_mestre  group by mes,ano order by mes';

  dmClasse.sdsSelect.Close;
  dmClasse.sdsSelect.DataSet.CommandText := mSQL;
  dmClasse.sdsSelect.Open;
  while not dmClasse.sdsSelect.Eof do
  begin

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 1 then
     vJaneiro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 2 then
     vFevereiro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 3 then
     vMarco := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 4 then
     vAbril := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 5 then
     vMaio := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 6 then
     vJunho := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 7 then
     vJulho := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 8 then
     vAgosto := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 9 then
     vSetembro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 10 then
     vOutubro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 11 then
     vNovembro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  if dmClasse.sdsSelect.FieldByName('mes').AsInteger = 12 then
     vDezembro := dmClasse.sdsSelect.FieldByName('soma').AsFloat;

  vAno := dmClasse.sdsSelect.FieldByName('ano').AsInteger;

  IncluirAnual;

 end;
end;
function TRelatorioNf.dezembroOK: Boolean;
begin
   if vDezembro = null then vDezembro :=0;

   Result := vDezembro >=0;
end;

function TRelatorioNf.fevereiroOK: Boolean;
begin
  if (vFevereiro = null) then vFevereiro :=0;

  Result := vFevereiro >=0;
end;

procedure TRelatorioNf.IncluirAnual;
var
   mYSQL : string;
begin
  if not anoOK then vAno :=0;
  if not janeiroOk then vJaneiro :=0;
  if not fevereiroOK then vFevereiro :=0;
  if not marcoOK then vMarco :=0;
  if not abrilOK then  vAbril :=0;
  if not maioOK then vMaio:=0;
  if not junhoOK then vJunho :=0;
  if not julhoOK then vJulho :=0;
  if not agostoOK then vAgosto :=0;
  if not setembrOK then  vSetembro :=0;
  if not outubroOK then  vOutubro :=0;
  if not novembroOK then vNovembro :=0;
  if not dezembroOK then vDezembro :=0;

   mYSQL := 'INSERT INTO  `res_faturamento_anual` ( id,ano,janeiro,fevereiro,marco,abril,maio,junho,';
   mYSQL := mYSQL+'julho,agosto,setembro,outubro,novembro,dezembro,data_inclusao) VALUES (';
   mYSQL := mYSQL+ IntToStr(vAno)+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vJaneiro))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vFevereiro))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vMarco))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vAbril))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vMaio))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vJunho))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vJulho))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vAgosto))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vSetembro))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vOutubro))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vNovembro))+',';
   mYSQL := mYSQL+ retvalor(FloatToStr(vDezembro))+')';

   if not dmClasse.MySql(mYSQL) then
      MensagemErro('Erro na conexão com a base de dados');


end;
function TRelatorioNf.janeiroOk: Boolean;
begin
   if (vJaneiro = null) then vJaneiro :=0;

   Result := vJaneiro >= 0;

end;

function TRelatorioNf.julhoOK: Boolean;
begin
  if vJulho = null then vJulho :=0;

  Result := vJulho >=0;
end;

function TRelatorioNf.junhoOK: Boolean;
begin
   if(vJunho = null) then vJunho :=0;

   Result := vJunho >=0;
end;

function TRelatorioNf.maioOK: Boolean;
begin
  if (vMaio = null) then vMaio :=0;

  Result := vMaio >=0;
end;

function TRelatorioNf.marcoOK: Boolean;
begin
  if vMarco = null then vMarco :=0;

  Result := vMarco >=0;
end;

function TRelatorioNf.novembroOK: Boolean;
begin
   if vNovembro = null then vNovembro :=0;

    Result  := vNovembro >=0;
   
end;

function TRelatorioNf.outubroOK: Boolean;
begin
    if vOutubro = null then vOutubro :=0;

    Result := vOutubro >=0;
end;

function TRelatorioNf.setembroK: Boolean;
begin
    if vSetembro = null then vSetembro :=0;

    Result := vSetembro >=0;
end;

end.

 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 03/12/09
Por: Reginaldo
Visualizada: 5522 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009