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

📄 mc_sfdtx.pas

📁 1、系统环境要求:所有程序均在Windows98/XP操作系统下测试运行。 2、建议用户在系统上安装DELPHI7.0企业版。 3、如果数据库为SQL Server数据库
💻 PAS
字号:
unit MC_SFDTX;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables, Db, Grids, DBGrids, DBCtrls, StdCtrls, Mask, ExtCtrls, ComCtrls,
  Buttons;

type
  TSFDTX = class(TForm)
    GroupBox1: TGroupBox;
    DBLookupComboBox1: TDBLookupComboBox;
    GroupBox2: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox3: TGroupBox;
    DBGrid2: TDBGrid;
    DataSource1: TDataSource;
    Query1: TQuery;
    Query1BDEDesigner: TStringField;
    Query1BDEDesigner2: TStringField;
    DataSource2: TDataSource;
    Table1: TTable;
    Table1BDEDesigner: TStringField;
    Table1BDEDesigner2: TStringField;
    Table1BDEDesigner7: TStringField;
    Table2: TTable;
    Table2BDEDesigner: TStringField;
    Table2BDEDesigner2: TStringField;
    Table2BDEDesigner3: TStringField;
    Table2BDEDesigner4: TStringField;
    Table2BDEDesigner6: TStringField;
    Table2BDEDesigner18: TStringField;
    DataSource3: TDataSource;
    GroupBox4: TGroupBox;
    Table3: TTable;
    Table3BDEDesigner: TStringField;
    Table3BDEDesigner2: TStringField;
    Table3BDEDesigner3: TStringField;
    Table3BDEDesigner4: TFloatField;
    Table3BDEDesigner5: TDateTimeField;
    Table3BDEDesigner6: TDateTimeField;
    Table3BDEDesigner7: TIntegerField;
    Table3BDEDesigner8: TIntegerField;
    Table3BDEDesigner9: TIntegerField;
    Table3BDEDesigner10: TFloatField;
    Table3BDEDesigner11: TFloatField;
    Table3BDEDesigner12: TFloatField;
    DataSource4: TDataSource;
    Table4: TTable;
    Table4BDEDesigner: TStringField;
    Table4BDEDesigner2: TStringField;
    Table4BDEDesigner3: TStringField;
    Table4BDEDesigner4: TFloatField;
    Table4BDEDesigner5: TDateTimeField;
    Table4BDEDesigner6: TDateTimeField;
    Table4BDEDesigner7: TIntegerField;
    Table4BDEDesigner8: TIntegerField;
    Table4BDEDesigner9: TIntegerField;
    Table4BDEDesigner10: TFloatField;
    Table4BDEDesigner11: TFloatField;
    Table4BDEDesigner12: TFloatField;
    DataSource5: TDataSource;
    Table5: TTable;
    Table5BDEDesigner: TStringField;
    Table5BDEDesigner2: TStringField;
    Table5BDEDesigner3: TStringField;
    Table5BDEDesigner4: TFloatField;
    Table5BDEDesigner5: TDateTimeField;
    Table5BDEDesigner6: TDateTimeField;
    Table5BDEDesigner7: TIntegerField;
    Table5BDEDesigner8: TIntegerField;
    Table5BDEDesigner9: TIntegerField;
    Table5BDEDesigner10: TFloatField;
    Table5BDEDesigner11: TFloatField;
    Table5BDEDesigner12: TFloatField;
    DataSource6: TDataSource;
    Bevel2: TBevel;
    GroupBox5: TGroupBox;
    DataSource7: TDataSource;
    DBGrid3: TDBGrid;
    Query2: TQuery;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Query2BDEDesigner: TStringField;
    Query2BDEDesigner2: TStringField;
    Query2BDEDesigner3: TStringField;
    Query2BDEDesigner4: TFloatField;
    Query2BDEDesigner5: TDateTimeField;
    Query2BDEDesigner6: TDateTimeField;
    Query2BDEDesigner7: TFloatField;
    Query2BDEDesigner8: TFloatField;
    Query2BDEDesigner9: TFloatField;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText5: TDBText;
    DBEdit7: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit4: TDBEdit;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit16: TDBEdit;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    DBText6: TDBText;
    DBText7: TDBText;
    DBText8: TDBText;
    DBText10: TDBText;
    DBEdit8: TDBEdit;
    DBEdit14: TDBEdit;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit20: TDBEdit;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    DBText11: TDBText;
    DBText12: TDBText;
    DBText13: TDBText;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    DBText15: TDBText;
    DBEdit15: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    DBEdit23: TDBEdit;
    DateTimePicker5: TDateTimePicker;
    DateTimePicker6: TDateTimePicker;
    DBEdit9: TDBEdit;
    DBEdit13: TDBEdit;
    DBEdit24: TDBEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn4Click(Sender: TObject);
    procedure Table2CalcFields(DataSet: TDataSet);
    procedure Table2AfterScroll(DataSet: TDataSet);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure DateTimePicker2CloseUp(Sender: TObject);
    procedure DateTimePicker3CloseUp(Sender: TObject);
    procedure DateTimePicker4CloseUp(Sender: TObject);
    procedure DateTimePicker5CloseUp(Sender: TObject);
    procedure DateTimePicker6CloseUp(Sender: TObject);
    procedure DBEdit4Enter(Sender: TObject);
    procedure DBEdit4Exit(Sender: TObject);
    procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit7Exit(Sender: TObject);
    procedure DBEdit14Exit(Sender: TObject);
    procedure DBEdit3Exit(Sender: TObject);
    procedure DBGrid3KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  SFDTX: TSFDTX;

