?? readeru.pas
字號:
unit ReaderU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls,ADODB,DB,StrUtils;
type
TReaderF = class(TForm)
StaticText7: TStaticText;
StaticText5: TStaticText;
StaticText4: TStaticText;
StaticText3: TStaticText;
StaticText2: TStaticText;
ID: TEdit;
name: TEdit;
shenfen: TEdit;
StaticText1: TStaticText;
sex: TComboBox;
edu: TComboBox;
typee: TComboBox;
StaticText8: TStaticText;
StaticText9: TStaticText;
StaticText10: TStaticText;
StaticText11: TStaticText;
StaticText13: TStaticText;
StaticText14: TStaticText;
homep: TEdit;
handp: TEdit;
bp: TEdit;
qq: TEdit;
email: TEdit;
address: TEdit;
ListBox1: TListBox;
StaticText15: TStaticText;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox2: TGroupBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure IDExit(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure nameChange(Sender: TObject);
procedure homepChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure CGetReaderInfo(value:string); //獲得讀者信息
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
IsChange:boolean; //判斷是否修改
sqlStr,sqlStr1:string;
function CUpdate:boolean;
procedure TagInit;
end;
var
ReaderF: TReaderF;
implementation
uses DataModule,ShareU, MainU;
{$R *.dfm}
procedure TReaderF.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
draw(ReaderF);
end;
function TReaderF.CUpdate:boolean;
var
Query:TADOQuery;
begin
result:=false;
if (sqlstr='') and (sqlstr1='') then exit;
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
try
dm.ADOConnection1.BeginTrans;
if sqlstr<>'' then
begin
sqlstr:=leftstr(sqlstr,length(sqlstr)-1); //去掉逗號
sqlstr:='update reader_info set '+sqlstr+' where readercardid='''+id.Text+'''';
Query.SQL.Text:=sqlstr;
Query.ExecSQL;
Query.Close;
end;
if sqlstr1<>'' then
begin
sqlstr1:=leftstr(sqlstr1,length(sqlstr1)-1); //去掉逗號
sqlstr1:='update reader_relation set '+sqlstr1+' where readercardid='''+id.Text+'''';
Query.SQL.Text:=sqlstr1;
Query.ExecSQL;
end;
dm.ADOConnection1.CommitTrans;
result:=true;
except
dm.ADOConnection1.RollbackTrans;
showmessage('更新失敗!');
result:=false;
end;
Query.close;
Query.free;
end;
procedure TReaderF.CGetReaderInfo(value:string);
Var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(SELF);
Query.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select * from reader_info where readercardid=:readercardid';
Query.Parameters.ParamByName('readercardid').Value:=value;
try
Query.Open;
if not DM.CCheckID('select readercardid from reader_info where '+
'readercardid='''+trim(id.Text)+'''') then
begin
showmessage('無此卡號,重新輸入!');
CClearData(ReaderF);
id.SetFocus;
exit;
end;
name.Text:=Query.FieldValues['name'];
shenfen.Text:=Query.FieldValues['id'];
sex.ItemIndex:=Query.FieldValues['sex'];
edu.ItemIndex:=Query.FieldValues['educationid'];
typee.ItemIndex:=Query.FieldValues['readertypeid'];
Query.Close;
Query.SQL.Text:='select * from reader_relation where readercardid=:readercardid';
Query.Parameters.ParamByName('readercardid').Value:=value;
Query.Open;
homep.Text:=Query.FieldValues['homephone'];
handp.Text:=Query.FieldValues['handphone'];
bp.Text:=Query.FieldValues['bp'];
qq.Text:=query.FieldValues['qq'];
email.Text:=Query.FieldValues['email'];
address.Text:=Query.FieldValues['address'];
finally
Query.Close;
Query.Free;
end;
end;
procedure TReaderF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ReaderF:=nil;
Action:=cafree; //釋放窗體
end;
procedure TReaderF.TagInit; //TAG清0
var
i:integer;
begin
for i:=0 to ReaderF.controlcount-1 do
readerf.Controls[i].Tag:=0;
end;
procedure TReaderF.IDExit(Sender: TObject);
begin
if id.Text<>'' then
CGetReaderInfo(id.Text);
SqlStr:='';
sqlstr1:='';
TagInit;
end;
procedure TReaderF.BitBtn3Click(Sender: TObject);
begin
ccleardata(readerf);
end;
procedure TReaderF.nameChange(Sender: TObject);
begin
if (sender is TEdit) then
(sender as Tedit).Tag:=1;
if (sender is TCombobox) then
(sender as TCombobox).Tag:=1;
end;
procedure TReaderF.homepChange(Sender: TObject);
begin
if (sender is TEdit) then
(sender as Tedit).Tag:=2;
end;
procedure TReaderF.BitBtn1Click(Sender: TObject);
procedure GetTagText; //獲得更改控件的Text值
var i:integer;
begin
for i:=0 to ReaderF.ControlCount-1 do
begin
if readerf.Controls[i].Tag=1 then //基本信息
begin
if (readerf.Controls[i] is TEdit) then
begin
if ((readerf.Controls[i] as TEdit)=name) then
sqlStr:=sqlstr+'name='''+name.Text+''','
else if ((readerf.Controls[i] as TEdit)=shenfen) then
sqlStr:=sqlstr+'id='''+shenfen.Text+''','
end
else if (readerf.Controls[i] is TComboBox) then
begin
if ((readerf.Controls[i] as TComboBox)=sex) then
sqlstr:=sqlstr+'sex='''+inttostr(sex.ItemIndex)+''','
else if ((readerf.Controls[i] as TComboBox)=typee) then
sqlstr:=sqlstr+'readertypeid='''+inttostr(typee.ItemIndex)+''','
else if ((readerf.Controls[i] as TComboBox)=edu) then
sqlstr:=sqlstr+'educationid='''+inttostr(edu.ItemIndex)+''',';
end;
end;
if readerf.Controls[i].Tag=2 then //為聯系信息
begin
if (readerf.Controls[i] is TEdit) then
begin
if ((readerf.Controls[i] as TEdit)=homep) then
sqlStr1:=sqlstr1+'homephone='''+homep.Text+''','
else if ((readerf.Controls[i] as TEdit)=handp) then
sqlStr1:=sqlstr1+'handphone='''+handp.Text+''','
else if ((readerf.Controls[i] as TEdit)=bp) then
sqlstr1:=sqlstr1+'bp='''+bp.Text+''','
else if ((readerf.Controls[i] as TEdit)=qq) then
sqlstr1:=sqlstr1+'qq='''+qq.Text+''','
else if ((readerf.Controls[i] as TEdit)=email) then
sqlstr1:=sqlstr1+'email='''+email.Text+''','
else if ((readerf.Controls[i] as TEdit)=address) then
sqlstr1:=sqlstr1+'address='''+address.Text+''',';
end;
end;
end;
end;
begin
gettagtext; //獲得SQL語句
if cupdate then showmessage('ok');
sqlstr:='';
sqlstr1:='';
TagInit;
CClearData(ReaderF);
id.SetFocus;
end;
procedure TReaderF.nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_down) or (key=13) then
begin
selectnext(activecontrol,true,true);
if activecontrol is tedit then
(activecontrol as tedit).SelectAll;
end
else if (key=vk_up) then
begin
selectnext(activecontrol,false,true);
if activecontrol is tedit then
(activecontrol as tedit).SelectAll;
end
else
key:=0;
end;
procedure TReaderF.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then BitBtn1Click(Sender);
end;
procedure TReaderF.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TReaderF.FormCreate(Sender: TObject);
begin
caption:='讀者管理';
Icon:=mainf.Icon;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -