《物流信息系统》课程设计报告 物流管理专业
图3-15 大客户运量统计界面
统计打印报表设计:提取相应的界面上和数据库中的数据,制成一张打印报表,供发放给其他操作员,例如快递员或业务经理等。
主要实现:调用相应的打印报表界面。在打印报表界面中实现,具体见报表实现部分。
主要代码:
procedure Ttj_customer.BitBtn2Click(Sender: TObject); begin try
if (dm.search4.Active=false) then exit; rpt_tj.QuickRep4.BringToFront ; rpt_tj.QuickRep4.preview; except
Application.MessageBox('错误。','提示!',mb_ok); end; end;
图3-16 收件单统计打印报表界面
28
《物流信息系统》课程设计报告 物流管理专业
3.6信息查询模块设计
信息查询模块包括快件接收查询、快件派送查询、快件中转查询、客户投诉查询和未派送快件查询等板块。其中快件接收查询、快件派送查询、快件中转查询和客户投诉查询是简单的单表查询;未派送快件查询是多表查询。
下面主要从快件接收查询、快件派送查询和未派送快件查询为例子来介绍本文的信息查询模块设计。
3.6.1快件接收查询
select js_id ‘接收单号',js_id ‘票据号',station ‘发站',send_mode ‘运输方式
',name ‘品名',weight ‘重量',rece_person ‘收货人' , fjfee ‘派送费',ps_date ‘派送日期'
from js_lr
where ps_date>=cast(:date1 as datetime) and ps_date<=cast(:date2 as datetime)
图3-17快件接收查询
图3-18快件接收查询打印报表
29
《物流信息系统》课程设计报告 物流管理专业
3.6.2快件派送查询
select fj_id ‘派送单号',js_id ‘票据号',station ‘发站',send_mode ‘运输方式
',name ‘品名',weight ‘重量',rece_person ‘收货人' , fjfee ‘派送费',ps_date ‘派送日期'
from fj_lr
where ps_date>=cast(:date1 as datetime) and ps_date<=cast(:date2 as datetime)
图3-19快件派送查询
3.6.3未派送快件查询
select js_id ‘票据号', send_station ‘发站', send_mode ‘运输方式',
name ‘品名',weight ‘ 重量',rece_person ‘ 收货人', js_date ‘收件日期' from js_lr
where js_date>=cast(:date1 as datetime) and js_date<=cast(:date2 as datetime) and js_id not in(select js_id from fj_lr where fj_lr.js_id=js_lr.js_id)
30
《物流信息系统》课程设计报告 物流管理专业
图3-20未派送快件查询
procedure Ttj_weipaisong.BitBtn1Click(Sender: TObject); begin
if self.DateTimePicker1.Date>self.DateTimePicker2.Date then begin
messagebox(self.Handle,'起始日期不能大于终止日期','提示信息',mb_iconinformation);exit; end; dm.search6.Close;
dm.search6.Parameters.ParamByName('date1').Value:=formatdatetime('yyyy-mm-dd',self.DateTimePicker1.Date );
dm.search6.Parameters.ParamByName('date2').Value:=formatdatetime('yyyy-mm-dd',self.DateTimePicker2.Date );
dm.search6.Open ; dm.search0.Close;
dm.search0.CommandText:='select sum(weight) ''总重量'' from js_lr where js_date>=cast(:date1 as datetime) and js_date<=cast(:date2 as datetime) and js_id not in(select js_id from fj_lr where fj_lr.js_id=js_lr.js_id) ' ; dm.search0.Parameters.ParamByName('date1').Value:=formatdatetime('yyyy-mm-dd',self.DateTimePicker1.Date ); dm.search0.Parameters.ParamByName('date2').Value:=formatdatetime('yyyy-mm-dd',self.DateTimePicker2.Date );
dm.search0.Open ; dbedit1.DataSource:=dm.dssearch0 ; dbedit1.DataField:='总重量'; end;
31
《物流信息系统》课程设计报告 物流管理专业
3.7资料维护与数据库备份模块设计
数据对用户来说是非常宝贵的资产。数据是存放在计算机上的,但是即使是最可靠的硬件和软件,也会出现系统等故障。所以应该在意外发生之前做好充分的准备工作,以便在意外发生之后有相应的措施能快速恢复数据库运行。
图3-21 数据库备份与恢复界面
3.8报表设计
报表是管理系统中最为重要的组成部分之一,它是一种主要的数据输出手段,可以把数据打印出来以供查询或备份保留。
设计步骤:
1.在工程中新建一个窗体。
2.在窗体中添加TQuickRep组件,即报表的主体。
3.在该窗体的implementation(实现部分)加语句uses dmunit;(数据模块窗体明)(这是关键一步,否则数据模块的信息无法在他的“Object Inspector”窗口中显示)。
4.设置TQuickRep组件的DataSet属性为“(数据库中相应表)”报表的设计 5.最后一步,也是将报表与调用它的窗体连接的关键,先在调用它的窗体的implementation(实现部分)加语句uses 报表窗体名;再在调用它的窗体的连接按钮(常常为打印按钮)中加代码:窗体名.TQuickRep组件名.Preview;
说明:一个窗体可以有多个加TQuickRep组件,即多张统计报表。
32