implementation

{$R *.DFM}

procedure TSFDTX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     SFDTX.Release;
     SFDTX:=Nil;
end;

procedure TSFDTX.BitBtn4Click(Sender: TObject);
begin
     Close;
end;

procedure TSFDTX.Table2CalcFields(DataSet: TDataSet);
begin
     {if Table2.RecordCount<>0 then
        begin
             Query2.Close;
             Query2.SQL.Clear;
             Query2.SQL.Add('Select * From 常用费用');
             Query2.SQL.Add('Where 收费编号=:A');
             Query2.ParamByName('A').AsString:=Table2.FieldByName('房间编号').AsString;
             Query2.Open;
        end;}
end;

procedure TSFDTX.Table2AfterScroll(DataSet: TDataSet);
begin
     if Table2.RecordCount<>0 then
        begin
             Query2.Close;
             Query2.SQL.Clear;
             Query2.SQL.Add('Select * From 常用费用');
             Query2.SQL.Add('Where 收费编号=:A');
             Query2.ParamByName('A').AsString:=Table2.FieldByName('房间编号').AsString;
             Query2.Open;
        end;
end;

procedure TSFDTX.BitBtn1Click(Sender: TObject);
begin
     if Table3.RecordCount<>0 then
        begin
     GroupBox4.Enabled:=True;
     GroupBox5.Enabled:=True;
     GroupBox1.Enabled:=False;
     GroupBox2.Enabled:=False;
     GroupBox3.Enabled:=False;
     BitBtn1.Enabled:=False;
     BitBtn2.Enabled:=True;
     BitBtn3.Enabled:=True;
     Table3.Edit;
     Table4.Edit;
     Table5.Edit;     
     DBEdit4.SetFocus;
        end;
end;

procedure TSFDTX.BitBtn2Click(Sender: TObject);
begin
     if Table3.Modified then Table3.Post;
     if Table4.Modified then Table4.Post;
     if Table5.Modified then Table5.Post;
     if Query2.Modified then Query2.Post;
     GroupBox1.Enabled:=True;
     GroupBox2.Enabled:=True;
     GroupBox3.Enabled:=True;
     GroupBox4.Enabled:=False;
     GroupBox5.Enabled:=False;
     BitBtn1.Enabled:=True;
     BitBtn2.Enabled:=False;
     BitBtn3.Enabled:=False;     
end;

procedure TSFDTX.BitBtn3Click(Sender: TObject);
begin
     if Table3.Modified then Table3.Cancel;
     if Table4.Modified then Table4.Cancel;
     if Table5.Modified then Table5.Cancel;
     if Query2.Modified then Query2.Cancel;
     GroupBox1.Enabled:=True;
     GroupBox2.Enabled:=True;
     GroupBox3.Enabled:=True;
     GroupBox4.Enabled:=False;
     GroupBox5.Enabled:=False;
     BitBtn1.Enabled:=True;
     BitBtn2.Enabled:=False;
     BitBtn3.Enabled:=False;
end;

procedure TSFDTX.DateTimePicker1CloseUp(Sender: TObject);
begin
     Table3.FieldByName('计费起始日期').AsDateTime:=DateTimePicker1.Date;
end;

procedure TSFDTX.DateTimePicker2CloseUp(Sender: TObject);
begin
     Table3.FieldByName('计费终止日期').AsDateTime:=DateTimePicker2.Date;
end;

procedure TSFDTX.DateTimePicker3CloseUp(Sender: TObject);
begin
     Table4.FieldByName('计费起始日期').AsDateTime:=DateTimePicker3.Date;
end;

procedure TSFDTX.DateTimePicker4CloseUp(Sender: TObject);
begin
     Table4.FieldByName('计费终止日期').AsDateTime:=DateTimePicker4.Date;
end;

procedure TSFDTX.DateTimePicker5CloseUp(Sender: TObject);
begin
     Table5.FieldByName('计费起始日期').AsDateTime:=DateTimePicker5.Date;
end;

procedure TSFDTX.DateTimePicker6CloseUp(Sender: TObject);
begin
     Table5.FieldByName('计费终止日期').AsDateTime:=DateTimePicker6.Date;
end;

procedure TSFDTX.DBEdit4Enter(Sender: TObject);
begin
     TDBEdit(Sender).Color:=ClAqua;
end;

procedure TSFDTX.DBEdit4Exit(Sender: TObject);
begin
     TDBEdit(Sender).Color:=ClWindow;
end;

procedure TSFDTX.DBEdit4KeyPress(Sender: TObject; var Key: Char);
begin
     if key=#13 then PerForm(WM_NEXTDLGCTL,0,0);
end;

procedure TSFDTX.DBEdit7Exit(Sender: TObject);
begin
     if Length(Table3.FieldByName('本月读数').AsString)=0 then
        begin
             ShowMessage('请输入本月读数信息.');
             DBEDit7.SetFocus;
             Exit;
        end;
     if Table3.FieldByName('本月读数').AsInteger<=Table3.FieldByName('上月读数').AsInteger then
        begin
             ShowMessage('请注意您输入的本月读数.');
             DBEdit7.SetFocus;
        end
     else
        begin
             Table3.FieldByName('使用数').AsInteger:=Table3.FieldByName('本月读数').AsInteger
                   -Table3.FieldByName('上月读数').AsInteger;
             Table3.FieldByName('应收金额').AsFloat:=Table3.FieldByName('使用数').AsInteger
                   *TAble3.FieldByName('收费金额').AsFloat;
        end;

     TDBEdit(Sender).Color:=ClWindow;
end;

procedure TSFDTX.DBEdit14Exit(Sender: TObject);
begin
     if Length(Table4.FieldByName('本月读数').AsString)=0 then
        begin
             ShowMessage('请输入本月读数信息.');
             DBEDit14.SetFocus;
             Exit;
        end;
     if Table4.FieldByName('本月读数').AsInteger<=Table4.FieldByName('上月读数').AsInteger then
        begin
             ShowMessage('请注意您输入的本月读数.');
             DBEdit14.SetFocus;
        end
     else
        begin
             Table4.FieldByName('使用数').AsInteger:=Table4.FieldByName('本月读数').AsInteger
                   -Table4.FieldByName('上月读数').AsInteger;
             Table4.FieldByName('应收金额').AsFloat:=Table4.FieldByName('使用数').AsInteger
                   *TAble4.FieldByName('收费金额').AsFloat;
        end;
     TDBEdit(Sender).Color:=ClWindow;
end;

procedure TSFDTX.DBEdit3Exit(Sender: TObject);
begin
     if Length(Table5.FieldByName('本月读数').AsString)=0 then
        begin
             ShowMessage('请输入本月读数信息.');
             DBEDit3.SetFocus;
             Exit;
        end;
     if Table5.FieldByName('本月读数').AsInteger<=Table5.FieldByName('上月读数').AsInteger then
        begin
             ShowMessage('请注意您输入的本月读数.');
             DBEdit3.SetFocus;
        end
     else
        begin
             Table5.FieldByName('使用数').AsInteger:=Table5.FieldByName('本月读数').AsInteger
                   -Table5.FieldByName('上月读数').AsInteger;
             Table5.FieldByName('应收金额').AsFloat:=Table5.FieldByName('使用数').AsInteger
                   *Table5.FieldByName('收费金额').AsFloat;
        end;
     TDBEdit(Sender).Color:=ClWindow;
end;

procedure TSFDTX.DBGrid3KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key=VK_DOWN then
        begin
             if Query2.FieldbyName('户主姓名').AsString='' then
                begin
                     Query2.Cancel;
                     Abort;
                end;
        end;
     if key=VK_Insert then Abort;
end;

end.

⌨️ 快捷键说明

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