📄 mc_cnfgl.~pas
字号:
unit MC_CNFGL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables, Db, Grids, DBGrids, DBCtrls, StdCtrls, Mask, ComCtrls, Buttons,
ExtCtrls;
type
TCNFGL = 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;
DBGrid3: TDBGrid;
Query2: TQuery;
DataSource4: TDataSource;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Bevel1: TBevel;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
Query2BDEDesigner: TStringField;
Query2BDEDesigner2: TStringField;
Query2BDEDesigner3: TFloatField;
Query2BDEDesigner4: TDateTimeField;
Query2BDEDesigner5: TDateTimeField;
Query2BDEDesigner6: TFloatField;
Query2BDEDesigner7: TFloatField;
Query2BDEDesigner8: TFloatField;
Query2BDEDesigner9: TFloatField;
Query2BDEDesigner10: TFloatField;
Query2BDEDesigner11: TStringField;
Query2BDEDesigner12: TStringField;
Query3: TQuery;
GroupBox5: TGroupBox;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
BitBtn3: TBitBtn;
Label1: TLabel;
Label2: TLabel;
GroupBox6: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Label10: TLabel;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
GroupBox7: TGroupBox;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Edit2: TEdit;
BitBtn12: TBitBtn;
BitBtn13: TBitBtn;
Label19: TLabel;
Edit3: TEdit;
Label20: TLabel;
Edit4: TEdit;
Query4: TQuery;
Query2BDEDesigner13: TFloatField;
Query2BDEDesigner14: TFloatField;
Query2BDEDesigner15: TFloatField;
Table2BDEDesigner5: TStringField;
procedure Table1AfterScroll(DataSet: TDataSet);
procedure DBGrid2DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn13Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CNFGL: TCNFGL;
implementation
uses MC_CNFCSH, MC_MainForm;
{$R *.DFM}
procedure TCNFGL.FormShow(Sender: TObject);
begin
if MainForm.Query1.Locate('使用选项','采暖费管理',[loCaseInsensitive]) then
begin
if MainForm.Query1.FieldbyName('读写').AsString='读' then
begin
BitBtn1.Enabled:=False;
BitBtn2.Enabled:=False;
BitBtn4.Enabled:=False;
BitBtn5.Enabled:=False;
BitBtn11.Enabled:=False;
end;
end;
end;
procedure TCNFGL.Table1AfterScroll(DataSet: TDataSet); //当选择大楼名称时,显示相应大楼住户的采暖费信息
begin
If Table1.RecordCount <> 0 Then //大楼信息不为空
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Select * From 采暖费');
Query2.SQL.Add('where 采暖费编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:B)');
Query2.ParamByName('B').AsString:=Table1.FieldByName('大楼名称').AsString;
Query2.Open; //打开相应大楼住户的采暖费信息
end;
end;
procedure TCNFGL.DBGrid2DblClick(Sender: TObject); //选择房屋
begin
If Query2.Active Then
If Query2.RecordCount <> 0 Then //如果大楼住户的采暖费信息不为空,显示相应房屋的采暖费信息
if not Query2.Locate('采暖费编号',Table2.FieldByName('房间编号').AsString,[loCaseInsensitive]) then
ShowMessage('对不起,没有找到!!');
end;
procedure TCNFGL.BitBtn2Click(Sender: TObject); //初始化[采暖费]收费标准
begin
If Not Assigned(CNFCSH) Then
begin
CNFCSH:=TCNFCSH.Create(Self);
CNFCSH.ShowModal; //调入[采暖费]收费标准窗口
end;
Query2.Close;
Query2.Open;
end;
procedure TCNFGL.BitBtn3Click(Sender: TObject); //更新小区的采暖起止日期
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('update 采暖费 Set 计费起始日期=:A,计费终止日期=:B');
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.Date;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.Date;
Query3.EXEcSQL;
GroupBox5.Visible:=False;
Query2.Close;
Query2.Open;
end;
procedure TCNFGL.BitBtn1Click(Sender: TObject);
begin
if GroupBox5.Visible=False then GroupBox5.Visible:=True
else GroupBox5.Visible:=False;
end;
procedure TCNFGL.BitBtn4Click(Sender: TObject);
begin
GroupBox6.visible:=True;
Edit1.SetFocus;
Label7.Caption:=Query2.FieldByName('采暖费编号').AsString;
Label8.Caption:=Query2.FieldByName('户主姓名').AsString;
Label9.Caption:=Query2.FieldByName('应收金额').AsString;
Label10.Caption:=Query2.FieldByName('余额').AsString;
end;
procedure TCNFGL.BitBtn7Click(Sender: TObject); //收取当前用户的采暖费
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Update 采暖费 set 实收金额=:A,本年余额=:B');
Query3.SQL.Add('where 采暖费编号=:C');
Query3.ParamByName('A').AsFloat:=StrToFloat(Edit1.Text);
Query3.ParamByName('B').AsFloat:=StrToFloat(Edit1.Text)-StrToFloat(Label9.Caption);
Query3.ParamByName('C').AsString:=Label7.Caption;
Query3.EXECSQL;
Query2.Close;
Query2.Open;
GroupBox6.Visible:=False;
end;
procedure TCNFGL.BitBtn8Click(Sender: TObject); //取消收取当前用户的采暖费
begin
Groupbox6.Visible:=False;
end;
procedure TCNFGL.BitBtn9Click(Sender: TObject); //更新当前楼的采暖起止日期
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('update 采暖费 Set 计费起始日期=:A,计费终止日期=:B');
Query3.SQL.Add('where 采暖费编号 in (Select 房间编号 From 房屋信息表');
Query3.SQL.Add('Where 大楼名=:C)');
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.Date;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.Date;
Query3.ParamByName('C').AsString:=Table1.FieldByName('大楼名称').AsString;
Query3.EXEcSQL;
GroupBox5.Visible:=False;
Query2.Close;
Query2.Open;
end;
procedure TCNFGL.BitBtn10Click(Sender: TObject); //更新当前住户的采暖起止日期
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('update 采暖费 Set 计费起始日期=:A,计费终止日期=:B');
Query3.SQL.Add('where 采暖费编号=:C');
Query3.ParamByName('A').AsDateTime:=DateTimePicker1.Date;
Query3.ParamByName('B').AsDateTime:=DateTimePicker2.Date;
Query3.ParamByName('C').AsString:=Table2.FieldByName('房间编号').AsString;
Query3.EXEcSQL;
GroupBox5.Visible:=False;
Query2.Close;
Query2.Open;
end;
procedure TCNFGL.BitBtn12Click(Sender: TObject); //特殊情况收取采暖费
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Update 采暖费 set 实收金额=:A,本年余额=:B,减免金额=:D,原因=:E where 采暖费编号=:C');
Query3.ParamByName('A').AsFloat:=StrToFloat(Edit2.Text);
Query3.ParamByName('D').AsFloat:=StrToFloat(Edit3.Text);
Query3.ParamByName('E').AsString:=Edit4.Text;
Query3.ParamByName('B').AsFloat:=StrToFloat(Edit3.Text)+StrToFloat(Edit2.Text)-StrToFloat(Label17.Caption);
Query3.ParamByName('C').AsString:=Label15.Caption;
Query3.EXECSQL;
Query2.Close;
Query2.Open;
GroupBox7.Visible:=False;
end;
procedure TCNFGL.BitBtn5Click(Sender: TObject); //特殊情况收费情况登记
begin
GroupBox7.visible:=True;
Edit2.SetFocus;
Label15.Caption:=Query2.FieldByName('采暖费编号').AsString;
Label16.Caption:=Query2.FieldByName('户主姓名').AsString;
Label17.Caption:=Query2.FieldByName('应收金额').AsString;
Label18.Caption:=Query2.FieldByName('余额').AsString;
end;
procedure TCNFGL.BitBtn13Click(Sender: TObject); //取消特殊情况采暖费收取
begin
Groupbox7.Visible:=False;
end;
procedure TCNFGL.BitBtn11Click(Sender: TObject); //导出采暖费信息
begin
if MessageDLG('是否导出采暖费信息?',mtCustom,[mbYes,mbNo],0)=mryes then
begin
Query4.close;
Query4.sQL.Clear;
Query4.SQL.Add('Insert 采暖费历史表(采暖费编号,户主姓名,采暖费标准,计费起始日期,计费终止日期,建筑面积,应收金额,实收金额,余额,减免金额,原因,去年应交,去年实交,本年余额)');
Query4.SQL.Add('Select 采暖费编号,户主姓名,采暖费标准,计费起始日期,计费终止日期,建筑面积,应收金额,实收金额,余额,减免金额,原因,去年应交,去年实交,本年余额 From 采暖费');
Query4.ExecSQL;
Query4.Close;
query4.SQL.Clear;
Query4.SQL.Add('update 采暖费 Set 实收金额=0,减免金额=0,原因=null,余额=余额+本年余额,本年余额=0');
Query4.SQl.Add(',去年应交=应收金额,去年实交=实收金额');
Query4.ExecSQL; //执行信息导出
ShowMessage('导出完毕!');
Query2.Close;
Query2.Open;
end;
end;
procedure TCNFGL.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CNFGL.Release;
CNFGL:=Nil;
end;
procedure TCNFGL.BitBtn6Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -