finace.pas

来自「一个非常好的桑拿浴管理系统」· PAS 代码 · 共 2,024 行 · 第 1/5 页

PAS
2,024
字号
unit finace;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, Grids, DBGrids, ADODB, DB,
  QuickRpt;

type
  Tfm_finace = class(TForm)
    pal_finace: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    LabeledEdit5: TLabeledEdit;
    pac_finace: TPageControl;
    TabSheet4: TTabSheet;
    LabeledEdit4: TLabeledEdit;
    BitBtn19: TBitBtn;
    SGWPMX: TStringGrid;
    TabSheet5: TTabSheet;
    LabeledEdit1: TLabeledEdit;
    BitBtn3: TBitBtn;
    SGFWMX: TStringGrid;
    TabSheet6: TTabSheet;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    SGYP: TStringGrid;
    SGLSP: TStringGrid;
    tbs_bgx_mx: TTabSheet;
    LabeledEdit6: TLabeledEdit;
    BitBtn7: TBitBtn;
    SGCSXMX: TStringGrid;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    BitBtn8: TBitBtn;
    SGQTSF: TStringGrid;
    GroupBox2: TGroupBox;
    Label4: TLabel;
    cbx_user: TComboBox;
    BitBtn9: TBitBtn;
    TabSheet2: TTabSheet;
    SGLSMX: TStringGrid;
    BitBtn12: TBitBtn;
    TabSheet3: TTabSheet;
    BitBtn10: TBitBtn;
    SGRTJ: TStringGrid;
    TabSheet7: TTabSheet;
    Label3: TLabel;
    SGSZFW: TStringGrid;
    cbx_fkc_name: TComboBox;
    SGSZWP: TStringGrid;
    BitBtn11: TBitBtn;
    BtnCX: TBitBtn;
    aqr_sys: TADOQuery;
    acmd_sys: TADOCommand;
    Label5: TLabel;
    SGSZXY: TStringGrid;
    CoxID: TComboBox;
    LabeledEdit7: TLabeledEdit;
    TabSheet8: TTabSheet;
    SGFLTJ: TStringGrid;
    BitBtn1: TBitBtn;
    Label6: TLabel;
    pc_js_list: TPageControl;
    tbs_js_singleList: TTabSheet;
    SGGRSF: TStringGrid;
    tbs_js_groupList: TTabSheet;
    SGGRSFNO: TStringGrid;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure BtnCXClick(Sender: TObject);
    procedure BitBtn19Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn12Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn11Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SGWPMXDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGFWMXDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGLSPDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGYPDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGCSXMXDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGQTSFDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGGRSFDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGGRSFNODrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGLSMXDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGRTJDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGSZFWDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure SGSZWPDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure DateTimePicker2Change(Sender: TObject);
    procedure SGSZXYDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure DateTimePicker4Change(Sender: TObject);
    procedure DateTimePicker3Change(Sender: TObject);
    procedure cbx_userChange(Sender: TObject);
    procedure SGFLTJDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure BitBtn1Click(Sender: TObject);
    procedure CoxIDChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure FRM_HEJIZG ;
  end;

var
  fm_finace: Tfm_finace;

implementation

uses Glovproc, Main, DataModule,f_FrmWPMXR,f_FrmFWMXR,f_FrmSGLSPR,f_FrmSGYPR,f_FrmCSXMXR,f_FrmSGQTSFR,f_FrmSGGRSFR,f_FrmLSMXR,f_FrmSGRTJR,f_FrmSGSZWPR,f_FrmSGSZFWR,f_FrmSGSZXYR,
  pub,f_FrmSGFLTJR,f_FrmSGGRSFNOR;

{$R *.dfm}

{----------------------------------自定义procedure   ------------------------------------}
procedure Tfm_finace.FRM_HEJIZG ;
var
  StartDT,EndDT: Tdatetime ;  //查询开始和结束时间。
  Rt1,Rt2,Rt3,Rt4,Rt5,Rt6,Rt7,Rt8,Rt9,Result : real;
