员工教师通讯录应用系统 下载本文

石河子大学--Delphi课程设计 2012年11月2日

}

函数OnButtonAppend中调用的另外一个函数是RefurTree,它首先取得当前选中的项,然后识别出选中项为组还是教师,如果为组,则保存其组ID;如果为教师,则保存其所属的组的ID。然后调用函数InitTreeList初始化左侧树控件数据,最后则根据此前纪录的组ID及教师ID将当前选择项设定为相应的组,而如果教师ID不为-1,即此前也保存了教师ID时,则进一步将当前选择项设定为该教师ID所对应的教师。函数RefurTree部分代码如下所示:

函数RefurTree部分代码如下:

// 记录当前选中项

HTREEITEM hSelItem = m_tree_list.GetSelectedItem(); int nGroupId = -1; int nPeopleId = -1;

if(m_tree_list.GetParentItem(hSelItem) == NULL) {// 选中组 } else {// 选中教师

HTREEITEM hGroupItem;

hGroupItem = m_tree_list.GetParentItem(hSelItem); nGroupId = m_tree_list.GetItemData(hSelItem);

石河子大学--Delphi课程设计

2012年11月2日

nGroupId = m_tree_list.GetItemData(hGroupItem); nPeopleId = m_tree_list.GetItemData(hSelItem);

}

4.1.4 修改教师信息

当教师的信息发生变化时,需要对教师的信息进行更新,在本系统中,只需要直接在各编辑框中输入更新后的信息,然后单击“更新”按钮即可完成更新。“更新”按钮的事件处理函数为OnButtonEdit,其主要操作时先通过函数SwitchData将界面设定的信息存入INTERFACECTRDATA类型的结构变量interfaceCtrlData,然后取得当前教师的ID,并依据该ID将界面数据更新到数据库中。

函数OnButtonEdit的部分代码如下:

// 更新数据

CDatabase db; db.Open(\); CString strSql;

strSql.Format(\? ?)

石河子大学--Delphi课程设计 2012年11月2日

4.1.5 删除教师信息

在选中某个教师时,单击“删除”按钮即可将当前教师删除,“删除”按钮的事件响应函数OnButtonRemove通过调用函数RemovePeople完成指定ID的教师的删除。函数RemovePeople首先使用CDatabase的Open方法打开数据源连接,然后根据作为参数传入的教师ID生成SQL删除指令,最后调用ExecuteSQL执行删除指令。

函数RemovePeople的代码如下:

bool CAddressListDlg::RemovePeople(int id) {

CDatabase database;

database.Open(_T(\)); CString strSql;

strSql.Format(\, id); database.ExecuteSQL(strSql); database.Close(); return true;

}

4.1.6 追加教师组

石河子大学--Delphi课程设计 2012年11月2日

数据库中初始默认的教师组只有“未分组”组,其他教师组需要教师添加。在追加新的联系组时,可以单击主窗口中的“增加组”按钮,此时将出现一个“组增加”对话框,在其中输入组名,单击“增加”按钮,如果输入的组名是尚不存在的组名,则可成功将其加入。

完成此功能,首先需要在项目中加入一个能输入组名的对话框,然后在教师输入组名并单击“增加”按钮时判断该组名是否已存在,如果不存在,则完成向数据库中添加新的组名的操作。其具体实现步骤如下:

① 在解决方案的资源视图中选择Dialog,然后单击鼠标右键,在弹出的菜单中选择“插入Dialog(E)”命令。

② 在新加入的对话框上单击鼠标右键,在弹出菜单中选择“属性”命令,将对话框的ID更改为“IDD_DIALOG_ADDGROUP”,Caption更改为“组增加”。

③ 随后将窗体上默认的两个按钮显示的信息分别更改为“增加”与“放弃”(将ID为IDOK的按钮的Caption设定为“增加”,ID为IDCANCEL的按钮的Caption设定为“放弃”),并增加一个静态标签及编辑框。

④ 为了能够在程序中响应加入的新对话框的事件,并进行添加新联系组的操作,需要在项目中加入一个与对话框对应的类。加入类最简单的办法是在新窗口中右键单击对话框,在弹出的菜单中选择“添加类(C)?”。

⑤ 随后将弹出“MFC类向导”对话框,在类名处输入“CAppendNewGroupDialog”,基类选择“CDialog”。.h文件和.cpp文件将会自动生成。输入类名之后点击完成按钮。

⑥ 在将新类加入到项目之中后,为对话框中的编辑框添加控件变量m_groupName.

⑦ 回到资源视图,在新加入的窗体上双击“增加”按钮,即可为“增加”按钮添加事件响应函数OnOK.

函数OnOK首先从界面处取得教师设定的组名,并检查组名是否为空,然后以输入的组名为查询条件查询当前系统中是否已存在该组名。如果组名不存在,则调用类CGroupInfo的AddNew方法添加一条新记录,并将新组名赋予CGroupInfo

石河子大学--Delphi课程设计 2012年11月2日

的数据成员m_groupName,最后通过Update方法提交新记录到数据库中。函数OnOK的部分代码如下:

函数OnOK的代码如下:

// 检查组名是否存在

CString strSql;

strSql.Format(\, m_groupName); groupInfo.Open(AFX_DB_USE_DEFAULT_TYPE, strSql); if(!groupInfo.IsEOF()) { }

// 添加组名 groupInfo.AddNew();

groupInfo.m_groupName = m_groupName; groupInfo.Update(); groupInfo.Close();

MessageBox(\组名已经存在!\, \警告\, MB_OK | MB_ICONWARNING); return;