⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_tu.pas

📁 这是一套小型家庭理财软件delphi源代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit_TU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Series, TeEngine, ExtCtrls, TeeProcs, Chart, StdCtrls, Buttons,
  TeeFunci, DbChart, ComCtrls, Grids, Aligrid, IniFiles;

type
  TForm_TU = class(TForm)
    Panel1: TPanel;
    Chart1: TChart;
    GroupBox1: TGroupBox;
    DateTimePicker_S: TDateTimePicker;
    DateTimePicker_Z: TDateTimePicker;
    ComboBox_spot: TComboBox;
    ComboBox_type1: TComboBox;
    ComboBox_type2: TComboBox;
    ComboBox_type3: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    GroupBox2: TGroupBox;
    RadioButton_juxing: TRadioButton;
    RadioButton_xianxing: TRadioButton;
    CheckBox_3D: TCheckBox;
    BitBtn_TJ: TBitBtn;
    CheckBox_xx: TCheckBox;
    BitBtn_ZJ: TBitBtn;
    BitBtn_tjb: TBitBtn;
    GroupBox4: TGroupBox;
    ComboBox_XMM: TComboBox;
    BitBtn_Del: TBitBtn;
    BitBtn_XMM: TBitBtn;
    Panel_TU: TPanel;
    Panel2: TPanel;
    MonthCalendar_S: TMonthCalendar;
    MonthCalendar_Z: TMonthCalendar;
    Label7: TLabel;
    Label8: TLabel;
    BitBtn_tjtu: TBitBtn;
    BitBtn_tjbiao: TBitBtn;
    GroupBox3: TGroupBox;
    RadioButton_dizi: TRadioButton;
    RadioButton_fenqu: TRadioButton;
    RadioButton_fenlei: TRadioButton;
    RadioButton_xiangmu: TRadioButton;
    RadioButton_ri: TRadioButton;
    RadioButton_yue: TRadioButton;
    RadioButton_nian: TRadioButton;
    StringAlignGrid1: TStringAlignGrid;
    Bevel1: TBevel;
    Label_rcS: TLabel;
    Label_rcZ: TLabel;
    Label_rcD: TLabel;
    procedure DateTimePicker_SChange(Sender: TObject);
    procedure ComboBox_type1Click(Sender: TObject);
    procedure ComboBox_type2Click(Sender: TObject);
    procedure BitBtn_TJClick(Sender: TObject);
    procedure DateTimePicker_ZChange(Sender: TObject);
    procedure CheckBox_3DClick(Sender: TObject);
    procedure CheckBox_xxClick(Sender: TObject);
    procedure BitBtn_ZJClick(Sender: TObject);
    procedure BitBtn_tjbClick(Sender: TObject);
    procedure BitBtn_XMMClick(Sender: TObject);
    procedure BitBtn_DelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ComboBox_XMMChange(Sender: TObject);
    procedure MonthCalendar_SClick(Sender: TObject);
    procedure BitBtn_tjbiaoClick(Sender: TObject);
    procedure BitBtn_tjtuClick(Sender: TObject);
    procedure MonthCalendar_ZClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_TU: TForm_TU;

implementation

uses jia;

{$R *.dfm}

procedure TForm_TU.DateTimePicker_SChange(Sender: TObject);
begin
  DateTimePicker_Z.Date :=DateTimePicker_S.Date;
  Form1.SDate := DateTimePicker_Z.Date;
  Form1.EDate := DateTimePicker_Z.Date;
end;

procedure TForm_TU.DateTimePicker_ZChange(Sender: TObject);
begin
  Form1.EDate := DateTimePicker_Z.Date;
end;

procedure TForm_TU.ComboBox_type1Click(Sender: TObject);
var
  mynode: TTreeNode;
  i,j: Integer;
begin
  ComboBox_type2.Clear;
  ComboBox_type3.Clear;

  for i:=0 to Form1.TreeView1.Items.Count -1 do
  begin
     mynode := Form1.TreeView1.Items[i];
     if (mynode.Text = ComboBox_type1.Text) and (mynode.Level = 0) then
     begin
        for j:=0 to mynode.Count -1 do
           ComboBox_type2.Items.Add(mynode.item[j].Text);
        Break;
     end;
  end;
  ComboBox_type2.Items.Insert(0,'');

end;

procedure TForm_TU.ComboBox_type2Click(Sender: TObject);
var
  mynode: TTreeNode;
  i,j: Integer;
