资源描述
学生管理系统设计说明
95
2020年5月29日
文档仅供参考
学生管理系统
详细设计说明书
乐山师范学院计算机科学系Attract工作室
/08/30编写说明
标题:详细设计说明书
类别:文档
密级:内部
编辑软件:Microsoft Word 中文版
版本历史:
版本
作者
日期
备注
V1.01
/09/08
详细设计说明书
V1.0.2
/08/30
详细设计说明书
编写目的:
本文档详细描述组成系统的各个软件组成部分,包括每个软件模块(或类)的属性、方法、事件,各软件模块的外部接口说明,测试要点等内容。
本文档由项目组维护,供项目组使用。
目录
第1章 引言 1
1.1. 项目说明 1
1.2. 项目定义 1
1.3. 编写目的 1
1.4. 参考资料 1
第2章 程序系统的结构 2
第3章 系统功能实现 3
3.1. 系统控制台模块 3
3.2. 新生管理子系统 6
3.3. 学生在校管理子模块 21
3.4. 社团组织管理子模块 41
3.5. 毕业生管理子模块 49
3.6. 教学评价打分 63
3.7. 学生成绩网上查询 65
第1章 引言
1.1. 项目说明
项目名称:乐山师范学院学生管理系统。
项目提出单位:乐山师范学院计算机科学系
项目开发者:乐山师范学院计算机科学系Attract工作室
项目使用部门:乐山师范学院各系科(学院)
项目建设单位:乐山师范学院计算机科学系
1.2. 项目定义
系科综合管理信息系统是为了适应现代化学校管理的需要,加快推进我校数字化校园建设、充分利用校园网,利用网络、多媒体等计算机应用技术和手段,提高办公效率、改进质量的高效管理信息系统。
学生管理系统是系科综合管理信息系统的重要组成部分。
1.3. 编写目的
本文档为”乐山师范学院系科综合管理信息系统(学生管理系统)详细设计说明书”,主要用于为实现系统的功能而进行的系统详细设计说明,详细系统各软件组成模块的实现流程、功能、接口、编译、测试要点等内容,便于对系统的编码进行指导和约束。本文档供项目组全体成员及项目组领导,单元测试人员阅读。
1.4. 参考资料
<学生管理系统_系统软件需求说明书>。
<学生管理系统_系统概要设计说明书>。
<学生管理系统_数据库设计说明书(数据库字典)>。
第2章 程序系统的结构
整个学生管理系统的结构可由以下图示来表明:
学生管理系统
系科综合信息管理系统
新生报到管理模块
在校生日常管理模块
组织社团管理模块
毕业生信息管理模块
学生成绩查询模块
其它管理功能
第3章 系统功能实现
从前面需求分析能够看出,系统功能庞杂,主要分为前台浏览器(B/S)信息发布和数据查询,后台(C/S)数据管理和处理,学生管理功能部分数据分为5类:新生相关;在校生相关;组织社团相关;毕业生相关;学生成绩综合查询相关。从使用和操作的功能上分,有三种用户:普通客户(浏览器浏览、查询);业务数据管理人员(学生工作辅导员、教务干事);系统管理员。为便于整个系统组织管理,把各个相对独立的数据或功能组织到整个大系统中来,我们把各个相对独立的功能完全独立设计,编译成独立的目标(功能)模块(single Executable),各功能模块最后被集成到一个称为虚拟桌面的控制台模块中。相应地将系统结构分为一个控制台程序和五个子系统,各子系统又分为若干各子模块。对应于每一个模块,几乎都有录入、查询、修改、删除、查看详细资料这几个功能。整个业务流程就是由这几种基本功能实现的。在这里每个模块都要用到的功能没必要在每个子模块里重复阐述,在每个子模块里只列出区别于其它子模块的功能实现。
3.1. 系统控制台模块
功能:
各子功能模块的组织和调用;
统一的登陆界面实现到数据库服务器的登陆;
显示系科主页Web的首页(主要是系科重要通知、消息等);学院通知页面;系科每周工作安排。
系统图标。
设计:
1. 登陆数据库:
输入数据库服务器名(ServerIP)、用户账号()UserID、密码(PassWord);以账号DEP_Computer0、密码DEP_Computer0登陆数据库服务器,检索系统权限表,根据权限设置相应功能模块:
①无此用户或禁止权限
Enable := False;
②浏览权限
Enable := True;
修改 UserID := Dep_Computer1;
修改 PassWord := 1;
③修改权限
Enable := True;
修改 UserID := Dep_Computer2;
修改 PassWord := ;
2. 采用Win31下程序组、程序项的原理组织各执行模块:
登陆服务器
新生录取数据、入学报道管理
学生信息(在校)管理
学生社团管理
毕业生信息管理
学生成绩综合查询与统计
各程序组、程序项的显示分别能够是分层/树状/大图标/小图标等方式;各程序项或菜单项的名称命名为相应功能模块的目标代码文件名。
3.可执行功能模块的调用执行:经过程序项或菜单项名称获取可执行目标代码文件名,应用API函数CreateProcess开始执行。
i:= StartMenu.IndexOf(MenuItem);
j:=StartMenu.Items[i].IndexOf(MenuItem);
case StartMenu.Items[i].Items[j].Tag of
1: allow:='禁止';
2: allow:='浏览';
3: allow:='修改';
end;
ExecutableFileName :=
Trim(StartMenu.Items[i].Items[j].Name)+'.exe'
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
CreateProcess(PChar(ExecutableFileName),
'',
nil,
nil,
false,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,
nil,
'.\',
StartupInfo,
ProcessInfo);
3.2. 新生管理子系统
总体设计:新生管理子系统包含新生录取信息的导入,新生预分学号,新生班级分配,新生寝室安排,新生报到管理,新生报到信息统计,新生欠费统计,新生分布信息,新生高考成绩分布等。
设计:下面给出设计方案与实现方法。
新生基本信息管理
招生数据导入
报到预处理
新生报到
新生信息查询与统计
预分学号
班级编排
寝室安排
预处理查询
现场报到处理
欠费查询统计
报到情况统计
新生比例分布
高考成绩统计
模块名称:招生数据导入
输入: 新生网上录取数据库;
处理: 将招生数据按相同格式导入系统数据库
输出: 提示信息
数据表:
T_tdd,T_jhk,T_tddw等25个招生数据表,在数据库中T_mzdm导入MZB中,T_zzmmdm导入ZZMMB中。
模块名称:预分学号
输入: 招生数据导入的表;
处理: 根据当前年份,为当前新生预分临时学号,并将新生信息导入在校生表,导入基本信息
输出: 提示信息
数据表:
JBXX2:学生基本信息表(简)
XS_BASE:学生基本信息(详)
XS_EXPEND:学生扩展信息
模块名称:班级编排
输入: 学生预分学号信息,班级信息;
处理: 将新生编入指定班级
输出: 班级名单
数据表:
JBXX2:学生基本信息
BJXX:班级信息
模块名称:寝室安排
输入: 学生预分学号信息,寝室信息;
处理: 将新生按性别分入指定寝室
输出: 寝室名单
数据表:
JBXX2:学生基本信息(简)
XS_BASE:学生基本信息(详)
QSZY:寝室资源表
模块名称:现场报到处理
输入: 学生预分学号、编班、寝室安排等信息;
处理: 根据新生到校情况,完成新生报到情况的记载以及欠费记载
输出: 表格
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_BASE:学生基本信息
XS_BDQK:学生报到情况
XS_QFXX:学生欠费信息
模块名称:新生欠费查询统计
输入: 新生欠费信息;
处理: 统计欠费新生信息
输出: 欠费报表
数据表:
JBXX2:学生基本信息
XS_QFXX:学生欠费信息
模块名称:新生报到情况统计
输入: 新生报到信息;
处理: 根据新生报到信息,进行各项分类统计
输出: 柱状图与表格信息
数据表:
JBXX2:学生基本信息
XS_BASE:学生基本信息
XS_EXPEND:学生扩展信息
BJXX:班级信息
SFB:省份表
MZB:民族表
ZZMMB:政治面貌表
模块名称:新生信息统计
输入: 新生网上录取数据库;
处理: 按各种分类标准,对新生的分布情况进行统计
输出: 饼状图与表格信息
数据表:
JBXX2:学生基本信息
XS_BASE:学生基本信息
MZB:民族表
ZZMMB:政治面貌表
SFB:省份表
模块名称:新生高考成绩统计
输入: 新生扩展信息,新生成绩信息;
处理: 按各项成绩分别统计各分数段人数比例
输出: 柱状图与表格信息
数据表:
JBXX2:学生基本信息
XS_EXPEND:学生扩展信息
T_TDD:考生投档单
功能:①完成对新录取学生数据的导入
②完成对新生数据的报到预处理(初始化)
③实现新生报到现场完成,并统计报到情况
④统计新生的各种分布比例和成绩分布
设计:
①总体设计:用Delphi的PageCtrl控件来实现各项菜单功能,整体界面如下:
②招生数据导入:能够经过选择来指定全国网上录取系统的导出数据所在路径,并根据使用手册检查25个.dbf文件是否存在,来决定是否允许导入;在导入时采用记录的查重处理,因此,只能借助记录集的循环来完成;其中,对政治面貌与民族表要单独处理。
界面如下:
主要实现文件检查的代码:
function CheckDBFile(var strRst:String):boolean;
var
i,j:integer;
blFound:boolean;
begin
arrstrFileName[0]:='t_tddw';arrstrFileName[1]:='t_jhk';
//……此处对表名赋值
CheckDBFile:=False;
blFound:=True;i:=0;
strRst:='数据表';
while (i<25)do
begin j:=DBFileListBox.Items.IndexOf(arrstrFileName[i]+'.dbf');
if j=-1 then//某个文件未找到,返回”假”
begin
blFound:=False;
strRst:=strRst+arrstrFileName[i]+'.dbf ';
end;
i:=i+1;
end;
strRst:=strRst+'不存在!';
if blFound then //全部数据文件检查正确
CheckDBFile:=True;
end;
③学号预处理:将导入的数据从信息库表到在校生表,并根据考生的考号及其它信息填入其基本信息(如省份、入年年份等);基本处理思想是:根据考生年份(报考号前两位)与当前系统数据库的绝对学期时间,筛选相应的考生信息,然后从这些信息中依次在学生基本信息表(JBXX2)中查询是否重复,来决定是否写入;如果写入,则根据报考号(第3、4位)的信息,写入考生所在省份代码。
代码相对简单,界面如下
④新生班级编排:将分配学号的新生编排到指定班级中。用两个DBGrid(可多选)分别将未分班学生和班级信息列出来,经过手工选中一个或多个学生,即可分配班级或从班级中取消分班。
界面如下:
实现DBGrid多选并在数据库中完成添加的代码:
……
with StuDBGrid.DataSource.DataSet do
begin
for i:=0 to intSelStuCnt-1 do
begin
GotoBookmark(pointer(StuDBGrid.SelectedRows.Items[i]));
strStuNo:=Fields[0].AsString;
strSql:='Update jbxx2 set BJID='+''''+strClasNo+'''';
strSql:=strSql+' Where XH='+''''+strStuNo+'''';
database.Execute(strSql);
end;
end;
……
寝室分配与班级编排可类似处理。
⑤新生现场报到:对新生的报到程序进行计算机管理,自动检查该新生是否已到校,是否已完成所有报到手续,以及新生的欠费情况(只记载欠费,不记载缴费);并根据各项手续的完成,来确认新生的报到状态,为下一步查询提供足够信息。
界面如下:
此处关键在于如何把数据表中”0”和”1”状态标志以CheckBox的状态输出,代码如下:
读出:
……
if ADORegInfo.Active then
begin
strState:=ADORegInfo.FieldByName('SFQD').AsString;
if strState='1' then //是否签到
Reg1Check.Checked:=true
else
Reg1Check.Checked:=false;
strState:=ADORegInfo.FieldByName('ZZGX').AsString;
if strState='1' then //组织关系
Reg2Check.Checked:=true
else
Reg2Check.Checked:=false;
strState:=ADORegInfo.FieldByName('HKQY').AsString;
if strState='1' then //户口迁移
Reg3Check.Checked:=true
else
Reg3Check.Checked:=false;
strState:=ADORegInfo.FieldByName('JCK').AsString;
if strState='1' then //就餐卡
Reg4Check.Checked:=true
else
Reg4Check.Checked:=false;
strState:=ADORegInfo.FieldByName('TJ').AsString;
if strState='1' then //体检
Reg5Check.Checked:=true
else
Reg5Check.Checked:=false;
end;
……
写回数据库:
……
ADORegInfo.Edit;
if Reg1Check.Checked then
ADORegInfo.FieldByName('SFQD').AsString:='1'
else
ADORegInfo.FieldByName('SFQD').AsString:='0';
if Reg2Check.Checked then
ADORegInfo.FieldByName('ZZGX').AsString:='1'
else
ADORegInfo.FieldByName('ZZGX').AsString:='0';
if Reg3Check.Checked then
ADORegInfo.FieldByName('HKQY').AsString:='1'
else
ADORegInfo.FieldByName('HKQY').AsString:='0';
if Reg4Check.Checked then
ADORegInfo.FieldByName('JCK').AsString:='1'
else
ADORegInfo.FieldByName('JCK').AsString:='0';
if Reg5Check.Checked then
ADORegInfo.FieldByName('TJ').AsString:='1'
else
ADORegInfo.FieldByName('TJ').AsString:='0';
ADORegInfo.Post;
……
欠费查询可相应处理。
⑥报到情况统计:能够按性别、专业、班级、省份等统计学生的报到情况,并以柱状图和表格显示;提供自由控制条件查询未报到学生信息。
界面如下:
统计功能实现代码如下:
……
CntBySexDBChar.Title.Text.Clear;//清除标题
CntBySexDBChar.Title.Text.Add('新生报到情况(按班级统计)');
CntBySexDBChar.Series[0].Clear;//清除图形
strSql:='';
CntStrGrid.RowCount:=ADOQFCntQuery.RecordCount+1;
for i:=0 to 4 do //设置StringGrid的标题
begin
CntStrGrid.Cols[i].Clear;
CntStrGrid.Cols[i].Add(titleName[i]);
end;
i:=0;
RegSexTLbl.Lines.Clear; //清空统计显示
while not ADOQFCntQuery.Eof do
begin
intCntRegd[i]:=ADOQFCntQuery.FieldByName('ClassRegdCnt').AsInteger;
CntBySexDBChar.Series[0].Add(intCntTot[i],inttostr(i)+'应到',clBlue);
CntBySexDBChar.Series[0].Add(intCntRegd[i],'到',clRed);
strSql:=inttostr(i)+'['+trim(strClassName[i])+']报到比例:';
strSql:=strSql+floattostr(trunc(intCntRegd[i]/intCnttot[i]*10000)/100)+'%'+#13;
RegSexTLbl.Lines.Add(strSql);
CntStrGrid.Rows[i+1].Add(inttostr(i+1));
CntStrGrid.Rows[i+1].Add(strClassName[i]);
CntStrGrid.Rows[i+1].Add(inttostr(intCntTot[i]));
CntStrGrid.Rows[i+1].Add(inttostr(intCntRegd[i]));
CntStrGrid.Rows[i+1].Add(floattostr(trunc(intCntRegd[i]/intCnttot[i]*10000)/100)+'%');
i:=i+1;
ADOQFCntQuery.Next; //下一个班
end;
……
⑦新生分布情况统计:从学生的扩展信息与高考资料中提取信息,统计新生的各种分布情况,以饼状图和表格信息显示出来。
界面如下:
相应地,高考成绩信息也能够按科目绘制出柱状图来反映分布情况,对新生的整体情况有一个大概了解,以便有针对性地开展工作。
界面如下:
成绩统计的代码如下:
strSql:='Select Max('+FieldName+') as MaxScore,Min('+FieldName+') as MinScore,AVG('+FieldName+') as AvgScore';
strSql:=strSql+' From t_tdd,xs_base,xs_expend Where t_tdd.ksh=xs_expend.bkh and xs_expend.xh=xs_base.xh';
strSql:=strSql+' and Nj='+MidStr(CurrentXQSJ,1,4);
ADOQFCntQuery.SQL.Clear;
ADOQFCntQuery.SQL.Add(strSql);
ADOQFCntQuery.Open;
if ADOQFCntQuery.Eof then
begin
ShowMessage('对不起,未找到相关学生的成绩!');
abort;
end;
for i:=0 to 2 do
begin
CntScoreStrGrid.Cols[i].Clear;
CntScoreStrGrid.Cols[i].Add(titleName[i]);
end;
CntScoreDBChart.Title.Text.Clear;
CntScoreDBChart.Title.Text.Add('新生高考成绩统计['+itemName+']');
CntScoreDBChart.Series[0].Clear;
maxScore:=ADOQFCntQuery.FieldByName('MaxScore').AsInteger;
minScore:=ADOQFCntQuery.FieldByName('MinScore').AsInteger;
avgScore:=ADOQFCntQuery.FieldByName('AvgScore').AsInteger;
itemsCount:=trunc((maxScore-minScore)/5)+1;
intCrntScore:=trunc(minScore/5)*5;
i:=0;
isWrite:=true;
CntScoreStrGrid.RowCount:=itemsCount+4;
while (i<itemsCount) and (i<30) do
begin
strSql:='Select count(xs_base.xh) as CrntCnt from xs_base,xs_expend,t_tdd';
strSql:=strSql+' Where xs_base.xh=xs_expend.xh and xs_expend.bkh=t_tdd.ksh';
strSql:=strSql+' and Nj='+MidStr(CurrentXQSJ,1,4);
strSql:=strSql+' and '+FieldName+'>='+inttostr(intCrntScore);
strSql:=strSql+' and '+FieldName+'<'+inttostr(intCrntScore+5);
intCrntScore:=intCrntScore+5;
ADOQFCntQuery.SQL.Clear;
ADOQFCntQuery.SQL.Add(strSql);
ADOQFCntQuery.Open;
intCrntCnt[i]:=ADOQFCntQuery.FieldByName('CrntCnt').AsInteger;
strSql:='';
if (isWrite) or (itemsCount<12) then
strSql:=inttostr(intCrntScore-5)+'-';
CntScoreDBChart.Series[0].Add(intCrntCnt[i],strSql,intColor[i mod 11]);
CntScoreStrGrid.Rows[i+1].Add(inttostr(intCrntScore-5)+'-'+inttostr(intCrntScore));
CntScoreStrGrid.Rows[i+1].Add(inttostr(intCrntCnt[i]));
CntScoreStrGrid.Rows[i+1].Add(floattostr(trunc(intCrntCnt[i]/59*10000)/100)+'%');
isWrite:=not isWrite;
i:=i+1;
end;
CntScoreStrGrid.Rows[i+1].Add('最高分');
CntScoreStrGrid.Rows[i+1].Add(inttostr(maxScore));
CntScoreStrGrid.Rows[i+2].Add('最低分');
CntScoreStrGrid.Rows[i+2].Add(inttostr(minScore));
CntScoreStrGrid.Rows[i+3].Add('平均分');
CntScoreStrGrid.Rows[i+3].Add(inttostr(avgScore));
3.3. 学生在校管理子模块
在校生信息管理
基础编码
基本数据
日常管理
奖惩信息
勤工助学信息
基它信息
班级基本信息
新生学号替换
日常考勤管理
寝室清洁卫生
在校生奖励信息
在校生处罚信息
在校生异动信息
困难学生信息
困难补助管理
勤工俭学管理
学期注册管理
年鉴定管理
学生基本信息
在校生欠费管理
在校生日志信息
模块名称:基础编码
输入:在校生基础编码信息
处理: 维护管理在校生管理基础编码信息
输出: 在校生基础编码
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_YDLB:异动类型信息
XS_BZLB:补助类型信息
XS_ZXLB:助学金类型信息
XS_JXJLB:奖学金类型信息
XS_DKLB:贷款类型信息
XS_QSZY:寝室资源信息
SFB:省份信息
模块名称:学生基本信息
输入:在校生基本信息
处理: 根据学生简况信息管理系科学生基本信息
输出: 在校生基本信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_BASE:在校生基本信息
XS_EXPEND:在校生扩充信息
模块名称:班级基本信息
输入:班级基本信息
处理: 根据班级简况信息管理班级详细数据
输出: 班级详细数据
数据表:
BJXX:班级信息
XS_BJXX:班级基本信息
模块名称:新生学号替换
输入:新生正式学号分配信息
处理: 用新生正式学号替换相关数据表中新生临时学号
输出: 在校生正式学号分配信息
数据表:
JBXX2:学生基本信息
其它相关使用新生临时学号数据
用于新生临时学号的导出和正式学号的导入的数据表(本地表)
模块名称:在校生日常考勤管理
输入:在校生日常考勤信息
处理: 维护和管理在校生日常考勤信息
输出: 在校生考勤信息及相关统计报表
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_KQXX:学生考勤信息
模块名称:在校生寝室清洁卫生管理
输入:在校生寝室清洁卫生信息
处理: 维护管理在校生寝室清洁卫生信息
输出: 在校生寝室清洁卫生数据及相关统计报表
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_QJWS:异动类型信息
模块名称:在校生奖励信息管理
输入:在校生奖励信息
处理: 维护管理在校生奖励信息
输出: 在校生奖励信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_HJXX:奖励信息
模块名称:在校生处罚信息管理
输入:在校生处罚信息
处理: 维护管理在校生处罚信息
输出: 在校生处罚信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_CFXX:处罚信息
模块名称:在校生异动信息管理
输入:在校生异动信息
处理: 维护管理在校生异动信息
输出: 在校生异动信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_YDXX:异动信息
模块名称:困难学生基本信息
输入:困难学生基本信息
处理: 维护管理困难学生收入来源及生活情况
输出: 困难学生基本信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_KNXX:困难学生基本信息
模块名称:困难补助信息管理
输入:在校生接受困难补助信息
处理: 维护管理在校生困难补助情况
输出: 在校生困难补助信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_KNBZ:困难补助信息
模块名称:勤工俭学信息管理
输入:在校生勤工俭学信息
处理: 维护管理在校生勤工俭学情况
输出: 在校生勤工俭学信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_QGZX:勤工俭学信息
模块名称:在校生学期注册信息管理
输入:在校生学期注册信息
处理: 管理在校生学期报到注册信息,并验证学生基本信息以学生欠费信息
输出: 在校生学期注册信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_XQZC:困难补助信息
XS_BASE:学生基本信息信息
XS_QFXX:学生欠费信息
模块名称:在校生年鉴定信息管理
输入:在校生年鉴定信息
处理: 管理在校生年鉴定信息
输出: 在校生年鉴定信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_XNJD:学生年鉴定信息
模块名称:在校生欠费信息管理
输入:在校生欠费信息
处理: 管理在校生欠费信息
输出: 在校生欠费信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_QFXX:学生欠费信息
模块名称:在校生日志信息管理
输入:在校生日志信息
处理: 管理在校生日志信息
输出: 在校生日志信息
数据表:
JBXX2:学生基本信息
BJXX:班级信息
XS_RZXX:学生日志信息
功能:
在校生信息管理基础编码的维护和管理;
在校生详细信息维护和管理;
班级详细信息维护和管理;
新生入校分配正式学号后对数据表中相关使用临时学号的数据进行替换;
在校生日常缺勤信息的维护以及制作相关统计报表;
在校生寝室清洁卫生的维护和相关报表制作;
在校生奖惩信息的维护和管理;
在校生异动信息(转系、留级、退学、休学、停学等)维护和管理;
困难学生基本信息管理以及困难补助和勤工俭学信息管理;
在校生学期注册信息管理;
在校生年鉴定信息管理;
在校生欠费信息管理;
在校生其它日志信息管理
设计:
本模块采用多文档窗体的形式,并提供子窗体排列的两种不同形式(层叠和平铺)
⒈基础编码管理
采用分页结构,完成在校生管理中所需要的基础字典进行编码;
⒉学生基本信息管理
采用分页结构,在学生简况信息的基础上完成其它详细信息的编辑和查询功能(需检验学生基本信息的唯一性)
case pagecontrol1.ActivePageIndex of
0: jbxxquery.Locate('xh',dbedit1.Text,[loPartialKey]);// 定位指定学生记录
1: begin
xsjbxxtable.Filtered:=false;
xsjbxxtable.Filter:='xh='+''''+dbedit4.Text+'''';
xsjbxxtable.Filtered:=true;
if xsjbxxtable.recordcount=0 then dbnavigator1.VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast,nbInsert,nbDelete,nbEdit,nbPost,nbCancel]//如不存在该学生基本信息则允许新建
else dbnavigator1.VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast,nbDelete,nbEdit,nbPost,nbCancel];//如存在学生基本信息则不允许新建
if zxsglfrm.BrowseTB.Down then dbnavigator1.VisibleButtons:=[nbFirst,nbPrior,nbNext,nbLast];
end;
⒊班级基本信息管理
在班级简况信息的基础上完成班级其它详细信息的维护和管理
⒋新生学号替换
在新生进校后,正式学号可能会延时分配,因此,在新生的管理为方便进行管理设置了临时学号,在正式学号分配完成后,应将数据表中新生数据临时学号替换为正式学号
先选取要进行学号替换的班级,生成新生学号输入表(本地数据库LOCALDB.MDB)并以班级编号为名建表;
adocommand1.CommandText:='create table '+bjid_combo.Items.Strings[bjmc_combo.itemindex]+' (oldxh char(11),xsxm char(8),xb char(2),newxh char(11)
展开阅读全文