文电管理系统的设计与开发方案Word下载.docx
《文电管理系统的设计与开发方案Word下载.docx》由会员分享,可在线阅读,更多相关《文电管理系统的设计与开发方案Word下载.docx(55页珍藏版)》请在冰豆网上搜索。
图5-7班级字段参数设置
二、创建索引
其索引图如图“图5-3二维表索引拓扑图”所示。
注意的是班级表和学生表的关系是级联参照完整并级联更新删除关系如图5-8。
图5-8学生表和班级表的关系图
3.2.3主要查询编写简要SQL代码
1.形成上月水电基本情况表(xingcheng):
SELECT上月.宿舍号,上月.上月电表,宿舍水电.本月电表,上月.上月水表,宿舍水电.本月水表,宿舍水电.年月,宿舍水电.交否
FROM上月INNERJOIN宿舍水电ON上月.宿舍号=宿舍水电.宿舍号;
2.消费情况表
SELECTxingcheng.宿舍号,xingcheng.上月电表,xingcheng.本月电表,xingcheng!
本月电表-xingcheng!
上月电表AS本月用电量,宿舍补助.宿舍电补助,宿舍补助.电单价,IIf((([本月用电量]-[宿舍电补助])*[电单价])>
0,(([本月用电量]-[宿舍电补助])*[电单价]),0)AS实际收电费,xingcheng.上月水表,xingcheng.本月水表,[本月水表]-[上月水表]AS本月用水量,宿舍补助.宿舍水补助,宿舍补助.水单价,IIf((([本月用水量]-[宿舍水补助])*[水单价])>
0,(([本月用水量]-[宿舍水补助])*[水单价]),0)AS实际收水费,xingcheng.年月,CCur([实际收电费]/宿舍补助!
人数)AS人均电费,CCur([实际收水费]/宿舍补助!
人数)AS人均水费,xingcheng.交否
FROMxingchengINNERJOIN宿舍补助ONxingcheng.宿舍号=宿舍补助.宿舍号;
3.宿舍人数查询
SELECT学生表.宿舍号,Count(学生表.宿舍号)AS人数
FROM学生表
GROUPBY学生表.宿舍号,学生表.宿舍号
HAVING((Count(学生表.宿舍号)>
0);
4.消费情况表:
5.月份水电统计表:
SELECT学生表.学号,学生表.,学生表.宿舍号,消费情况.本月电表,消费情况.上月电表,消费情况.本月用电量,消费情况.电单价,[本月用电量]*[电单价]AS[电小计(元)],消费情况.本月水表,消费情况.上月水表,消费情况.本月用水量,消费情况.水单价,[本月用水量]*[水单价]AS[水小计(元)],[电小计(元)]+[水小计(元)]AS[总计(元)],消费情况!
宿舍电补助*[电单价]+消费情况!
宿舍水补助*[水单价]AS扣除,IIf((消费情况!
人均电费+消费情况!
人均水费)>
0,(消费情况!
人均水费),0)AS[应收水电费(元/人)],IIf((([电小计(元)]+[水小计(元)])-[扣除])>
0,(([电小计(元)]+[水小计(元)])-[扣除]),0)AS[应收水电费(元/宿舍)],学生表.班级,消费情况.年月,宿舍人数查询.人数AS宿舍人数,学生表.性别,消费情况.交否,消费情况.宿舍电补助,消费情况.宿舍水补助,消费情况.实际收电费,消费情况.实际收水费
FROM宿舍人数查询INNERJOIN(学生表INNERJOIN消费情况ON学生表.宿舍号=消费情况.宿舍号)ON宿舍人数查询.宿舍号=消费情况.宿舍号;
6.生成lsk查询表:
(该表是为了生成前面和后面都要用到的lsk表,只运行一次即可,但是运行前先制作一个“上月”查询表,字段为“宿舍号、上月电表、上月水表、年月”,然后添入实数。
运行了“生成lsk查询表”后把“上月”表删除)
SELECT月份水电统计表.学号,月份水电统计表.,月份水电统计表.宿舍号,月份水电统计表.本月电表,月份水电统计表.上月电表,月份水电统计表.本月用电量,月份水电统计表.电单价,月份水电统计表.[电小计(元)],月份水电统计表.本月水表,月份水电统计表.上月水表,月份水电统计表.本月用水量,月份水电统计表.水单价,月份水电统计表.[水小计(元)],月份水电统计表.[总计(元)],月份水电统计表.扣除,月份水电统计表.[应收水电费(元/人)],月份水电统计表.[应收水电费(元/宿舍)],月份水电统计表.班级,月份水电统计表.年月,月份水电统计表.宿舍人数,月份水电统计表.交否,月份水电统计表.宿舍电补助,月份水电统计表.宿舍水补助,月份水电统计表.实际收电费,月份水电统计表.实际收水费INTOlsk
FROM月份水电统计表;
7.提取上月度数及吨数生成上月表查询(上月):
SELECTlsk.宿舍号AS宿舍号,Max(lsk.本月电表)AS上月电表,Max(lsk.本月水表)AS上月水表,Max(lsk.年月)AS年月之最大值
FROMlsk
GROUPBYlsk.宿舍号;
8.追加lsk:
INSERTINTOlsk(学号,,宿舍号,本月电表,上月电表,本月用电量,电单价,[电小计(元)],本月水表,上月水表,本月用水量,水单价,[水小计(元)],[总计(元)],扣除,[应收水电费(元/人)],[应收水电费(元/宿舍)],班级,年月,宿舍人数,交否,宿舍电补助,宿舍水补助,实际收电费,实际收水费)
SELECT月份水电统计表.学号,月份水电统计表.,月份水电统计表.宿舍号,月份水电统计表.本月电表,月份水电统计表.上月电表,月份水电统计表.本月用电量,月份水电统计表.电单价,月份水电统计表.[电小计(元)],月份水电统计表.本月水表,月份水电统计表.上月水表,月份水电统计表.本月用水量,月份水电统计表.水单价,月份水电统计表.[水小计(元)],月份水电统计表.[总计(元)],月份水电统计表.扣除,月份水电统计表.[应收水电费(元/人)],月份水电统计表.[应收水电费(元/宿舍)],月份水电统计表.班级,月份水电统计表.年月,月份水电统计表.宿舍人数,月份水电统计表.交否,月份水电统计表.宿舍电补助,月份水电统计表.宿舍水补助,月份水电统计表.实际收电费,月份水电统计表.实际收水费
3.2.4录入窗体的创建
窗体是用户处理数据的中介所,它能给人于视觉美感、统一规划和处理直观并且无须专业化人员也可以操作的界面。
例如图5-9切换面板所示。
图5-9切换面板
录入窗体包括“本月宿舍水电录入”、“学生表录入与修改”、“班级修改与录入”、“新添加宿舍记录”、“水电单价与补助”和“宿舍水电录入与预览”六大块。
一、本月宿舍水电录入创建
该窗体引用的是“宿舍水电”表为数据源创建的。
界面如图“图5-10宿舍水电录入”所示。
图5-10宿舍水电录入
1.窗体创建
该窗体是用向导“自动创建窗体:
表格式”创建的如图5-11所示,然后修改窗体添加标题问题、说明和查找与删除按钮,如图5-12所示。
图5-11表格式向导创建水电录入窗体
图5-12修改录入窗体
2.窗体代码实现(以下代码也可以用向导完成)
OptionCompareDatabase
PrivateSubCommand12_Click()
OnErrorGoToErr_Command12_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItemacFormBar,acEditMenu,10,,acMenuVer70
Exit_Command12_Click:
ExitSub
Err_Command12_Click:
MsgBoxErr.Description
ResumeExit_Command12_Click
EndSub
PrivateSubCommand13_Click()
OnErrorGoToErr_Command13_Click
Exit_Command13_Click:
Err_Command13_Click:
ResumeExit_Command13_Click
PrivateSubCommand15_Click()
OnErrorGoToErr_Command15_Click
DoCmd.DoMenuItemacFormBar,acEditMenu,8,,acMenuVer70
DoCmd.DoMenuItemacFormBar,acEditMenu,6,,acMenuVer70
Exit_Command15_Click:
Err_Command15_Click:
ResumeExit_Command15_Click
二、学生表录入与修改
该窗体创建完成后如图5-13所示。
该窗体须注意的两个文本框是“班级”和“性别”两个,其属性中的【数据】>
【行来源】是一个SQL语言分别是:
“SELECT班级.编号,班级.班级FROM班级;
”、“SELECT性别.编号,性别.性别FROM性别;
”如图5-14班级文本框的属性。
该窗体是用“学生表”为数据源创建的,右边添加了五个按钮,分别是“查找记录”、“班级添加与修改”、“删除学生记录”、“添加新学生记录”和“完成退出”。
其中“班级添加与修改”按钮是用来打开“班级添加与修改”窗体。
图5-13学生表录入与修改窗体
图5-14班级文本框的属性
2.代码实现(以下代码也可以用向导完成)
DoCmd.GoToRecord,,acNewRec
DimstDocNameAsString
DimstLinkCriteriaAsString
stDocName=ChrW(28155)&
ChrW(21152)&
ChrW(26032)&
ChrW(29677)&
ChrW(32423)
DoCmd.OpenFormstDocName,,,stLinkCriteria
PrivateSubCommand18_Click()
OnErrorGoToErr_Command18_Click
Exit_Command18_Click:
Err_Command18_Click:
ResumeExit_Command18_Click
PrivateSubCommand21_Click()
OnErrorGoToErr_Command21_Click
DoCmd.Close
Exit_Command21_Click:
Err_Command21_Click:
ResumeExit_Command21_Click
PrivateSubCommand22_Click()
OnErrorGoToErr_Command22_Click
Exit_Command22_Click:
Err_Command22_Click:
ResumeExit_Command22_Click
三、班级修改与录入
该窗体的数据源是“班级”表,可以随时修改“班级”表的所有数据,如果删除某条班级记录,则也会级联删除该班级关联的学生表数据,如图5-15。
图5-15班级添加与删除窗体
四、新添加宿舍记录窗体
该数据是以“lsk”表为数据源。
如果这数据库第一次使用或者有些新添加的宿舍就得用这个窗体添加初始数据,数据是直接添加到“lsk”数据表中的。
其界面如图5-16所示。
图5-16初始数据录入窗体
五、水电单价与补助
该窗体是为了更改“单价与补助”表的容,可以随时根据当时水电单价的调整而更改水电单价与学院对学生每月的补助。
如图5-17所示
图5-17水电单价与补助的修改界面
六、宿舍水电录入与修改
该窗体创建得就稍微有些复杂,其中使用了子窗体“学生表”窗体(以“学生表”为数据源)、“单价与补助”数据表和“xingcheng”查询表,如图5-18所示。
图5-18宿舍水电录入与修改
在合计栏中的金额(元)中的文本框输入“=Round([实际收电费]+[实际收水费]*100)/100”;
人均金额(元)的文本框输入“=Round(([人均电费]+[人均水费])*100)/100”。
“所有数据追加入库”按钮的作用是运行“追加lsk”查询表,把当月所有个人水电数据全部追加入“lsk”表中,“追加lsk”查询表的SQL语句如图5-19所示。
图5-19追加lsk查询表的SQL语句
图5-20追加数据提示
由于使用该系统假如一个月使用了两次这个追加语句会造成“lsk”数据的重复,所以给该按钮添加了一些提示窗口,避免不熟悉的用户的错误操作,如图5-20所示。
3.2.5历史报表输出的创建
这里虽然只是输出打印,不是系统的主体部分,但是它却是每个单位上报数据的主打部分。
它包括:
打印宿舍通知单、打印月份明细表、班级未交费统计和水电费汇总统计表四大报表。
一、打印菜单的创建
当打开报表时该菜单会自动弹出。
步骤:
1选择菜单栏的【工具】>
【自定义】菜单,如图5-21。
图5-21自定义菜单栏
2然后单击“新建”按钮,在弹出的新建工具栏处输入“打印”,再单击“确定”。
3用鼠标把需要用到的工具拖入
二、打印宿舍通知单的创建
这个报表通知单是发到各个宿舍催交水电费的明细表,里面包含了当月各个宿舍水电数据和该宿舍所有人员当月及以往未交水电费的所有及个人金额。
如图5-22所示
图5-22交费通知单
1创建“lsk年月全部查询”查询表,可以输入年月参数指定某年月的所有数据。
其SQL代码如下:
SELECTlsk.学号,lsk.,lsk.宿舍号,lsk.本月电表,lsk.上月电表,lsk.本月用电量,lsk.电单价,lsk.[电小计(元)],lsk.本月水表,lsk.上月水表,lsk.本月用水量,lsk.水单价,lsk.[水小计(元)],lsk.[总计(元)],lsk.扣除,lsk.[应收水电费(元/人)],lsk.[应收水电费(元/宿舍)],lsk.班级,lsk.年月,lsk.宿舍人数,lsk.交否,lsk.宿舍电补助,lsk.宿舍水补助,lsk.实际收电费,lsk.实际收水费
WHERE((lsk.年月)=[请输入年月:
]);
2使用“lsk年月全部查询”查询表为数据源在向导中创建,向导创建过程中选择“宿舍号”字段为分组级别。
如图5-23所示。
图5-23宿舍号为分组级别
3把向导创建好的报表界面进行整理(都在主体调整),如图5-24所示。
图5-24水电交费通知单初步调整
4创建“lsk未交费查询”,把所有未交费的记录全部查出来,学号为单位降序。
SQL代码如下:
WHERE((lsk.交否)=False)
ORDERBYlsk.学号DESC;
5按工具箱上的“子窗体/子报表”按钮,使用“lsk未缴费查询”查询表创建子报表,选择“学号”、“”、“年月”、“班级”、“宿舍”、“应收水电费(元/人)”和“交否”字段。
6在向导中选择自定义主报表和子报表的关联为“宿舍号”,如图图5-25所示。
图5-25选择主窗体和子窗体的关联为“宿舍号”
图5-26主体强制分页
7属性中的“格式”设置主报表的主体为强制分页的“节前和节后”,如图5-26所示。
8属性中的“其他”设置报表的“工具栏”选择“打印”选项。
三、打印月份明细表
该报表需要输入年月份参数。
包含了所输入年月参数的所有班级的交费明细,以班级为单位分组的形式显示。
①先制作一个以“lsk”数据表为源并且需要输入年月参数的查询表“报表按年月查”。
其查询表的SQL容如下:
SELECTlsk.年月,lsk.班级,lsk.学号,lsk.,lsk.宿舍号,lsk.本月电表,lsk.上月电表,lsk.本月用电量,lsk.电单价,lsk.[电小计(元)],lsk.本月水表,lsk.上月水表,lsk.本月用水量,lsk.水单价,lsk.[水小计(元)],lsk.[总计(元)],lsk.扣除,lsk.[应收水电费(元/人)],lsk.交否
])
ORDERBYlsk.班级,lsk.学号;
’以班级字段为升序
②使用向导以“报表按年月查报表”为数据源制作报表。
选择该查询表的“学号”、“”、“宿舍号”、“本月电表”、“上月电表”、“用电量”、“电单价”、“本月水表”、“上月水表”、“用水量”、“水单价”、“实际水电费(元/人)”和“交否”字段。
③在接下来的向导中选择“班级”字段为分组,如下图5-27所示。
图5-27选择分组
④再下一向导中选择“学号”字段为升序。
⑤下一向导中选择布局如下图5-28所示。
图5-28报表布局设置
⑥点击完成并保存为“报表按年月查”。
打开该报表的设计视图,调整其布局如下图5-29所示。
图5-29月份明细表的设计视图
⑦在设计视图中的班级右边和报表页脚各添加一个文本框,如图5-3-3-3所示,分别在文本框中输入“=Round(Sum([应收水电费(元/人)])*100)/100”
round是四舍五入函数,sum是求和函数。
1属性中的“其他”设置报表的“工具栏”选择“打印”选项。
四、班级未交费记录报表
该报表是显示并统计了“lsk”所有未交费的人员,以班级为单位。
如图5-30所示:
图5-30班级未交费记录表
①创建未交费查询表,命名为“lsk未交费查询”。
其查询表的SQL语句如下:
SELECTlsk.学号,lsk.,lsk.宿舍号,lsk.本