📄 registermemberunit.~pas
字号:
unit registermemberunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, ADODB, DB;
type
Tfrm_registermember = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
memberid: TEdit;
membername: TEdit;
membersex: TRadioGroup;
folk: TComboBox;
birthday: TDateTimePicker;
edulevel: TComboBox;
tel: TEdit;
dot: TEdit;
address: TEdit;
jointime: TDateTimePicker;
balance: TEdit;
deficiency: TEdit;
note: TEdit;
b_ok: TButton;
b_cancel: TButton;
profession: TComboBox;
jb: TComboBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
inc: TRadioButton;
desc: TRadioButton;
GroupBox3: TGroupBox;
id: TRadioButton;
name: TRadioButton;
edu: TRadioButton;
jotime: TRadioButton;
t_counter: TADOTable;
ds_member: TDataSource;
q_member: TADOQuery;
t_member: TADOTable;
procedure b_okClick(Sender: TObject);
procedure b_cancelClick(Sender: TObject);
procedure incClick(Sender: TObject);
procedure descClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure eduClick(Sender: TObject);
procedure jotimeClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
function ismoney(s:string):boolean;
function isint(s:string):boolean;
public
{ Public declarations }
end;
var
frm_registermember: Tfrm_registermember;
implementation
uses datamoduleunit;
{$R *.dfm}
function Tfrm_registermember.ismoney(s:string):boolean;
var i:integer;
begin
i:=1;
while i<length(s) do
begin
if (s[i]<>'.') and((ord(s[i])<48) or (ord(s[i])>57)) then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
function Tfrm_registermember.isint(s:string):boolean;
var i:integer;
begin
i:=1;
while i<length(s) do
begin
if (ord(s[i])<48) or (ord(s[i])>57) then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
procedure Tfrm_registermember.b_okClick(Sender: TObject);
var sex:string;
begin
if membername.Text='' then
begin
showmessage('会员姓名不能为空');
membername.SetFocus;
exit;
end;
if folk.Text='请选择民族'then begin
showmessage('请选择民族');
folk.SetFocus;
exit;
end;
if edulevel.Text='请选择学历'then begin
showmessage('请选择学历');
edulevel.SetFocus;
exit;
end;
if (isint(tel.Text)=false) or (length(tel.Text)>12) or (length(tel.Text)<1) then
begin
showmessage('请输入正确的电话号码');
activecontrol:=tel;
exit;
end;
if profession.Text='请选择职业'then begin
showmessage('请选择职业');
profession.SetFocus;
exit;
end;
if jb.Text='请选择级别'then begin
showmessage('请选择级别');
jb.SetFocus;
exit;
end;
if birthday.Date>=jointime.Date then
begin
messagedlg('''入会时间''或''生日''输入错误,请重新输入!',mtwarning,[mbok],0);
activecontrol:=birthday;
exit;
end;
if ismoney(balance.Text)=false then
begin
showmessage('''结余''应当为有效的数字型');
activecontrol:=balance;
exit;
end;
if ismoney(deficiency.Text)=false then
begin
showmessage('''欠款''应当为有效的数字型');
activecontrol:=deficiency;
exit;
end;
if (balance.Text<>'') and (balance.Text<>'0') then
begin
if (deficiency.Text<>'') and (deficiency.Text>'0') then
begin
showmessage('结余或欠款输入错误,请重新输入');
deficiency.SetFocus;
exit;
end;
end;
t_member.Close;
t_member.Open;
t_member.Append;
t_member.FieldByName('会员编号').AsInteger:=strtoint(memberid.Text);
t_member.FieldByName('会员姓名').AsString:=membername.Text;
if membersex.ItemIndex=0 then sex:='男' else sex:='女';
t_member.FieldByName('性别').AsString:=sex;
t_member.FieldByName('民族').AsString:=folk.Text;
t_member.FieldByName('生日').AsDateTime:=birthday.Date;
t_member.FieldByName('学历').AsString:=edulevel.Text;
t_member.FieldByName('电话').AsString:=tel.Text;
t_member.FieldByName('地址').AsString:=address.Text;
t_member.FieldByName('职业').AsString:=profession.Text;
t_member.FieldByName('入会时间').AsDateTime:=jointime.Date;
if balance.Text<>''
then
t_member.FieldByName('结余').AsCurrency:=strtofloat(balance.Text)
else t_member.FieldByName('结余').AsCurrency:=0;
if deficiency.Text<>''
then
t_member.FieldByName('欠款').AsCurrency:=strtofloat(deficiency.Text)
else t_member.FieldByName('欠款').AsCurrency:=0;
t_member.FieldByName('点数').AsInteger:=strtoint(dot.Text);
t_member.FieldByName('级别').AsString:=jb.Text;
t_member.FieldByName('备注').AsString:=note.Text;
t_member.Post;
t_counter.Open;
t_counter.Edit;
t_counter.FieldValues['counter']:=strtoint(memberid.Text);
t_counter.Post;
t_counter.Close;
frm_registermember.b_cancelClick(nil);
frm_registermember.FormShow(nil);
end;
procedure Tfrm_registermember.b_cancelClick(Sender: TObject);
var counter:integer;
begin
t_counter.Close;
t_counter.Open;
counter:=t_counter.FieldValues['counter'];
counter:=counter+1;
memberid.Text:=inttostr(counter);
membername.Clear;
membersex.ItemIndex:=0;
folk.Text:='请选择民族';
birthday.Date:=strtodate('1980-1-1');
edulevel.Text:='请选择学历';
tel.Text:='';
address.Text:='';
profession.Text:='请选择职业';
jointime.Date:=now;
balance.Text:='0';
deficiency.Text:='0';
dot.Text:='0';
jb.Text:='请选择级别';
note.Text:='';
activecontrol:=membername;
end;
procedure Tfrm_registermember.incClick(Sender: TObject);
var col:string;
begin
if id.Checked then col:='会员编号'else
if name.Checked then col:='会员姓名' else
if edu.Checked then col:='学历' else
if jotime.Checked then col:='入会时间'
else begin
showmessage('请选择要排序的内容');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by '+col+' asc');
try
q_member.Open;
except
q_member.Close;
end;
end;
procedure Tfrm_registermember.descClick(Sender: TObject);
var col:string;
begin
if id.Checked then col:='会员编号'else
if name.Checked then col:='会员姓名' else
if edu.Checked then col:='学历' else
if jotime.Checked then col:='入会时间'
else begin
showmessage('请选择要排序的内容');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by '+col+' desc');
try
q_member.Open;
except
q_member.Close;
end;
end;
procedure Tfrm_registermember.idClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择要排序的方法');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by 会员姓名'+s);
try
q_member.Open;
except
q_member.ExecSQL;
end;
end;
procedure Tfrm_registermember.nameClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择要排序的方法');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by 会员姓名'+s);
try
q_member.Open;
except
q_member.ExecSQL;
end;
end;
procedure Tfrm_registermember.eduClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择要排序的方法');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by 学历'+s);
try
q_member.Open;
except
q_member.ExecSQL;
end;
end;
procedure Tfrm_registermember.jotimeClick(Sender: TObject);
var s:string;
begin
if inc.Checked then s:=' asc' else
if desc.Checked then s:=' desc' else
begin
showmessage('请选择要排序的方法');
exit;
end;
q_member.Close;
q_member.SQL.Clear;
q_member.SQL.Add('select * from member order by 入会时间'+s);
try
q_member.Open;
except
q_member.ExecSQL;
end;
end;
procedure Tfrm_registermember.FormShow(Sender: TObject);
begin
q_member.Close;
try
q_member.open;
except
q_member.ExecSQL;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -