📄 clientunit.pas
字号:
unit clientUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, Mask, Buttons, ToolWin,
ComCtrls, ExtCtrls, DB, DBTables;
type
TClientForm = class(TForm)
Panel1: TPanel;
ToolBar1: TToolBar;
btadd: TBitBtn;
btok: TBitBtn;
Btdel: TBitBtn;
btno1: TBitBtn;
Panel2: TPanel;
Label6: TLabel;
Label8: TLabel;
Label4: TLabel;
Label7: TLabel;
Label1: TLabel;
Label3: TLabel;
Label5: TLabel;
TS_ID: TDBEdit;
TS_User: TDBEdit;
UserTel: TDBEdit;
AddRess: TDBEdit;
chargeItemNum: TDBEdit;
Com_Person: TDBEdit;
TS_Memo: TDBMemo;
Panel3: TPanel;
DBGrid1: TDBGrid;
Page1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Panel4: TPanel;
Panel5: TPanel;
Label2: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
DBGrid2: TDBGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBMemo1: TDBMemo;
Label19: TLabel;
DBEdit9: TDBEdit;
Label20: TLabel;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
Label21: TLabel;
DBEdit12: TDBEdit;
Label22: TLabel;
DBEdit13: TDBEdit;
Label23: TLabel;
DBEdit14: TDBEdit;
Label24: TLabel;
DBEdit15: TDBEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Label25: TLabel;
DBEdit16: TDBEdit;
Label26: TLabel;
DBEdit17: TDBEdit;
Label27: TLabel;
DBEdit18: TDBEdit;
Label28: TLabel;
DBEdit19: TDBEdit;
Label29: TLabel;
DBMemo2: TDBMemo;
Panel6: TPanel;
DBGrid3: TDBGrid;
SpeedButton4: TSpeedButton;
Panel7: TPanel;
DBGrid4: TDBGrid;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label39: TLabel;
DBEdit20: TDBEdit;
DBEdit21: TDBEdit;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
DBEdit26: TDBEdit;
DBMemo3: TDBMemo;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
procedure CheckStr(Sender: TObject; Name: string);
procedure FormCreate(Sender: TObject);
procedure btaddClick(Sender: TObject);
procedure btokClick(Sender: TObject);
procedure BtdelClick(Sender: TObject);
procedure btno1Click(Sender: TObject);
procedure Page1Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ClientForm: TClientForm;
implementation
uses udm, dateUnit, selectTextUnit, SelectDataUnit;
{$R *.dfm}
procedure TClientForm.CheckStr(Sender: TObject; Name: string);
begin
if Trim((sender as Tdbedit).Text) = '' then
begin
ShowMessage(Name + ': 此栏必须填写信息!');
(Sender as TDBEdit).SetFocus;
end;
end;
procedure TClientForm.FormCreate(Sender: TObject);
begin
caption := '住户资料录入';
page1.TabIndex := 0; // 初始化,选项卡显示第一个
end;
procedure TClientForm.btaddClick(Sender: TObject);
var
NewID: string;
begin
try
case page1.ActivePageIndex of
0:
begin
adodm.client.Last; //返到记录的最后一个
NewID := IntToStr(adodm.client.FieldByName('住户编号').AsInteger + 1);
//新记录的编号
adodm.client.Append; //增加新记录
TS_ID.Text := NewID; //把新记录的编号
end;
1:
begin
adodm.ttemp.Append;
//当追加新记录的时候,把当前记录的编号和名称自动输入
DBedit9.Text := adodm.client.FieldByName('住户编号').AsString;
DBedit10.Text := adodm.client.FieldByName('住户名称').AsString;
end;
2:
begin
adodm.search1.Append;
//当追加新记录的时候,把当前记录的编号和名称自动输入
DBedit12.Text := adodm.client.FieldByName('住户编号').AsString;
DBedit11.Text := adodm.client.FieldByName('住户名称').AsString;
end;
3:
begin
adodm.ClientFamily.Append;
//当追加新记录的时候,把当前记录的编号和名称自动输入
DBedit14.Text := adodm.client.FieldByName('住户编号').AsString;
DBedit13.Text := adodm.client.FieldByName('住户名称').AsString;
end;
end;
except
showmessage('产生例外错误,请联系开发人员或者程序供应商');
end;
end;
procedure TClientForm.btokClick(Sender: TObject);
begin
try
case page1.ActivePageIndex of
0:
begin
CheckStr(TS_ID, '住户编号'); //检查不能够为空的项目
CheckStr(TS_user, '住户名称');
CheckStr(UserTel, '联系电话');
CheckStr(Address, '联系电话'); //检查不能够为空的项目
adodm.client.Post; //提交新记录
end;
1:
begin
CheckStr(DBEdit9, '住户编号'); //检查不能够为空的项目
CheckStr(DBEdit10, '住户名称');
CheckStr(DBEdit15, '使用状况');
CheckStr(DBEdit1, '小区名称'); //检查不能够为空的项目
CheckStr(DBEdit2, '楼宇名称');
CheckStr(DBEdit3, '楼层');
CheckStr(DBEdit4, '房屋号'); //检查不能够为空的项目
CheckStr(DBEdit5, '单元');
CheckStr(DBEdit6, '迁入日期');
CheckStr(DBEdit8, '房型'); //检查不能够为空的项目
adodm.ttemp.Post;
end;
2:
begin
CheckStr(DBEdit12, '住户编号'); //检查不能够为空的项目
CheckStr(DBEdit11, '住户名称');
CheckStr(DBEdit20, '收费名称');
CheckStr(DBEdit23, '定额用量');
CheckStr(DBEdit24, '定额内价格');
CheckStr(DBEdit25, '超定额价格'); //检查不能够为空的项目
adodm.search1.Post;
end;
3:
begin
CheckStr(DBEdit14, '住户编号'); //检查不能够为空的项目
CheckStr(DBEdit13, '住户名称');
CheckStr(DBEdit16, '姓名');
CheckStr(DBEdit17, '性别');
CheckStr(DBEdit18, '生日');
CheckStr(DBEdit19, '称谓'); //检查不能够为空的项目
adodm.ClientFamily.Post;
end;
end;
except
showmessage('产生例外错误,请联系开发人员或者程序供应商');
end;
end;
procedure TClientForm.BtdelClick(Sender: TObject);
begin
if MessageDlg('您确定要删除录入的数据吗?', mtConfirmation, [mbYes, mbNo], 0)
= mrYes then
begin
try
case page1.ActivePageIndex of
0: adodm.client.Delete; //删除当前记录
1: adodm.Ttemp.Delete;
2: adodm.search1.Delete;
3: adodm.ClientFamily.Delete;
end;
except
showmessage('产生例外错误,请联系开发人员或者程序供应商');
end;
end;
end;
procedure TClientForm.btno1Click(Sender: TObject);
begin
try
case page1.ActivePageIndex of
0: adodm.client.Cancel; //取消加入新记录
1: adodm.ttemp.Cancel;
2: adodm.search1.Cancel;
3: adodm.ClientFamily.Cancel;
end;
except
showmessage('产生例外错误,请联系开发人员或者程序供应商');
end;
close;
end;
procedure TClientForm.Page1Change(Sender: TObject);
begin
case page1.TabIndex of
1:
begin
with adodm.ttemp do
begin
Close;
CommandText := '';
CommandText :=
'SELECT * FROM ClientRoomTable where 住户编号=:住户编号';
Parameters.ParamByName('住户编号').Value := TS_ID.Text;
open;
end; // 设置主要控件数据源
DBGrid2.DataSource := adodm.dstemp;
DBEdit9.DataSource := adodm.dstemp;
DBEdit9.DataField := '住户编号';
DBEdit10.DataSource := adodm.dstemp;
DBEdit10.DataField := '住户名称';
end;
2:
begin
with adodm.search1 do
begin
Close;
CommandText := '';
CommandText := 'SELECT * FROM ChargeTable where 住户编号=:住户编号';
Parameters.ParamByName('住户编号').Value := TS_ID.Text;
open;
end; // 设置主要控件数据源
DBGrid4.DataSource := adodm.dssearch1;
DBEdit12.DataSource := adodm.dssearch1;
DBEdit12.DataField := '住户编号';
DBEdit11.DataSource := adodm.dssearch1;
DBEdit11.DataField := '住户名称';
end;
3:
begin
with adodm.ClientFamily do
begin
Close;
CommandText := '';
CommandText :=
'SELECT * FROM ClientFamilyTable where 住户编号=:住户编号';
Parameters.ParamByName('住户编号').Value := TS_ID.Text;
open;
end; // 设置主要控件数据源
DBGrid3.DataSource := adodm.dsClientFamily;
DBEdit14.DataSource := adodm.dsClientFamily;
DBEdit14.DataField := '住户编号';
DBEdit13.DataSource := adodm.dsClientFamily;
DBEdit13.DataField := '住户名称';
end;
end;
end;
procedure TClientForm.SpeedButton1Click(Sender: TObject);
begin
Application.CreateForm(TSelectTextForm, SelectTextForm);
SelectTextForm.Caption := '房屋使用方式选择'; //显示房屋使用方式窗体
with SelectTextForm.ComboBox1 do
begin
clear; // 添加房屋使用方式数据
items.Add('出租');
items.Add('购买未住');
items.Add('购买外租');
items.Add('购买自用');
items.Add('已转售');
items.Add('已退租');
itemindex := 0;
end;
if SelectTextForm.ShowModal = mrOk then
begin
DBedit15.Text := ''; //情况控件中原有的数据
DBedit15.Text := SelectTextForm.combobox1.Text;
end; //得到房屋使用方式的文本
SelectTextForm.Free;
end;
procedure TClientForm.SpeedButton2Click(Sender: TObject);
begin
Application.CreateForm(TdateForm, dateForm);
if (dateForm.ShowModal = mrOk) then
begin // 显示日期选择窗体
DBedit6.Text := '';
DBedit6.Text := DateTimeToStr(dateForm.date1.date);
end; //得到当前选择日期
dateForm.Free;
end;
procedure TClientForm.SpeedButton3Click(Sender: TObject);
begin
Application.CreateForm(TdateForm, dateForm);
if (dateForm.ShowModal = mrOk) then
begin // 显示日期选择窗体
DBedit7.Text := '';
DBedit7.Text := DateTimeToStr(dateForm.date1.date);
end; //得到当前选择日期
dateForm.Free;
end;
procedure TClientForm.SpeedButton4Click(Sender: TObject);
begin
Application.CreateForm(TdateForm, dateForm);
if (dateForm.ShowModal = mrOk) then
begin // 显示日期选择窗体
DBedit18.Text := '';
DBedit18.Text := DateTimeToStr(dateForm.date1.date);
end; //得到当前选择日期
dateForm.Free;
end;
procedure TClientForm.SpeedButton6Click(Sender: TObject);
begin
Application.CreateForm(TSelectDataForm, SelectDataForm);
SelectDataForm.Caption := '请选择房型';
with SelectDataForm.DBLookupComboBox1 do
begin
with adodm.search3 do
begin //从数据库中得到所有的房型数据
Close;
CommandText := 'SELECT 房型 FROM ModelTable';
open;
end;
ListSource := adodm.dssearch3;
KeyField := '房型';
if adodm.search3.RecordCount > 0 then
ListFieldIndex := 0;
if adodm.search3.RecordCount = 0 then
//如果房型资料的数据库为空的话,提示出错信息
ShowMessage('不能够新增记录,没有房型资料');
end;
if SelectDataForm.ShowModal = mrOk then
DBEdit8.Text := SelectDataForm.DBLookupComboBox1.Text;
SelectDataForm.Free;
end;
procedure TClientForm.SpeedButton5Click(Sender: TObject);
var
ChargeNum, // 收费金额
ChargeUnit, // 收费单位
ChargePeriod: // 收费周期
string;
begin
Application.CreateForm(TSelectDataForm, SelectDataForm);
SelectDataForm.Caption := '请选择收费名称';
with SelectDataForm.DBLookupComboBox1 do
begin
with adodm.search2 do
begin //从数据库中得到所有的收费名称数据
Close;
CommandText := 'SELECT 收费名称 FROM ChargeItemTable';
open;
end;
ListSource := adodm.dssearch2;
KeyField := '收费名称';
if adodm.search2.RecordCount > 0 then
ListFieldIndex := 0;
if adodm.search2.RecordCount = 0 then
ShowMessage('不能够新增记录,没有用户收费项目');
end;
if SelectDataForm.ShowModal = mrOk then
DBEdit20.Text := SelectDataForm.DBLookupComboBox1.Text;
SelectDataForm.Free;
with adodm.search2 do
begin //从数据库中得到所有的收费名称数据
Close;
CommandText :=
'SELECT 收费金额,收费单位,收费周期 FROM ChargeItemTable where 收费名称=:收费名称';
Parameters.ParamByName('收费名称').Value := DBedit20.Text;
open;
end;
DBEdit21.Text := adodm.search2.FieldByName('收费金额').AsString;
DBEdit22.Text := adodm.search2.FieldByName('收费单位').AsString;
DBEdit26.Text := adodm.search2.FieldByName('收费周期').AsString;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -