【delphi开源代码栏目提醒】:网学会员delphi开源代码为您提供MC_KMSD.pas参考,解决您在MC_KMSD.pas学习中工作中的难题,参考学习。
unit MC_KMSD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, StdCtrls, Mask, DBCtrls, DBTables, ExtCtrls, Grids, DBGrids, Buttons;
type
TKMSD = class(TForm)
GroupBox1: TGroupBox;
Table1: TTable;
Table1BDEDesigner: TStringField;
Label1: TLabel;
DBEdit1: TDBEdit;
DataSource1: TDataSource;
Bevel1: TBevel;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Table1BDEDesigner2: TFloatField;
Label2: TLabel;
DBEdit2: TDBEdit;
GroupBox2: TGroupBox;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
Query1: TQuery;
BitBtn5: TBitBtn;
Query2: TQuery;
BitBtn6: TBitBtn;
Query3: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
KMSD: TKMSD;
implementation
{$R *.DFM}
procedure TKMSD.BitBtn1Click(Sender: TObject); //添加或保存操作
begin
if BitBtn1.Caption='添加[&I]' then //添加科目
begin
Table1.Append;
DBEdit1.SetFocus;
BitBtn1.Caption:='保存[&S]';
BitBtn2.Caption:='取消[&U]';
DBGrid1.Enabled:=False;
End
Else //保存科目
begin
if (Length(DBEDit1.Text)=0)
or (Length(DBEdit2.Text)=0) then
begin
showMessage('请输入新科目名和费用标准.');
End
Else
begin
BitBtn1.Caption:='添加[&I]';
BitBtn2.Caption:='删除[&D]';
DBGrid1.Enabled:=True;
Table1.Post;
end;
end;
end;
procedure TKMSD.BitBtn2Click(Sender: TObject); //取消或删除操作
begin
if BitBtn2.Caption='取消[&U]' then
begin
DBGrid1.Enabled:=False;
BitBtn1.Caption:='添加[&I]';
BitBtn2.Caption:='删除[&D]';
Table1.Cancel;
End
Else
begin
If Table1.RecordCount <> 0 Then
if MessageDLG('是否删除['+Table1.FieldByname('科目名').AsString+']的信息?'
,mtCustom,[mbYes,mbNO],0)=mrYes then
Table1.Delete;
end;
end;
procedure TKMSD.BitBtn6Click(Sender: TObject); //更新现收费标准
begin
if MessageDLG('是否更新['+Table1.FieldByName('科目名').AsString+']的费用信息'
,mtCustom,[mbYes,mbNo],0)=mrYes then
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Update 常用费用 Set 收费金额=:B where 费用科目=:A'); //更新选定科目收费
Query2.ParamByName('A').AsString:=Table1.FieldByName('科目名').AsString;
Query2.ParamByName('B').AsFloat:=Table1.FieldByName('费用标准').AsFloat;
Try
Query2.ExecSQL;
ShowMessage('更新完毕.');
Except
ShowMessage('更新失败.');
end;
end;
end;
procedure TKMSD.BitBtn4Click(Sender: TObject); //删除现有收费项
begin
If Query1.RecordCount <> 0 Then
if MessageDLG('是否删除['+Query1.FieldByName('费用科目').AsString+']的信息?'
,mtCustom,[mbYes,mbNo],0)=mrYes then
if MessageDLG('用户的剩余金额也会被删除,您真确认删除吗?',mtCustom
,[mbYes,mbNo],0)=mrYes then
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Delete 常用费用 Where 费用科目=:A'); //删除选中费用科目
Query2.ParamByName('A').AsString:=Query1.FieldByName('费用科目').AsString;
Try
Query2.ExecSQL;
Query1.Close;
Query1.Open;
Except
ShowMessage('删除失败.');
end;
end;
end;
procedure TKMSD.BitBtn5Click(Sender: TObject); //添加新收费项
begin
if Query1.Locate('费用科目',Table1.FieldByName('科目名').AsString,[loCaseInsensitive]) then
ShowMessage('科目已经存在')
Else
if MessageDLg('是否将['+Table1.FieldByName('科目名').AsString
+']的科目信息添加到
常用费用表中,并为其用户初始化信息?',mtCustom
,[mbYes,mbNo],0)=mrYes then
begin
Query3.Close;
Query3.Open;
while not Query3.Eof do
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Insert 常用费用(收费编号,户主,费用科目,收费金额,计费起始日期,计费终止日期,应收金额,实收金额,剩余金额)');
Query2.SQL.Add('Values(:A,:B,:C,:D,:E,:F,:G,:H,:I)');
Query2.ParamByName('A').asString:=Query3.FieldByName('水表编号').AsString;
Query2.ParamByName('B').asString:=Query3.FieldByName('户主').AsString;
Query2.ParamByName('C').asString:=Table1.FieldByName('科目名').AsString;
Query2.ParamByName('D').asFloat:=Table1.FieldByName('费用标准')