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

📄 frmincome.pas

📁 里面有个人一天消费管理
💻 PAS
字号:
unit frmIncome;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, RzPanel, RzGroupBar, ImgList, Grids, DBGrids, RzDBGrid,
  RzButton, StdCtrls, RzCmboBx, RzLabel, Mask, RzEdit, RzSpnEdt, RzRadGrp,
  RzRadChk, DBCtrls, RzDBEdit, RzDBCmbo;

type
  TNowDataStatus=set of (ndsNormal,ndsAppend,ndsModify);

type
  TIncomeFm = class(TForm)
    panChild: TRzPanel;
    ImgLst: TImageList;
    Pnl_Left: TRzPanel;
    Pnl_Left_Top: TRzPanel;
    Pnl_Left_Middle: TRzPanel;
    Pnl_Left_Bottom: TRzPanel;
    lbl_income_list: TRzLabel;
    RzLabel1: TRzLabel;
    RzLabel2: TRzLabel;
    RzLabel3: TRzLabel;
    RzLabel4: TRzLabel;
    RzLabel6: TRzLabel;
    RzLabel7: TRzLabel;
    CmbBx_Renyuan: TRzDBComboBox;
    CmbBx_Xiangmu: TRzDBComboBox;
    Btn_New: TRzBitBtn;
    Btn_Edit: TRzBitBtn;
    Btn_Del: TRzBitBtn;
    Img_Income: TImage;
    CmbBx_Riqi: TRzDBDateTimeEdit;
    Memo_Beizhu: TRzDBMemo;
    Edit_Jine: TRzDBEdit;
    Radio_Btn_all: TRzRadioButton;
    Radio_Btn_Month: TRzRadioButton;
    SpEdit_Year: TRzSpinEdit;
    lbl_Year: TRzLabel;
    CmbBx_Month: TRzComboBox;
    lbl_Month: TRzLabel;
    DbGrd_Income: TRzDBGrid;
    cmdClose: TRzButton;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure CmbBx_MonthChange(Sender: TObject);
    procedure SpEdit_YearChange(Sender: TObject);
    procedure Radio_Btn_MonthClick(Sender: TObject);
    procedure Radio_Btn_allClick(Sender: TObject);
    procedure Btn_DelClick(Sender: TObject);
    procedure Btn_EditClick(Sender: TObject);
    procedure Btn_NewClick(Sender: TObject);
    procedure FirstRun;
    procedure cmdCloseClick(Sender: TObject);
  private
    { Private declarations }
    NowDataStatus:TNowDataStatus;
    procedure ChangeDisplayStatus(const AValue:TNowDataStatus);
  public
    { Public declarations }
  end;

var
  IncomeFm: TIncomeFm;

implementation

uses Common, frmdata, frmmain;

{$R *.dfm}

procedure TIncomeFm.ChangeDisplayStatus(const AValue: TNowDataStatus);
begin
    if AValue=[ndsNormal] then
    begin
      Pnl_Left_Middle.Enabled:=False;
      Btn_New.Caption:='新建';
      Btn_New.Enabled:=true;
      Btn_New.ImageIndex:=0;
      Btn_New.DisabledIndex:=1;

      Btn_Edit.Caption:='修改';
      Btn_Edit.Enabled:=true;
      Btn_Edit.ImageIndex:=2;
      Btn_Edit.DisabledIndex:=3;

      Btn_Del.Caption:='删除';
      Btn_Del.Enabled:=true;
      Btn_Del.ImageIndex:=6;
      Btn_Del.DisabledIndex:=7;

      IncomeFm.NowDataStatus:=[ndsNormal];
    end;
    if AValue=[ndsAppend] then
    begin
      Pnl_Left_Middle.Enabled:=true;

      Btn_New.Caption:='保存';
      Btn_New.Enabled:=true;
      Btn_New.ImageIndex:=4;
      Btn_New.DisabledIndex:=5;

      Btn_Edit.Caption:='修改';
      Btn_Edit.Enabled:=false;
      Btn_Edit.ImageIndex:=2;
      Btn_Edit.DisabledIndex:=3;

      Btn_Del.Caption:='撤销';
      Btn_Del.Enabled:=true;
      Btn_Del.ImageIndex:=8;
      Btn_Del.DisabledIndex:=9;

      IncomeFm.NowDataStatus:=[ndsAppend];
    end;
    if AValue=[ndsModify] then
    begin
      Pnl_Left_Middle.Enabled:=true;

      Btn_New.Caption:='新建';
      Btn_New.Enabled:=false;
      Btn_New.ImageIndex:=0;
      Btn_New.DisabledIndex:=1;

      Btn_Edit.Caption:='保存';
      Btn_Edit.Enabled:=true;
      Btn_Edit.ImageIndex:=4;
      Btn_Edit.DisabledIndex:=5;

      Btn_Del.Caption:='撤销';
      Btn_Del.Enabled:=true;
      Btn_Del.ImageIndex:=8;
      Btn_Del.DisabledIndex:=9;

      IncomeFm.NowDataStatus:=[ndsModify];
    end;
end;

procedure TIncomeFm.CmbBx_MonthChange(Sender: TObject);
var dateDisplay:string;
begin
  dateDisplay:=SpEdit_Year.Text+'-'+CmbBx_Month.Text;
  with DataFm.QryIncomeData do
  begin
    close;
    sql.clear;
    sql.Add('select * from income where riqi like'+'''%'+dateDisplay+ '%'''+'Order By riqi Asc');
    open
  end;
  DbGrd_Income.DataSource:=DataFm.DsIncomeData;
end;

