图11 宿舍管理系统主界面
下面给出“进出物品”类中的部分代码,作为从UML模型到Delphi实际代码转换的实例。
procedure TForm7.FormActivate(Sender: TObject);
var
Query :TADOQuery;
begin
DateTimePicker1.Date :=date;
DateTimePicker2.Time :=time;
Query :=TADOQuery.Create(self);
Query.Connection :=DataModule2.ADOConnection1 ;
Query.SQL.Clear ;
Query.SQL.Add('select * from 用户表');
Query.Open ;
//把用户表中的所有人名加入到combobox中,以备选择
while not Query.Eof do
begin
Combobox2.Items.Add(Query.FieldValues['用户名']);
Query.Next ;
end;
Query.Close ;
Query.Free ;
end;
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text ='' then
begin
MessageBox(handle,'学号不能为空!','警告',MB_OK+MB_ICONWARNING);
Edit1.SetFocus ;
exit;
end;
if Edit2.Text ='' then
begin
MessageBox(handle,'姓名不能为空!','警告',MB_OK+MB_ICONWARNING);
Edit2.SetFocus ;
exit;
end;
………. // 其他代码省略
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.text :='select * from 货物出楼表';
ADOQuery1.Open ;
//把出楼货物及信息写入货物出楼表中
ADOQuery1.Append ;
ADOQuery1.FieldByName ('学号').AsString :=trim(Edit1.Text );
ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.Text );
ADOQuery1.FieldByName('证件名称').AsString :=trim(ComboBox1.Text );
ADOQuery1.FieldByName('值班人').AsString :=trim(Combobox2.Text );
ADOQuery1.FieldByName('出楼货物').AsString :=trim(Edit3.Text );
ADOQuery1.FieldByName('出楼日期').AsDateTime :=DateTimePicker1.Time ;
ADOQuery1.FieldByName('出楼时间').AsDateTime :=DateTimePicker2.Time ;
ADOQuery1.FieldByName('备注').AsString :=Memo1.Text ;
ADOQuery1.Prepared ;
try
DataModule2.ADOConnection1.BeginTrans; //提交事务
ADOQuery1.Post ;
DataModule2.ADOConnection1.CommitTrans ;
MessageBox(handle,'登记成功!','提示',MB_OK+MB_ICONINFORMATION);
except
DataModule2.ADOConnection1.RollbackTrans ; //提交失败,回滚事务
MessageBox(handle,'登记失败!','提示',MB_OK+MB_ICONWARNING);
end;
end;
….. // 代码省略,记录进出货物信息后的一些清理工作
其流程图如下: