frmpayout.pas

来自「里面有个人一天消费管理」· PAS 代码 · 共 536 行 · 第 1/2 页

PAS
536
字号
unit frmPayout;

interface

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

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

type
  TPayoutFm = class(TForm)
    panChild: TRzPanel;
    Pnl_Left: TRzPanel;
    Pnl_Left_Top: TRzPanel;
    lbl_payout: TRzLabel;
    Img_payout: TImage;
    ImgLst: TImageList;
    cmdClose: TRzButton;
    Pnl_Right: TRzPanel;
    Splt_Payout: TRzSplitter;
    Pnl_Single_list: TRzPanel;
    Pnl_Much_lst: TRzPanel;
    DbGrd_Income: TRzDBGrid;
    lbl_Payout_list: TRzLabel;
    Radio_Btn_all: TRzRadioButton;
    Radio_Btn_Month: TRzRadioButton;
    SpEdit_Year: TRzSpinEdit;
    lbl_Year: TRzLabel;
    CmbBx_Month: TRzComboBox;
    lbl_Month: TRzLabel;
    StrGrd_PayoutDispaly: TRzStringGrid;
    PgCtrl: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    Pnl_Left_Middle: TRzPanel;
    RzLabel2: TRzLabel;
    RzLabel3: TRzLabel;
    RzLabel4: TRzLabel;
    RzLabel6: TRzLabel;
    RzLabel7: TRzLabel;
    CmbBx_Riqi: TRzDBDateTimeEdit;
    CmbBx_Renyuan: TRzDBComboBox;
    CmbBx_Xiangmu: TRzDBComboBox;
    Edit_Jine: TRzDBEdit;
    Memo_Beizhu: TRzDBMemo;
    Pnl_Left_Bottom: TRzPanel;
    Btn_New: TRzBitBtn;
    Btn_Edit: TRzBitBtn;
    Btn_Del: TRzBitBtn;
    Pnl_MuchMiddle: TRzPanel;
    RzLabel1: TRzLabel;
    RzLabel5: TRzLabel;
    Pnl_MuchBtn: TRzPanel;
    Btn_AddMuch: TRzBitBtn;
    Btn_SaveMuch: TRzBitBtn;
    SpEdit_Year_lst: TRzSpinEdit;
    RzLabel11: TRzLabel;
    CmbBx_Month_lst: TRzComboBox;
    RzLabel12: TRzLabel;
    RzLabel13: TRzLabel;
    StrGrd_AddMuch: TRzStringGrid;
    Cmb_Date: TRzDateTimeEdit;
    Cmb_Renyuan: TRzComboBox;
    RzLabel8: TRzLabel;
    Btn_Display: TRzBitBtn;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Btn_DisplayClick(Sender: TObject);
    procedure StrGrd_PayoutDispalyDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure Btn_SaveMuchClick(Sender: TObject);
    procedure Btn_AddMuchClick(Sender: TObject);
    procedure CmbBx_MonthChange(Sender: TObject);
    procedure SpEdit_YearChange(Sender: TObject);
    procedure Btn_DelClick(Sender: TObject);
    procedure Btn_EditClick(Sender: TObject);
    procedure Btn_NewClick(Sender: TObject);
    procedure Radio_Btn_MonthClick(Sender: TObject);
    procedure Radio_Btn_allClick(Sender: TObject);
    procedure FirstRun;
    procedure cmdCloseClick(Sender: TObject);
    procedure Payout_stat;
  private
    { Private declarations }
    NowDataStatus:TNowDataStatus;
    procedure ChangeDisplayStatus(const AValue:TNowDataStatus);
  public
    { Public declarations }
  end;

var
  PayoutFm: TPayoutFm;

implementation

uses Common, frmdata, frmmain;

{$R *.dfm}

procedure TPayoutFm.FirstRun;
begin
  MainFm.RzProgressStatus1.Percent:=10;
  PayoutFm.ChangeDisplayStatus([ndsNormal]);
  MainFm.RzProgressStatus1.Percent:=20;
  AddRenYuan(CmbBx_Renyuan);
  MainFm.RzProgressStatus1.Percent:=30;
  CmbBx_Renyuan.Text:=datafm.Tbl_Payout.FieldByName('renyuan').AsString;
  MainFm.RzProgressStatus1.Percent:=40;
  SpEdit_Year_lst.Text:=GetPrestr(FormatDateTime('YYYY"-"MM"-"DD', date),0,4);
  MainFm.RzProgressStatus1.Percent:=50;
  CmbBx_Month_lst.Text:=GetPrestr(FormatDateTime('YYYY"-"MM"-"DD', date),6,2);
  MainFm.RzProgressStatus1.Percent:=60;
  Cmb_Renyuan.Items.Clear;
  MainFm.RzProgressStatus1.Percent:=70;
  Cmb_Renyuan.Items.AddStrings(GetADOTableFieldValue(dataFm.Tbl_family_option,'xm'));
  MainFm.RzProgressStatus1.Percent:=80;
  with datafm.Qry_Payout_Xiangmu  do    //加入收入项目到下拉列表
  begin
    close;
    sql.clear;
    sql.Add('select * from payout_option where display=True');
    open;
    CmbBx_Xiangmu.Clear;
    CmbBx_Xiangmu.Items.AddStrings(GetADOQueryFieldValue(datafm.Qry_Payout_Xiangmu,'xiangmu'));
    //CmbBx_Xiangmu.Text:=CmbBx_Xiangmu.Items[0];
    close;
    sql.clear;
  end;
  MainFm.RzProgressStatus1.Percent:=90;
  CmbBx_Xiangmu.Text:=datafm.Tbl_Payout.FieldByName('xiangmu').AsString;
  MainFm.RzProgressStatus1.Percent:=100;
  Timer1.Enabled:=true;
end;

procedure TPayoutFm.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;

      PayoutFm.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;

      PayoutFm.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;

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

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

procedure TPayoutFm.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_payout;
end;

procedure TPayoutFm.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.QryPayoutData do
  begin
    close;
    sql.clear;
    sql.Add('select * from payout where riqi like'+'''%'+dateDisplay+ '%'''+'Order By riqi Asc');
    open;
  end;
  DbGrd_Income.DataSource:=DataFm.DsPayoutData;
end;

procedure TPayoutFm.SpEdit_YearChange(Sender: TObject);
var  DateDisplay:string;
begin
  DateDisplay:=SpEdit_Year.Text+'-'+CmbBx_Month.Text;
  with DataFm.QryPayoutData do
  begin
    close;
    sql.clear;
    sql.Add('select * from payout where riqi like'+'''%'+dateDisplay+ '%'''+'Order By riqi Asc');
    open;
  end;
  DbGrd_Income.DataSource:=DataFm.DsPayoutData;
end;

procedure TPayoutFm.StrGrd_PayoutDispalyDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  s:string;
  r:TRect;
begin
   with StrGrd_PayoutDispaly do
    begin
      Canvas.FillRect(Rect);
      s:=Cells[ACol,ARow];
      r:=Rect;

⌨️ 快捷键说明

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