?? 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 + -