📄 mc_sfdtx.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 + -