procedure TIncomeFm.FirstRun;
begin
  MainFm.RzProgressStatus1.Percent:=10;
  IncomeFm.ChangeDisplayStatus([ndsNormal]);
  MainFm.RzProgressStatus1.Percent:=20;
  AddRenYuan(CmbBx_Renyuan);
  MainFm.RzProgressStatus1.Percent:=30;
  CmbBx_Renyuan.Text:=datafm.Tbl_Income.FieldByName('renyuan').AsString;
  MainFm.RzProgressStatus1.Percent:=40;
  with datafm.Qry_Income_Xiangmu  do    //加入收入项目到下拉列表
  begin
    close;
    sql.clear;
    sql.Add('select * from income_option where display=True');
    open;
    CmbBx_Xiangmu.Clear;
    CmbBx_Xiangmu.Items.AddStrings(GetADOQueryFieldValue(datafm.Qry_Income_Xiangmu,'xiangmu'));
    //CmbBx_Xiangmu.Text:=CmbBx_Xiangmu.Items[0];
    close;
    sql.clear;
  end;
  MainFm.RzProgressStatus1.Percent:=90;
  CmbBx_Xiangmu.Text:=datafm.Tbl_Income.FieldByName('xiangmu').AsString;
  MainFm.RzProgressStatus1.Percent:=100;
  Timer1.Enabled:=true;
end;

procedure TIncomeFm.Radio_Btn_allClick(Sender: TObject);
begin
  SpEdit_Year.Enabled:=not(Radio_Btn_all.Checked);
  CmbBx_Month.Enabled:=not(Radio_Btn_all.Checked);
  DbGrd_Income.DataSource:=DataFm.Ds_income;
end;

procedure TIncomeFm.Radio_Btn_MonthClick(Sender: TObject);
var dateDisplay:string;
begin
  SpEdit_Year.Enabled:=Radio_Btn_Month.Checked;
  CmbBx_Month.Enabled:=Radio_Btn_Month.Checked;
  SpEdit_Year.Text:=GetPrestr(FormatDateTime('YYYY"-"MM"-"DD', date),0,4);
  CmbBx_Month.Text:=GetPrestr(FormatDateTime('YYYY"-"MM"-"DD', date),6,2);
  dateDisplay:=SpEdit_Year.Text+'-'+CmbBx_Month.Text;
  with DataFm.QryIncomeData do
  begin
    close;
    sql.clear;
    sql.Add('select * from income where riqi like'+'''%'+dateDisplay+ '%''');
    open
  end;
  DbGrd_Income.DataSource:=DataFm.DsIncomeData;
end;

procedure TIncomeFm.SpEdit_YearChange(Sender: TObject);
var dateDisplay:string;
begin
  dateDisplay:=SpEdit_Year.Text+'-'+CmbBx_Month.Text;
  with DataFm.QryIncomeData do
  begin
    close;
    sql.clear;
    sql.Add('select * from income where riqi like'+'''%'+dateDisplay+ '%''');
    open
  end;
  DbGrd_Income.DataSource:=DataFm.DsIncomeData;
end;

procedure TIncomeFm.Timer1Timer(Sender: TObject);
begin
  Timer1.Tag:=Timer1.Tag+1;
  if Timer1.Tag>0 then
  begin
    MainFm.RzProgressStatus1.Percent:=0;
    Timer1.Enabled:=false;
    Timer1.Tag:=0;
  end;
end;

procedure TIncomeFm.cmdCloseClick(Sender: TObject);
begin
  panChild.Parent:=IncomeFm;
  IncomeFm.Close;
end;

procedure TIncomeFm.Btn_DelClick(Sender: TObject);
  var
    strDeleteConfimInfo:string;
    intResult:Integer;
begin
  if IncomeFm.NowDataStatus=[ndsNormal] then
  begin
    strDeleteConfimInfo:='真的删除吗?';
    intResult:=MessageBox(Application.Handle,pchar(strDeleteConfimInfo),'确认',32+4);
    if intResult=mrYes then
      dataFm.Tbl_Income.Delete;
  end
  else
  begin
    IncomeFm.ChangeDisplayStatus([ndsNormal]);
    dataFm.Tbl_Income.Cancel;
  end;
end;

procedure TIncomeFm.Btn_EditClick(Sender: TObject);
begin
  if IncomeFm.NowDataStatus=[ndsNormal] then
  begin
    ChangeDisplayStatus([ndsModify]);
    dataFm.Tbl_Income.Edit;

  end
  else
  begin
    if (IncomeFm.CmbBx_Riqi.Text='')
    or (IncomeFm.CmbBx_Renyuan.Text='')
    or (IncomeFm.CmbBx_Xiangmu.Text='')
    or (IncomeFm.Edit_Jine.Text='') then
    begin
    showmessage('数据信息不全');
    end
    else
    begin
    dataFm.Tbl_Income.Post;
    ChangeDisplayStatus([ndsNormal]);
    end;
    end;
end;

procedure TIncomeFm.Btn_NewClick(Sender: TObject);
begin
  if IncomeFm.NowDataStatus=[ndsNormal] then
  begin
    ChangeDisplayStatus([ndsAppend]);
    dataFm.Tbl_Income.Append;
  end
  else
  begin
    if (IncomeFm.CmbBx_Riqi.Text='')
    or (IncomeFm.CmbBx_Renyuan.Text='')
    or (IncomeFm.CmbBx_Xiangmu.Text='')
    or (IncomeFm.Edit_Jine.Text='') then
    begin
    showmessage('数据信息不全');
    end
    else
    begin
    ChangeDisplayStatus([ndsNormal]);
    dataFm.Tbl_Income.Post;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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