《数据库技术及应用》-陈刚-电子教案 第13章 发票管理项目开发

上传人:E**** 文档编号:89446623 上传时间:2019-05-25 格式:PPT 页数:30 大小:446KB
返回 下载 相关 举报
《数据库技术及应用》-陈刚-电子教案 第13章  发票管理项目开发_第1页
第1页 / 共30页
《数据库技术及应用》-陈刚-电子教案 第13章  发票管理项目开发_第2页
第2页 / 共30页
《数据库技术及应用》-陈刚-电子教案 第13章  发票管理项目开发_第3页
第3页 / 共30页
《数据库技术及应用》-陈刚-电子教案 第13章  发票管理项目开发_第4页
第4页 / 共30页
《数据库技术及应用》-陈刚-电子教案 第13章  发票管理项目开发_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《数据库技术及应用》-陈刚-电子教案 第13章 发票管理项目开发》由会员分享,可在线阅读,更多相关《《数据库技术及应用》-陈刚-电子教案 第13章 发票管理项目开发(30页珍藏版)》请在金锄头文库上搜索。

1、数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,1,第13章 发票管理项目开发,本章重点内容 项目开发的整体过程 掌握PowerBuilder开发项目的各种界面组成 掌握窗口和数据窗口的数据交互技术 熟悉数据窗口数据的常用技术,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,2,13.1 项目整体介绍,1.发票管理系统整体功能: (1)发票管理: 1)录入:自动生成发票号码、日期、发票号码区间检测。 2)打印:将发票内容保存后打印,打印后,此发票记录将不能删除、修改。 3)浏览:可遍历已经开出来的发票。 4)作废:当发票出现问题后,由于发票是套打,并且发票时是税务部门监

2、制,具有唯一性,所以一旦作废,记录不能删除,应保持在数据库内,加上作废标记。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,3,13.1 项目整体介绍,2统计查询模块 统计查询模块提供8种统计方式: (1)按日期统计:要求输入时间范围:起始日期和结束日期,查询出在这个时间段 内开具的发票及其项目、数额统计,查询结果可以打印或转换成Excel表格。 (2)按发票号查询:输入要查询的发票号,查询出相应发票的详细信息,此项内容只能查看不能打印,以免发票造假。 (3)按收货单位统计:要求选择某一收货单位,统计某一收货单位开具的发票的明细;也可以设置时间段,即统计在某一时间段内为某一收货单

3、位开具的发票明细。统计结果可浏览、打印或转换成Excel表格。 (4)按发货地点统计:要求选择某一发货地点,统计某一发货地点开具的发票的明细;也可以设置时间段,即统计在某一时间段内为某一发货地点开具的发票明细。统计结果可浏览、打印或转换成Excel表格。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,4,13.1 项目整体介绍,(5)按收费项目查询:要求选择某一收费项目,统计对应某一收费项目开具的发票的明细;也可以设置时间段,即统计在某一时间段内为某一收费项目开具的发票明细。统计结果可浏览、打印或转换成Excel表格。 (6)作废发票明细查询:查询被作废的发票的明细。可以设置发票

4、号码范围,即起始发票号码、结束发票号码;也可以同时设置时间范围,即起始日期和结束日期。查询结果可打印。 (7)按月统计开具发票:输入日期,统计该月开具的发票数量和发票号码,查询结果可打印。 (8)按月统计作废发票:输入日期,统计该月作废的发票数量和发票号码,查询结果可打印。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,5,13.1 项目整体介绍,4系统初始化模块 该模块包括5个子模块: (1)收费项目初始化:对于收费项目进行增加、删除、修改的操作。每一个收费项目包括项目编号、收费项目名称和单价。 (2)用户管理:该模块只有管理员才可以操作,因此进入该模块之前要求用户输入管理员口

5、令。用户管理模块实现开票人帐号和密码的增加、删除、修改。 (3)发票号码初始化:该模块只有管理员才可以操作,因此进入该模块之前要求用户输入管理员口令。该模块设置发票起始号码和结束号码,目的是为了开具发票时可以自动设置发票号码。 (4)打印机设置:调用打印机设置界面,使用户可以完成打印机的设置工作。 (5)转换Excel表格:查询某一时间段内的发票明细转换成Excel表格。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,6,发票管理系统模块关系图,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,7,13.2 数据表的设计,表13-1 发票抬头等数据表(表名fp),数据库

6、原理及应用-“十一五”国家级规划教材数据库原理及开发,8,13.2 数据表的设计,表13-2 发票收费项目数据表(表名fp_detail),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,9,13.2 数据表的设计,表13-3 发票号码数据表(表名fphm),表13-4 开票人数据表(表名kpr),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,10,13.2 数据表的设计,表13-5 收费项目数据表(表名sfxm),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,11,13.2 数据表的设计,发票管理系统数据表的关系图,数据库原理及应用-“十一五”国家级规

7、划教材数据库原理及开发,12,13.3 发票管理模块,13.3.1 发票管理模块界面构成 发票管理模块式依托一个窗口对象来完成的,在这个对象上使用了多种窗口控件和技术,具有一定的普遍应用性,学好这个模块的设计方法,可以将其应用到很多地方。整体截面图如图13-2所示。该窗口所用到的各种控件说明如表13-6。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,13,13.3 发票管理模块,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,14,13.3 发票管理模块,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,15,13.3 发票管理模块,图13-2 发票管理窗

