Código
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.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009