【delphi开源代码栏目提醒】:网学会员--在 delphi开源代码编辑为广大网友搜集整理了:CountList.pas绩等信息,祝愿广大网友取得需要的信息,参考学习。
unit CountList;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ADODB, Db, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls, Buttons,
DBCtrls, Spin, TeEngine, Series, TeeProcs, Chart, DBChart, Mask;
type
TCountListForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
AQList: TADOQuery;
DSList: TDataSource;
AQListID: TSmallintField;
AQListType: TWideStringField;
AQListDate: TDateTimeField;
AQListSummary: TWideStringField;
AQListIncome: TFloatField;
AQListCost: TFloatField;
ATType: TADOTable;
DSType: TDataSource;
ATTypeTypeID: TWideStringField;
ATTypeTypeName: TWideStringField;
AQListTypeList: TStringField;
YearEdit: TSpinEdit;
MonthEdit: TSpinEdit;
DayEdit: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
BitBtn1: TBitBtn;
TypeSelect: TComboBox;
Panel3: TPanel;
Label5: TLabel;
Label6: TLabel;
Panel5: TPanel;
AQListSum: TADOQuery;
DSListSum: TDataSource;
AQListYearMonthS: TStringField;
AQListYearMonth: TIntegerField;
AQListGroupSum: TADOQuery;
DSListGroupSum: TDataSource;
AQListGroupSumgyear: TSmallintField;
AQListGroupSumgmonth: TSmallintField;
AQListGroupSumSIncome: TFloatField;
AQListGroupSumScost: TFloatField;
AQListGroupSumYearMonth: TIntegerField;
AQListGroupSumYearMonthS: TStringField;
DBChart1: TDBChart;
Series1: TBarSeries;
Series2: TBarSeries;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AQListGroupSumCalcFields(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CountListForm: TCountListForm;
implementation
uses
Main, DataModule;
{$R *.DFM}
procedure TCountListForm.BitBtn1Click(Sender: TObject);
var
SqlStr, SqlStrSum, SqlStrGSum: String;
SeleTF: Boolean;
TypeID: String;
begin
SqlStr := 'Select * From list ';
SqlStrSum := 'Select Sum(InCome) as Sincome,Sum(Cost) as Scost From List ';
SqlStrGSum :='select year(date) as gyear, month(date) as gmonth, sum(income) as SIncome,Sum(cost) as Scost from list ';
SeleTF := false;
if YearEdit.Value <> 0 then
begin
SqlStr := SqlStr + 'Where year(date)=' + IntToStr(YearEdit.Value);
SqlStrSum := SqlStrSum + 'Where year(date)=' + IntToStr(YearEdit.Value);
SqlStrGSum := SqlStrGSum + 'Where year(date)=' + IntToStr(YearEdit.Value);
SeleTF := true;
if MonthEdit.Value <> 0 then
begin
SqlStr := SqlStr + ' and month(date)=' + IntToStr(MonthEdit.Value);
SqlStrSum := SqlStrSum + ' and month(date)=' + IntToStr(MonthEdit.Value);
SqlStrGSum := SqlStrGSum + ' and month(date)=' + IntToStr(MonthEdit.Value);
if DayEdit.Value <> 0 then
begin
SqlStr := SqlStr + ' and day(date)=' + IntToStr(DayEdit.Value);
SqlStrSum := SqlStrSum + ' and day(date)=' + IntToStr(DayEdit.Value);
SqlStrGSum := SqlStrGSum + ' and day(date)=' + IntToStr(DayEdit.Value);
end;
end;
end;
if Trim(TypeSelect.Text) <> '全部' then
begin
TypeID := ATType.Lookup('TypeName',TypeSelect.Text,'TypeID');
if SeleTF = true then
begin
SqlStr := SqlStr + ' and ';
SqlStrSum := SqlStrSum + ' and ';
SqlStrGSum := SqlStrGSum + ' and ';
end else
begin
SqlStr := SqlStr + 'Where ';
SqlStrSum := SqlStrSum + 'Where ';
SqlStrGSum := SqlStrGSum + 'Where ';
end;
SqlStr := SqlStr + 'Type="' + TypeID + '"';
SqlStrSum := SqlStrSum + 'Type="' + TypeID + '"';
SqlStrGSum := SqlStrGSum + 'Type="' + TypeID + '"';
end;
SqlStrGSum := SqlStrGSum + ' group by year(date),month(date)';
AQList.Close;
AQList.SQL.Text := SqlStr;
AQList.Open;
AQListSum.Close;
AQListSum.SQL.Text := SqlStrSum;
AQListSum.Open;
AQListGroupSum.Close;
AQListGroupSum.SQL.Text := SqlStrGSum;
AQListGroupSum.Open;
end;
procedure TCountListForm.FormCreate(Sender: TObject);
begin
Main.MainForm.OpenForm;
Main.ActiveForm := 21;
Self.Left := Main.MainForm.Left;
Self.Top := Main.MainForm.Top+60;
attype.Open;
ATType.First;
while not(ATType.Eof) do
begin
TypeSelect.Items.Add(ATTypeTypeName.Value);
ATType.Next;
end;
ATType.First;
end;
procedure TCountListForm.AQListGroupSumCalcFields(DataSet: TDataSet);
begin
AQListGroupSumYearMonthS.Value := IntToStr(AQListGroupSumGYear.Value)+'年'+IntToStr(AQListGroupSumGMonth.Value)+'月';
AQListGroupSumYearMonth.Value := StrToInt(IntToStr(AQListGroupSumGYear.Value)+IntToStr(AQListGroupSumGMonth.Value));
end;
procedure TCountListForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Main.MainForm.CloseForm;
end;
end.
上一篇:
CountFeeDM.pas
下一篇:
月入5000,你有什么资格谈生活