8、口主界面图,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,16,13.3 发票管理模块,13.3.2 发票管理模块界面典型设计技巧 1收货单位的输入框设计 (1)设计要求:能够自动储存输入的收货单位名称,第一次输入后,即可从下来列表框中选择。 (2)设计方法:w_fp_in窗口对象中包含的dw_1数据窗口控件,dw_1控件挂接的数据窗口对象是d_fp_title,在该数据窗口对象画笔中,针对“收货单位”列,设置其属性对话框为Edit标签页,设置该Style Type属性为DropDownDW,再设置DataWindow属性为d_shdw,Display Column属性为shdw

9、,Data Column属性为shdw。参见图13-3。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,17,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,18,13.3 发票管理模块,图13-3种涉及到的数据窗口对象d_shdw在设计时注意:在数据窗口对象画笔中,点击工具栏中的 按钮,进入到图13-4画面,选择Design菜单中的Distinct菜单项,发货单位以及dw_2所挂接的 d_fp_detail数据窗口对象中的 xm和shl列的设计方法同收货 单位一致。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,19,13.3 发票管理模块,2典型程序

10、段代码设计 “追加”按钮程序代码设计 “追加”按钮要完成的功能比较多,需要对dw_1,dw_2中的数据分别追加空记录,并且要实现自动追加发票号码,开具发票日期等功能。,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,20,“追加”按钮程序代码设计,/定义局部变量 integer i long endofdw,pendofdw,no1,no2,v_hm1,v_hm2 date current_date dw_1.enabled = true dw_2.enabled = true cb_top.enabled = false cb_last.enabled = false cb_ne

11、xt.enabled = false cb_bottom.enabled = false cb_prn.enabled = true cb_save.enabled = true endofdw = dw_1.rowcount(),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,21,“追加”按钮程序代码设计,IF endofdw = 0 THEN /数据库如果是第一次使用 SELECT max(hmfirst) INTO :v_hm1 FROM fphm ; dw_1.InsertRow(0) /在表的尾部插入新的空行 dw_1.setitem(dw_1.getrow(),“da

12、te“,today() /设置新的空白记录日期列为当前系统日期 dw_1.setitem(dw_1.getrow(),“fpno“,v_hm1) /设置新的空白记录发票号码列为前边取出来的变量值 dw_1.setitem(dw_1.getrow(),“sfzf“,“0“) dw_1.setitem(dw_1.getrow(),“kpr“, user_id),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,22,“追加”按钮程序代码设计,FOR i = 1 TO 7 dw_2.InsertRow(0) endofdw = dw_2.rowcount() dw_2.setitem(en

13、dofdw,“fpno“,v_hm1) dw_2.setitem(endofdw,“dno“,i) dw_2.setitem(endofdw,“xm“,“ “) NEXT ELSE /如果数据库不是第一次使用,并且不是刚输入发票号码段 IF rtn = 0 THEN endofdw = dw_1.InsertRow(0) pendofdw = endofdw - 1 dw_1.scrolltorow(pendofdw)/将记录指针指向空白记录前一条 no1 = dw_1.GetItemDecimal(pendofdw,“fpno“)/ 取得前一条记录的号码 no2 = no1 + 1 SELE

14、CT max(hmfirst),max(hmend) INTO :v_hm1,:v_hm2 FROM fphm ;,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,23,“追加”按钮程序代码设计,IF no2 = v_hm1 and no2 = v_hm2 THEN dw_1.scrolltorow(endofdw) /将记录指针指向空白记录 dw_1.setitem(endofdw,“fpno“,no2) dw_1.setitem(endofdw,“date“,today() dw_1.setitem(dw_1.getrow(),“sfzf“,0) dw_1.setitem(dw

15、_1.getrow(),“kpr“, user_id) dw_2.retrieve(no2) /设置发票细节窗口的数据值 FOR i = 1 TO 7 dw_2.InsertRow(0) endofdw = dw_2.rowcount() dw_2.setitem(endofdw,“fpno“,no2) dw_2.setitem(endofdw,“dno“,i) dw_2.setitem(endofdw,“xm“,“ “) NEXT,数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,24,“追加”按钮程序代码设计,ELSE MessageBox( “错误提示”, “目前的发票号码已经

16、超出当前发票本的范围,请输入 新的号码段“,Exclamation!, OK!) open(w_pass) END IF ELSE IF rtn = 9 THEN SELECT max(hmfirst) INTO :v_hm1 FROM fphm ; dw_1.scrolltorow(endofdw) /将记录指针指向空白记录 dw_1.setitem(endofdw,“fpno“,v_hm1) dw_1.setitem(endofdw,“date“,today() dw_1.setitem(dw_1.getrow(),“sfzf“,0) dw_1.setitem(dw_1.getrow(),“kpr“, user_id) dw_2.retrieve(v_hm1),数据库原理及应用-“十一五”国家级规划教材数据库原理及开发,25,“追加”按钮程序代码设计,/设置发票细节窗口的数据值 FOR i = 1 TO 7 dw_2.I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号