begin
  if (datetimepicker1.Checked=true) and (datetimepicker2.Checked=true) then
  begin
    StartDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker1.date )+ ' ' +formatDatetime('hh:nn:ss',DateTimePicker3.datetime));
    EndDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker2.date )+ ' ' +formatDatetime('hh:nn:ss',DateTimePicker4.datetime));
    if datetimepicker1.Date>datetimepicker2.Date then
    begin
      showmessage('查询开始日期不能大于查询结束日期!');
      datetimepicker1.SetFocus;
      exit;
    end;
  end
  else if (datetimepicker1.Checked=true) and (datetimepicker2.Checked=false) and (datetimepicker3.Checked=false) then
  begin
    StartDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker1.date)+' '+ '00:00:00');
    EndDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker1.date)+' '+ '23:59:59');

  end;
  if (datetimepicker1.Checked=true) and (datetimepicker2.Checked=true) and (datetimepicker3.Checked=false) then
  begin
    StartDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker1.date)+' '+ '00:00:00');
    EndDT:= strtodatetime(formatDatetime('yyyy-mm-dd',DateTimePicker2.date)+' '+ '23:59:59');
  end;
  with aqr_sys do
    begin
      Rt1 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(arre_ware_total) arre_ware_total');
      SQL.Add(' FROM sny_arrearage_consume');
      SQL.Add(' where arre_checkout_time>=:StartDT and arre_checkout_time<=:EndDT');


      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;

      Rt1 := FieldByName('arre_ware_total').AsFloat;


    end ;

    with aqr_sys do
    begin
      Rt2 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(arre_price) arre_price');
      SQL.Add(' FROM sny_arrearage_reg');
      SQL.Add(' where arre_reg_time_out>=:StartDT and arre_reg_time_out<=:EndDT');


      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt2 := FieldByName('arre_price').AsFloat;
    end ;

    with aqr_sys do
    begin
      Rt3 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(arre_ser_price) arre_ser_price');
      SQL.Add(' FROM sny_arrearage_service');
      SQL.Add(' where arre_end_time>=:StartDT and arre_end_time<=:EndDT');


      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then

      Exit;
      Rt3 := FieldByName('arre_ser_price').AsFloat;

    end ;

    with aqr_sys do
    begin
      Rt4 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(box_lprice) box_lprice');
      SQL.Add(' FROM sny_box_ldetail');
      SQL.Add(' where box_lend>=:StartDT and box_lend<=:EndDT');


      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt4 := FieldByName('box_lprice').AsFloat;
    end ;

    with aqr_sys do
    begin
      Rt5 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(commticket_price) commticket_price');
      SQL.Add(' FROM sny_commticket');
      SQL.Add(' where comm_selltime>=:StartDT and comm_selltime<=:EndDT');

      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt5 := FieldByName('commticket_price').AsFloat;

    end ;

    with aqr_sys do
    begin
      Rt6 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(cons_total) cons_total');
      SQL.Add(' FROM sny_consume');
      SQL.Add(' where cons_check_time>=:StartDT and cons_check_time<=:EndDT');

      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt6 := FieldByName('cons_total').AsFloat;

    end ;

    with aqr_sys do
    begin
      Rt7 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(det_total) det_total');
      SQL.Add(' FROM sny_detail');
      SQL.Add(' where det_sell_time>=:StartDT and det_sell_time<=:EndDT');

      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt7 := FieldByName('det_total').AsFloat;

    end ;

    with aqr_sys do
    begin
      Rt8 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(reg_real_price) reg_real_price');
      SQL.Add(' FROM sny_reg');
      SQL.Add(' where reg_time_out>=:StartDT and reg_time_out<=:EndDT');

      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt8 := FieldByName('reg_real_price').AsFloat;

    end;
    
    with aqr_sys do
    begin
      Rt9 := 0 ;
      Close ;
      SQL.Clear ;
                    //
      SQL.Add(' SELECT Sum(ser_total) ser_total');
      SQL.Add(' FROM sny_serve');
      SQL.Add(' where ser_end_time>=:StartDT and ser_end_time<=:EndDT');

      Parameters.ParamByName('StartDT').Value := StartDT;
      Parameters.ParamByName('EndDT').Value := EndDT;

      Open ;
      if IsEmpty then
      Exit;
      Rt9 := FieldByName('ser_total').AsFloat;

    end ;
    Result := Rt1 + Rt2 + Rt3 + Rt4 + Rt5 + Rt6 + Rt7 + Rt8 + Rt9 ;
    LabeledEdit5.Text := FormatFloat('0.00',Result);
end;

{----------------------------------procedure   END------------------------------------}

//关闭窗口
procedure Tfm_finace.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := Cafree ;
end;

procedure Tfm_finace.FormCreate(Sender: TObject);
begin

  //给StringGrid赋标题

  with SGWPMX do                //物品明细
  begin
    cells[0,0]:='物品名称' ;
    cells[1,0]:='单价' ;
    cells[2,0]:='数量' ;
    cells[3,0]:='总额' ;
    //cells[4,0]:='结算时间' ;
  end;

  with SGFWMX do                //服务明细
  begin
    cells[0,0]:='服务名称' ;
    cells[1,0]:='单价' ;
    cells[2,0]:='数量' ;
    cells[3,0]:='总额' ;
    //cells[4,0]:='结算时间' ;
  end;

  with SGLSP do                //票明细 (临售票)
  begin
    cells[0,0]:='票种类' ;
    cells[1,0]:='单价' ;
    cells[2,0]:='数量' ;
    cells[3,0]:='总额' ;
    //cells[4,0]:='结算时间' ;
  end;

  with SGYP do                //票明细 (月票)
  begin
    cells[0,0]:='月票种类' ;
    cells[1,0]:='单价' ;
    cells[2,0]:='数量' ;
    cells[3,0]:='总额' ;
    //cells[4,0]:='结算时间' ;

  end;

⌨️ 快捷键说明

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