begin
  ComboBox_type3.Clear;

  for i:=0 to Form1.TreeView1.Items.Count -1 do
  begin
     mynode := Form1.TreeView1.Items[i];
     if mynode.Level = 1 then
       if (mynode.Text = ComboBox_type2.Text)
          and (mynode.Parent.Text = ComboBox_type1.Text) then
       begin
          for j:=0 to mynode.Count -1 do
             ComboBox_type3.Items.Add(mynode.item[j].Text);
             Break;
       end;
  end;
  ComboBox_type3.Items.Insert(0,'');
end;

procedure TForm_TU.BitBtn_TJClick(Sender: TObject);
begin
  Chart1.RemoveAllSeries;
  BitBtn_ZJClick(Sender);
end;

procedure TForm_TU.BitBtn_ZJClick(Sender: TObject);
var
  S,S1,mydate,TSDate,nian,yue,ri : String;
  j : Integer;
  T : Boolean;
  MySeries : TChartSeries;
begin
  Panel_TU.Show;
  Panel_TU.Update;

  if RadioButton_juxing.Checked then
    MySeries := TBarSeries.Create(Self)
  else
    MySeries := TLineSeries.Create(Self);

  MySeries.Marks.Style := smsValue;
  MySeries.Marks.Frame.Visible := False;
  MySeries.Marks.Transparent := True;
  MySeries.Marks.Font.Color := clBlue;


  Form1.DBGrid1.DataSource.Enabled := False;
  Form1.chaxun;

  if ComboBox_spot.Text <> '' then
    S := '(spot='+#39+ComboBox_spot.Text+#39+')';

  if ComboBox_type1.Text <> '' then
    if S = '' then
      S := '(type1='+#39+ComboBox_type1.Text+#39+')'
    else
      S := S+ 'and(type1='+#39+ComboBox_type1.Text+#39+')';

  if ComboBox_type2.Text <> '' then
    if S = '' then
      S := '(type2='+#39+ComboBox_type2.Text+#39+')'
    else
      S := S+ 'and(type2='+#39+ComboBox_type2.Text+#39+')';

  if ComboBox_type3.Text <> '' then
    if S = '' then
      S := '(type3='+#39+ComboBox_type3.Text+#39+')'
    else
      S := S+ 'and(type3='+#39+ComboBox_type3.Text+#39+')';

  Form1.Table1.Filter := S;
  Form1.Table1.Filtered := True;
  Form1.Table1.First;

  if RadioButton_nian.Checked then    //年的选择 888888888888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      mydate := Form1.Table1.FieldValues['DATE'];
      Form1.Table1.Next;
      nian := Copy(mydate,1,4);
      T := False;
      for j:=0 to MySeries.Count -1 do
        if nian = Copy(MySeries.XLabel[j],1,4) then
        begin
          T := True;
          Break;
        end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,Copy(mydate,1,4));
    end;

    for j:=0 to MySeries.Count -1 do
    begin
      nian := Copy(MySeries.XLabel[j],1,4);
      if S <> '' then
        S1 := S + 'and(DATE>='+nian+'-1-1)and(DATE<='+nian+'-12-31)'
      else
        S1 := '(DATE>='+nian+'-1-1)and(DATE<='+nian+'-12-31)';
      Form1.Table1.Filter := S1;
      Form1.Table1.Filtered := True;

      MySeries.YValue[j] := Abs(Form1.TableMoneyJS);
    end;
    Form1.DBGrid1.DataSource.Enabled := True;
  end;

  if RadioButton_yue.Checked then            //月的选择 888888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      myDate := FormatDateTime('yyyy-mm-dd',StrToDate(Form1.Table1.FieldValues['DATE']));
      Form1.Table1.Next;
      nian := Copy(mydate,1,4);
      yue := Copy(mydate,6,2);
      T := False;
      for j:=0 to MySeries.Count -1 do
      begin
        TSDate := MySeries.XLabel[j];
        if (nian = Copy(TSDate,1,4))and(yue = Copy(TSDate,6,2)) then
        begin
          T := True;
          Break;
        end;
      end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,Copy(mydate,1,7));
    end;

    for j:=0 to MySeries.Count -1 do
    begin
      TSDate := MySeries.XLabel[j];
      nian := Copy(TSDate,1,4);
      yue := Copy(TSDate,6,2);
      if S <> '' then
        S1 := S + 'and(DATE>='+nian+'-'+yue+'-1)and(DATE<='+nian+'-'+yue+'-'+IntToStr(Form1.SetMMax(StrToInt(nian),StrToInt(yue)))+')'
      else
        S1 := '(DATE>='+nian+'-'+yue+'-1)and(DATE<='+nian+'-'+yue+'-'+IntToStr(Form1.SetMMax(StrToInt(nian),StrToInt(yue)))+')';
      Form1.Table1.Filter := S1;
      Form1.Table1.Filtered := True;

      MySeries.YValue[j] := Abs(Form1.TableMoneyJS);
    end;
    Form1.DBGrid1.DataSource.Enabled := True;
  end;

  if RadioButton_ri.Checked then            //日的选择 8888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      myDate := FormatDateTime('yyyy-mm-dd',StrToDate(Form1.Table1.FieldValues['DATE']));
      Form1.Table1.Next;
      T := False;
      for j:=0 to MySeries.Count -1 do
      begin
        TSDate := FormatDateTime('yyyy-mm-dd',StrToDate(MySeries.XLabel[j]));
        if mydate = TSDate then
        begin
          T := True;
          Break;
        end;
      end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,mydate);
    end;

    for j:=0 to MySeries.Count -1 do
    begin
      TSDate := FormatDateTime('yyyy-mm-dd',StrToDate(MySeries.XLabel[j]));
      nian := Copy(TSDate,1,4);
      yue := Copy(TSDate,6,2);
      ri := Copy(TSDate,9,2);
      if S <> '' then
        S1 := S + 'and(DATE='+nian+'-'+yue+'-'+ri+')'
      else
        S1 := '(DATE='+nian+'-'+yue+'-'+ri+')';
      Form1.Table1.Filter := S1;
      Form1.Table1.Filtered := True;

      MySeries.YValue[j] := Abs(Form1.TableMoneyJS);
    end;
    Form1.DBGrid1.DataSource.Enabled := True;
  end;

  if RadioButton_dizi.Checked then    //地址的选择 888888888888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      mydate := Form1.Table1.FieldValues['SPOT'];
      Form1.Table1.Next;
      T := False;
      for j:=0 to MySeries.Count -1 do
        if mydate = MySeries.XLabel[j] then
        begin
          T := True;
          Break;
        end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,mydate);
    end;

    for j:=0 to MySeries.Count -1 do
    begin
      mydate := MySeries.XLabel[j];
      if S <> '' then
        S1 := S + 'and(SPOT='+#39+mydate+#39+')'
      else
        S1 := '(SPOT='+#39+mydate+#39+')';
      Form1.Table1.Filter := S1;
      Form1.Table1.Filtered := True;

      MySeries.YValue[j] := Abs(Form1.TableMoneyJS);
    end;
    Form1.DBGrid1.DataSource.Enabled := True;
  end;

  if RadioButton_fenqu.Checked then    //分区的选择 888888888888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      mydate := Form1.Table1.FieldValues['TYPE1'];
      Form1.Table1.Next;
      T := False;
      for j:=0 to MySeries.Count -1 do
        if mydate = MySeries.XLabel[j] then
        begin
          T := True;
          Break;
        end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,mydate);
    end;

    for j:=0 to MySeries.Count -1 do
    begin
      mydate := MySeries.XLabel[j];
      if S <> '' then
        S1 := S + 'and(TYPE1='+#39+mydate+#39+')'
      else
        S1 := '(TYPE1='+#39+mydate+#39+')';
      Form1.Table1.Filter := S1;
      Form1.Table1.Filtered := True;

      MySeries.YValue[j] := Abs(Form1.TableMoneyJS);
    end;
    Form1.DBGrid1.DataSource.Enabled := True;
  end;

  if RadioButton_fenlei.Checked then    //分类的选择 888888888888888888888888888
  begin
    while not Form1.Table1.Eof do
    begin
      mydate := Form1.Table1.FieldValues['TYPE2'];
      Form1.Table1.Next;
      T := False;
      for j:=0 to MySeries.Count -1 do
        if mydate = MySeries.XLabel[j] then
        begin
          T := True;
          Break;
        end;
      if (Not T)or(MySeries.Count = 0) then
        MySeries.Add(0,mydate);
    end;

    for j:=0 to MySeries.Count -1 do

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -