?? input.pas
字號:
unit Input;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, ComCtrls, Buttons,db, XPMenu;
type
TInputForm = class(TForm)
StatusBar1: TStatusBar;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Image1: TImage;
GroupBox3: 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;
XHEdit: TEdit;
XNedit: TEdit;
XPComboBox: TComboBox;
JYComboBox: TComboBox;
PGEdit: TEdit;
PSEdit: TEdit;
YXDateTimePicker: TDateTimePicker;
PYEdit: TEdit;
ZZComboBox: TComboBox;
PSDateTimePicker: TDateTimePicker;
JTEdit: TEdit;
LXEdit: TEdit;
Label13: TLabel;
Memo1: TMemo;
CheckBox1: TCheckBox;
Button1: TButton;
Button2: TButton;
PSBT: TSpeedButton;
XPMenu1: TXPMenu;
procedure PSBTClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
InputForm: TInputForm;
implementation
uses classroom,md;
{$R *.dfm}
//當錄入一條記錄時。對應的寢室實住人數自動增加
procedure ChangeRenNum(s:string);
begin
with datamd.ADOBTPd do
begin
close;
sql.Clear;
sql.add('update tbpd set 實住人數=實住人數+1 where 寢室號='''+s+'''');
ExecSQL;
end;
end;
//isempty函數是判斷相應的字段是否為空,判斷傳遞過來的對象是否與已知對象相同
//相同再判斷是不是空的
function IsEmpty1(Sender:Tobject):boolean;
begin
if (sender is Tedit) then //判斷是否為Tedit控件
if trim((sender as Tedit).Text)='' then
begin
showmessage('請輸入數據');
result:=false;
(sender as tedit).SetFocus;
exit;
end;
if (sender is Tcombobox) then //判斷是否為Tcombobox
if trim((sender as Tcombobox).Text)='' then
begin
result:=false;
showmessage('請輸入數據');
(sender as Tcombobox).SetFocus;
exit;
end;
if (sender is TDatetimePicker) then //判斷是否為TDateTimePicker
if trim(datetimetostr((sender as TDateTimePicker).DateTime))='' then
begin
result:=false;
showmessage('請輸入數據');
(sender as TDateTimePicker).SetFocus;
exit;
end;
result:=true;
end;
//checkCom 過程是當修改是判斷當前記錄的值。在combobox中的位置。以及移到相應的值上面
procedure checkcom(Sender:TObject;str:string);
var
i:integer;
begin
for i:=0 to (sender as Tcombobox).Items.Count-1 do
begin
(sender as Tcombobox).ItemIndex:=i;
if (sender as Tcombobox).Text=str then
exit;
end;
end;
procedure TInputForm.PSBTClick(Sender: TObject);
begin
application.CreateForm(TPsForm,PsForm);
Psform.ShowModal;
psform.Free;
end;
procedure TInputForm.Button1Click(Sender: TObject);
begin
with datamd.ADOOrder do
begin
close;
sql.Clear;
sql.Add('select * from TBorder');
open; //打開數據庫,以便做相就應操作
if (not checkbox1.Checked) and IsEmpty1(xhedit) and isempty1(xnedit) and
isempty1(xpcombobox) and isempty1(jycombobox) and isempty1(psedit) and isempty1(pyedit)
and isempty1(zzcombobox) and isempty1(jtedit) and isempty1(lxedit) and isempty1(YXDateTimePicker) and isempty1(psDateTimePicker) then
if locate('學號',trim(Xhedit.Text),[lopartialkey]) then
begin
showmessage('該記錄已經存在');
cancel;
end
else
begin
append;
fieldbyname('學號').AsString:=Trim(Xhedit.Text);
fieldbyname('姓名').AsString:=trim(xnedit.Text);
fieldbyname('性別').AsString:=trim(xpcombobox.Text);
fieldbyname('專業').AsString:=trim(jycombobox.Text);
fieldbyname('班級').AsString:=trim(pGedit.Text);
fieldbyname('寢室號').AsString:=trim(psedit.Text);
fieldbyname('入學日期').AsDateTime:=yxdatetimepicker.Date;
fieldbyname('出生年月').AsDateTime:=psdatetimepicker.Date;
fieldbyname('畢業學校').AsString:=pyedit.Text;
fieldbyname('政治面貌').AsString:=zzcombobox.Text;
fieldbyname('聯系方式').AsString:=lxedit.Text;
fieldbyname('家庭地址').AsString:=jtedit.Text;
fieldbyname('狀態').AsString:='入學';
fieldbyname('備注').AsVariant:=memo1.Text;
try
if messagedlg('請確認輸入的數據無誤,然后寫入數據庫!',mtconfirmation,[mbYes,mbNO],0)=mryes then
begin
post;
ChangeRenNum(psedit.Text);
end
else
begin
showmessage('操作已取消,請重新輸入');
cancel;
exit;
end;
except
on EdatabaseError do
end;
end;
if checkbox1.Checked then
begin
if locate('學號',trim(Xhedit.Text),[lopartialkey]) then
begin
showmessage('該記錄已經存在');
cancel;
end
else
begin
edit;
fieldbyname('學號').AsString:=Trim(Xhedit.Text);
fieldbyname('姓名').AsString:=trim(xnedit.Text);
fieldbyname('性別').AsString:=trim(xpcombobox.Text);
fieldbyname('專業').AsString:=trim(jycombobox.Text);
fieldbyname('班級').AsString:=trim(pGedit.Text);
fieldbyname('寢室號').AsString:=trim(psedit.Text);
fieldbyname('入學日期').AsDateTime:=yxdatetimepicker.DateTime;
fieldbyname('出生年月').AsDateTime:=psdatetimepicker.DateTime;
fieldbyname('畢業學校').AsString:=psedit.Text;
fieldbyname('政治面貌').AsString:=zzcombobox.Text;
fieldbyname('聯系方式').AsString:=lxedit.Text;
fieldbyname('家庭地址').AsString:=jtedit.Text;
fieldbyname('備注').AsVariant:=memo1.Text;
if messagedlg('請確認輸入的數據無誤,然后寫入數據庫!',mtconfirmation,[mbYes,mbNO],1)=mryes then
post
else
begin
showmessage('操作已取消,請重新輸入');
cancel;
end;
end;
end;
end;
end;
procedure TInputForm.CheckBox1Click(Sender: TObject);
begin
//當單擊選擇框時做相應的改變。當選中時修改最后一條記錄。當沒有選中時
//最后一條記錄
with datamd.ADOOrder do
begin
close;
sql.Clear;
sql.Add('select * from TBorder');
open;
if checkbox1.Checked then
begin
last;
prior;
Xhedit.Text:=fieldbyname('學號').AsString;
xnedit.Text:=fieldbyname('姓名').AsString;
checkcom(xpcombobox,fieldbyname('性別').AsString);
checkcom(jycombobox,fieldbyname('專業').AsString);
pGedit.Text:=fieldbyname('班級').AsString;
psedit.Text:=fieldbyname('寢室號').AsString;
yxdatetimepicker.DateTime:=fieldbyname('入學日期').AsDateTime;
psdatetimepicker.DateTime:=fieldbyname('出生年月').AsDateTime;
pyedit.Text:=fieldbyname('畢業學校').AsString;
checkcom(zzcombobox,fieldbyname('政治面貌').AsString);
lxedit.Text:=fieldbyname('聯系方式').AsString;
jtedit.Text:=fieldbyname('家庭地址').AsString;
memo1.Text:=fieldbyname('備注').AsVariant;
last;
end
else
begin
xhedit.Clear;
xnedit.Clear;
pgedit.Clear;
psedit.Text;
psedit.Clear;
pyedit.Clear;
lxedit.Clear;
jtedit.Clear;
memo1.Clear;
last;
end;
end;
end;
procedure TInputForm.Button2Click(Sender: TObject);
begin
close;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -