VisualBasic程序设计项目化教程项目图书管理系统实用教案

上传人:莉**** 文档编号:70731704 上传时间:2022-04-06 格式:PPTX 页数:76 大小:998.51KB
返回 下载 相关 举报
VisualBasic程序设计项目化教程项目图书管理系统实用教案_第1页
第1页 / 共76页
VisualBasic程序设计项目化教程项目图书管理系统实用教案_第2页
第2页 / 共76页
VisualBasic程序设计项目化教程项目图书管理系统实用教案_第3页
第3页 / 共76页
点击查看更多>>
资源描述
项目(xingm)十六 图书管理系统 项目功能描述: 本项目设计并完成了一个小型(xioxng)的图书管理系统,系统可对借书人的个人信息及个人借情况进行登记录入、编辑、修改及删除,可对购买图书进行登记,对库存图书进行查询汇总,并对借书人损坏书籍进行登记录入。 第1页/共75页第一页,共76页。项目(xingm)十六 图书管理系统 项目(xingm)主要知识点: 编程方式访问数据库 无源数据库连接 图书管理系统的设计 项目(xingm)实施步骤: 1阅读相关基础知识 2图书管理系统功能设计简述 3SQL Server 2000数据库设计 4图书管理系统窗体设计 5程序代码调试第2页/共75页第二页,共76页。16.1基础知识概述(i sh) 16.1.1 无源数据库连接 1无源数据库连接概述 “无源数据库”连接并不是说不需要数据源,如果没有数据源则连接将成为纸上谈兵,只是不需要配置ODBC数据源,利用ADO通过代码编程进行连接。 2使用ADO 对象模型访问数据库 为了能够(nnggu)在程序中使用ADO对象编程,在连接数据库前,在Visual Basic 6.0菜单 “工程”“引用”中选择Microsoft ActiveX Data Objects 2.8 Library组件。运用ADO对象模型的主要元素Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,在模块中指定一个连接字符串,告诉ADO如何连接数据库。 第3页/共75页第三页,共76页。16.2图书(tsh)管理系统功能设计 16.2.1 系统目标(mbio) 通过使用小型图书管理系统,可以方便地对个人借书、还书、损坏书籍赔偿及图书信息进行管理。第4页/共75页第四页,共76页。16.2.2 系统(xtng)功能 1个人信息 对借书人的必要的个人信息及借书情况进行添加、修改、删除。 2图书信息 可以通过图书编号或时间进行书籍查询,并输出查询结果。同时对损坏的书籍进行赔偿登记。 3系统(xtng)管理 可以添加/删除系统(xtng)用户,登记新图书,并对图书信息进行修改、删除。第5页/共75页第五页,共76页。16.2.3 系统(xtng)结构图 图书(tsh)管理系统系统结构图,如图16-1所示: 图 16-1 图书(tsh)管理系统结构图第6页/共75页第六页,共76页。16.3数据库设计(shj) 16.3.1 建立tushugl数据库 启动SQL Server 2000中企业管理器,建立tushugl数据库,建立个人信息、个人借书、图书登记、用户(yngh)信息、图书赔偿数据表。 1个人信息表,如图16-2所示:图16-2 个人信息表第7页/共75页第七页,共76页。16.3数据库设计(shj) 2个人(grn)借书表,如图16-3所示图 16-3 个人借书表第8页/共75页第八页,共76页。16.3数据库设计(shj) 3图书(tsh)登记表,如图16-4所示:图16-4 图书登记表第9页/共75页第九页,共76页。16.3数据库设计(shj) 4用户(yngh)信息表,如图16-5所示:图16-5 用户信息表第10页/共75页第十页,共76页。16.3数据库设计(shj) 5图书(tsh)赔偿表,如图16-6所示:图16-6 图书赔偿表第11页/共75页第十一页,共76页。16.3.2 连接(linji)数据库 1引用ADO 在Visual Basic环境下,选择“工程”“引用”命令,在出现的对话框中选择“Microsoft ActiveX Data Objects 2.0 Library”,然后单击“ 确定(qudng)”按钮,如下图16-7所示: 图 16-7 引用ADO第12页/共75页第十二页,共76页。16.3.2 连接(linji)数据库2创建模块文件建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。(1)添加(tin ji)模块在Visual Basic环境下,选择“工程”“添加(tin ji)模块”则出现模块对话框,如图16-8所示: 选择模块图标后,单击“打开”按钮,则模块已经添加(tin ji)到工程中了。默认情况下名为Module1。图16-8 模块对话框第13页/共75页第十三页,共76页。16.3.2 连接(linji)数据库 (2) 定义ADO连接对象 在“图书管理系统”工程中,创建模块文件,在模块中,定义ADO连接对象。语句如下: Public conn As New ADODB.Connection 标记连接对象 Public rs As New ADODB.Recordset 标记连接对象 (3)创建实例(shl)对象 在子程序中,用如下的语句创建实例(shl)对象: Dim conn As ADODB.Connection Dim rs As ADODB.Recordsets Set conn = New ADODB.Connection 创建实例(shl)对象 Set rs = New ADODB. Recordsets 创建实例(shl)对象 (4)建立连接,打开数据库 conn.ConnectionString = Provider=SQLOLEDB.1;Persist_ Security_ Info=False;Server=机器名实例(shl)名;User ID=sa;_ Password=;DataBase=tushugl; conn.Open第14页/共75页第十四页,共76页。16.4“图书(tsh)管理系统”窗体设计 16.4.1 主窗体设计 1设计概述 在主窗体界面中单击菜单上的功能按钮,可以调用相应的子窗体。在状态栏中显示当前的日期、时间以及公司的网址。对界面背景进行添加图片和阴影字的设计。 2主窗体设计 (1)创建主窗体 新建一个“标准(biozhn)EXE”工程并将工程命名为“图书管理系统”。选择“工程”“添加MDI窗体”命令。与上一个项目不同的是我们采用MDI(多文档界面)。在应用程序中,使用多文档界面(MDI)可以同时打开显示、处理多个文档,使数据处理更加方便。 在MDI应用程序中至少包含两种窗体:父窗体和子窗体。每个窗体都有相应的特性。第15页/共75页第十五页,共76页。16.4“图书(tsh)管理系统”窗体设计 MDI窗体的特性 MDI窗体有且只有一个。子窗体至少有一个或一个以上。所有(suyu)的窗体无论任何操作都不能移出MDI窗体。父窗体最小化时,所有(suyu)的子窗体也同时最小化,并且MDI窗体及其所有(suyu)的子窗体将由一个图标来代表。 MDI子窗体的属性 在建立了MDI子窗体之后,要想Form1成为子窗体,要将其MDIChild属性设置为True。第16页/共75页第十六页,共76页。16.4“图书(tsh)管理系统”窗体设计 (2)设置(shzh)主窗体的属性 主窗体的属性如表16-1所示:表16-1 窗体属性(shxng)表属属 性性值值Caption图书管理系统NameMDIFormMainWindowstateMaxsize 第17页/共75页第十七页,共76页。16.4“图书(tsh)管理系统”窗体设计 (3)创建ADO对象模块(m kui)文件 在菜单中选择“工程”“添加模块(m kui)”命令,将模块(m kui)添加到工程后,默认名为Module1,重命名为baseSQL。 在模块(m kui)中定义整个工程的公共变量。 Public conn As New ADODB.Connection 定义连接对象 Public rs_dengji As New ADODB.Recordset 定义记录集对象 Public rs_jieshu As New ADODB.Recordset Public rs_peichang As New ADODB.Recordset Public rs_adduser As New ADODB.Recordset Public rs_deluser As New ADODB.Recordset Public rs_login As New ADODB.Recordset Public rs_peichang As New ADODB.Recordset第18页/共75页第十八页,共76页。16.4“图书(tsh)管理系统”窗体设计 (4)创建全局变量模块文件 将模块添加到工程中了。默认情况下名为Module2,可重命名为耻下 basedim 在模块中定义整个工程的公共变量 Public userID As String 定义当前用户ID Public userpow As String 定义用户权限(qunxin) Public find As Boolean 定义查询 Public findok As Boolean Public frmdata As Boolean Public Const keyenter = 13 enter键的ASCII码第19页/共75页第十九页,共76页。16.4.2 主窗体菜单(ci dn) 1创建菜单 选择(xunz)“工具”“菜单编辑器”编辑菜单,弹出如图16-8所示菜单编辑器对话框,根据系统的需要创建主菜单和子菜单。 图16-8 图书管理系统菜单设计第20页/共75页第二十页,共76页。16.4.2 主窗体菜单(ci dn)系统(xtng)菜单项表系统(xtng)菜单项如表16-2所示:标题标题名称名称功功 能能 描描 述述个人信息person主菜单个人信息personinfo子菜单个人借书personborrow 子菜单图书信息tushuinfo主菜单查询输出tushuque调出查询输出窗体图书赔偿tushupeichang调出图书赔偿窗体系统管理systemgl主菜单,包含子菜单添加用户adduser调出用户窗体删除用户deluser调出用户窗体图书登记checkin调出图书登记窗体图书归还return调出图书个人借书窗体报表输出datareport调出报表输出退出系统systemexit主菜单 包含子窗体退出系统exit退出系统第21页/共75页第二十一页,共76页。16.4.2 主窗体菜单(ci dn)主窗体代码在本项目中,子菜单事件都是Click事件,这里给出主窗体部分代码。“添加用户”子菜单Click事件,调出添加用户窗体代码。Private Sub adduser_Click()frmadduser.Show 1End Sub“查询输出(shch)”子菜单Click事件,调出查询输出(shch)窗体代码。Private Sub chaxunshuchu_Click()frmfind.Show 1End Sub“退出”子菜单Click事件,调出退出窗体代码。Private Sub exit_Click()Unload MeEnd Sub第22页/共75页第二十二页,共76页。16.4.2 主窗体菜单(ci dn) “图书登记”子菜单Click事件,调出图书登记窗体代码。 Private Sub checkin_Click() frmdengji.Show End Sub “个人(grn)借书”子菜单Click事件,调出个人(grn)借书窗体代码。 Private Sub personborrow_Click() frmjieshu.Show End Sub “图书赔偿”子菜单Click事件,调出图书赔偿窗体代码。 Private Sub tushupeichang_Click() frmpeichang.Show 1 End Sub第23页/共75页第二十三页,共76页。16.4.3 创建(chungjin)各子窗体 1子窗体设计 (1)设计说明 图书管理系统的子窗体类型主要有“系统登录”、“数据编辑录入”、“查询(chxn)”、“打印报表”等。在图书管理系统中,要创建的所有子窗体如表16-3所示:子窗体标题子窗体标题子子 窗窗 体体 名名个人信息Frm_personinfo个人借书Frm_jieshu查询输出Frm_addCarsale图书赔偿Frm_peichang添加用户Frm_addUser删除用户Frm_delUser图书登记Frm_dengji图书归还Frm_return 报表打印Frm_datareportprt 退出系统Frm_exit系统登录Frm_login第24页/共75页第二十四页,共76页。16.4.3 创建(chungjin)各子窗体 (2)子窗体代码 “图书管理系统”项目,尽管有些子窗体界面功能设计与项目十五“汽车销售管理系统”基本相同,例如系统登录子窗体,图书登记子窗体,查询子窗体等,但由于访问数据库方式发生了巨大的变化(binhu),使用ADO对象模型,采用编程式访问数据库,所以在”图书管理系统”子窗体中,除了设计窗体的界面外,更重要的是编程代码,是本项目的重点难点内容。 第25页/共75页第二十五页,共76页。16.4.3 创建(chungjin)各子窗体 2系统登录子窗体 关于系统登录界面设计,可参考项目(xingm)六,我们重点介绍系统登录子窗体的代码。 (1)窗体加载代码 Set conn = New ADODB.Connection 创建连接实例 conn.ConnectionString = Provider=SQLOLEDB.1;Persist_ Security Info=False;Server=ZHENGSHAOJ;User ID=sa;_ Password=;DataBase=tushugl; 连接数据库 conn.ConnectionTimeout = 30 conn.Open第26页/共75页第二十六页,共76页。16.4.3 创建(chungjin)各子窗体 (2)打开记录集对象的代码 rs_login.Open , select * from 用户信息,conn,_ adOpenKeyset,adLockOptimistic, adCmdText 3个人信息窗体设计 个人信息窗体属于数据编辑(binj)录入类型窗体,我们在项目十五中,介绍了两种创建数据编辑(binj)录入窗体的方法,本项目中我们以“个人信息”子窗体为例,继续深入学习第二种创建数据编辑(binj)录入窗体的方法。 (1)设计思路 在个人信息窗体中,即能对个人信息进行添加、修改、删除,也同时能看到每个人借书的详细资料。 第27页/共75页第二十七页,共76页。16.4.3 创建(chungjin)各子窗体 (2)启动(qdng)“数据窗体向导” 启动(qdng)“数据窗体向导”的方法,可参考项目十五中关于“数据编辑录入窗体”的创建。 (3)提供连接信息 本项目采用无源数据库连接,这样在提供连接信息时与项目十五完全不同,其具体信息如图16-9所示:图 16-9 无源数据库连接提供连接信息机器名、实例名第28页/共75页第二十八页,共76页。16.4.3 创建(chungjin)各子窗体 (4)选择窗体类型和数据(shj)绑定类型 窗体类型我们选择“主表/细表”,绑定类型我们选择“ADO代码”。 图 16-10 窗体类型和数据绑定类型第29页/共75页第二十九页,共76页。16.4.3 创建(chungjin)各子窗体 (5)主表记录( jl)源 主表记录( jl)源选择“个人信息”,并选定所有字段。如图16-11所示:图 16-11 主表记录源第30页/共75页第三十页,共76页。16.4.3 创建(chungjin)各子窗体 (6)详细资料记录源 细表记录源选择“个人借书”,然后(rnhu)把需要详细描述的字段作为选定的字段,如图16-12所示: 图 16-11 细表记录源第31页/共75页第三十一页,共76页。16.4.3 创建(chungjin)各子窗体 (7)记录( jl)源关系 选择一个字段作为连接主/细表的字段,如图16-12所示:图 16-12 主/细表关联字段第32页/共75页第三十二页,共76页。16.4.3 创建(chungjin)各子窗体 (8)选择(xunz)窗体控件 选择(xunz)窗体所需要的控件,如图16-13所示:图 16-13 窗体控件选择第33页/共75页第三十三页,共76页。16.4.3 创建(chungjin)各子窗体 (9)用数据窗体向导制作(zhzu)的“个人信息” 按照我们的选择,生成的数据窗体如图16-14所示: 图 16-14 个人信息窗体第34页/共75页第三十四页,共76页。16.4.3 创建(chungjin)各子窗体 (10)个人信息窗体代码 用数据窗体向导制作的“个人信息”窗体,代码自动产生。 4图书登记子窗体设计(shj)与主要代码 关于图书登记窗体,由于我们采用编程访问数据库,所以编程代码是重点及难点问题。 设计(shj)思路 图书登记窗体是数据编辑录入窗体,其窗体设计(shj)参考项目十五中数据编辑录入窗体的第一种方法,用我们所学的控件创建,使窗体能对记录进行添加、修改、删除。第35页/共75页第三十五页,共76页。16.4.3 创建(chungjin)各子窗体 (2)图书(tsh)登记子窗体 图书(tsh)登记窗体如图16-15所示:图16-15 图书登记窗体第36页/共75页第三十六页,共76页。16.4.3 创建(chungjin)各子窗体图书(tsh)登记子窗体控件图书(tsh)登记窗体上控件列表: 表16-4 图书(tsh)窗体上的控件表控控 件件 类类 别别控件控件NameName控件控件TextTextLabelLabel1编号Label2书名Label3类型Label4购买日期Label5数量Label6定价第37页/共75页第三十七页,共76页。16.4.3 创建(chungjin)各子窗体TextBoxText1(0)(空) Text1(1)(空) Text1(2)(空) Text1(3)(空) Text1(4)(空) Text1(5)(空) DTPickerDTPicker1当前日期CommandButtonCommand1添加记录Command2删除记录Command3下一条Command4上一条Command5第一条Command6最后一条Command7退出DataGridDataGrid1(空)第38页/共75页第三十八页,共76页。16.4.3 创建(chungjin)各子窗体 (4)图书登记(dngj)窗体主要代码 窗体加载代码: Private Sub Form_Load() conn.CursorLocation = adUseClient adUserClient 控制记录集游标,是客户端还是服务器端,若选择adUserSever是服务器端,选择adUseClient是客户端。 Set rs_dengji = New ADODB.Recordset 创建记录集实例 If rs_dengji.State = adStateOpen Then 检测数据库是否打开状态 rs_dengji.Close End If第39页/共75页第三十九页,共76页。16.4.3 创建(chungjin)各子窗体rs_dengji.Open select * from 图书登记(dngj), conn,_adOpenKeyset,adLockOptimistic, adCmdTex 打开“图书登记(dngj)”表Set Me.DataGrid1.DataSource = rs_dengji DataGrid1绑定数据源DataGrid1.Col = 0 文本框与DataGrid1绑定Text1(0).Text = DataGrid1.TextDataGrid1.Col = 1Text1(1).Text = DataGrid1.TextDataGrid1.Col = 2Text1(2).Text = DataGrid1.TextDataGrid1.Col = 3DTPicker1.Value = DataGrid1.TextDataGrid1.Col = 4Text1(4).Text = DataGrid1.TextDataGrid1.Col = 5Text1(5).Text = DataGrid1.Text第40页/共75页第四十页,共76页。16.4.3 创建(chungjin)各子窗体“添加记录”按钮代码:Private Sub Command1_Click() Do While rs_dengji.EOF = FalseIf rs_dengji.Fields(0) = Trim(Text1(0).Text) ThenStr = MsgBox(您输入的图书编号己存在(cnzi),是否将图书数量_累加到原始图书上? , vbQuestion + vbYesNo, 编号重复)If str1 = vbYes Thenrs_dengji.Fields(4) = Int(rs_dengji.Fields(5) + Int(Text1(4).Text)rs_dengji.UpdateMsgBox 添加成功!请验证!, vbInformation, 累加成功Exit SubElseText1(0).Text = Exit Sub第41页/共75页第四十一页,共76页。16.4.3 创建(chungjin)各子窗体End IfElsers_dengji.MoveNextEnd If Looprs_dengji.AddNewrs_dengji.Fields(编号) = Trim(Text1(0).Text)rs_dengji.Fields(书名) = Trim(Text1(1).Text)rs_dengji.Fields(类型) = Trim(Text1(2).Text)rs_dengji.Fields(购买日期) = DTPicker1.Valuers_dengji.Fields(数量) = Val(Trim(Text1(4).Text)rs_dengji.Fields(定价(dng ji) = Val(Trim(Text1(5).Text)rs_dengji.UpdateMsgBox 数据己添加成功, vbInformation, 添加成功 End Sub第42页/共75页第四十二页,共76页。16.4.3 创建(chungjin)各子窗体“删除记录”按钮代码(di m):Private Sub Command2_Click() If rs_dengji.EOF = True Then MsgBox 没有记录,无法删除! Exit Sub End If If rs_dengji.EOF = False Then Text1(0).Text = rs_dengji.Fields(0) If MsgBox(删除当前记录吗?, vbYesNo + vbQuestion) = vbYes Then rs_dengji.Delete rs_dengji.Update End If MsgBox 数据己删除, vbInformation, 删除图书登记 Else rs_dengji.MoveNext End If End Sub第43页/共75页第四十三页,共76页。16.4.3 创建(chungjin)各子窗体 “下一条(y tio)”按钮代码: Private Sub Command3_Click() If Command4.Enabled = False Then Command3.Enabled = True End If If rs_dengji.EOF = False Then rs_dengji.MoveNext If rs_dengji.EOF Then MsgBox 这是最后一条(y tio)记录, vbOKCancel + vbQuestion_ rs_dengji.MoveLast End If第44页/共75页第四十四页,共76页。16.4.3 创建(chungjin)各子窗体 Text1(0).Text = rs_dengji.Fields(0) Text1(1).Text = rs_dengji.Fields(1) Text1(2).Text = rs_dengji.Fields(2) DTPicker1.Value = rs_dengji.Fields(3) Text1(4).Text = rs_dengji.Fields(4) Text1(5).Text = rs_dengji.Fields(5) End If End Sub第45页/共75页第四十五页,共76页。16.4.3 创建(chungjin)各子窗体 “上一条(y tio)” 按钮代码 Private Sub Command4_Click() If Command3.Enabled = False Then Command4.Enabled = True End If If rs_dengji.BOF = False Then rs_dengji.MovePrevious If rs_dengji.BOF Then MsgBox 这是第一条(y tio)记录, vbOKCancel + vbQuestion rs_dengji.MoveFirst Exit Sub第46页/共75页第四十六页,共76页。16.4.3 创建(chungjin)各子窗体 End If Text1(0).Text = rs_dengji.Fields(0) Text1(1).Text = rs_dengji.Fields(1) Text1(2).Text = rs_dengji.Fields(2) DTPicker1.Value = rs_dengji.Fields(3) Text1(4).Text = rs_dengji.Fields(4) Text1(5).Text = rs_dengji.Fields(5) End If End Sub 第47页/共75页第四十七页,共76页。16.4.3 创建(chungjin)各子窗体 个人(grn)借书和图书赔偿子窗体分别如下图16-16和16-17所示,它们与图书登记子窗体的代码基本相同,在此不作介绍。 图 16-16 个人借书窗体第48页/共75页第四十八页,共76页。16.4.3 创建(chungjin)各子窗体图16-17 图书赔偿窗体第49页/共75页第四十九页,共76页。16.4.3 创建(chungjin)各子窗体 5查询子窗体设计 (1)设计思路 “查询”是应用软件中必不可少的部分,几乎任何一个应用软件的设计都离不开查询,本系统可以按照图书的编号进行查询,也可以按照购书时间(shjin)进行查询。 (2)查询子窗体界面 查询子窗体界面如图16-18所示:图16-18 图书查询窗体第50页/共75页第五十页,共76页。16.4.3 创建(chungjin)各子窗体 (3)查询(chxn)子窗体控件 查询(chxn)子窗体控件如表16-5所示: 控控 件件 类类 别别控件控件NameName控件控件TextTextOptionButtonOption1按编号查询Option2按购买日期查询LabelLabel1从Label2到Label3从Label4 到DTPickerDTPicker1当前日期DTPicker2当前日期CommandButtonCommand1查询Command2取消ComboBoxCombo1(0)选择编号Combo1(1)选择编号Combo2(0)选择日期Combo2(1)选择日期第51页/共75页第五十一页,共76页。16.4.3 创建(chungjin)各子窗体 (4)查询子窗体的主要代码: 加载窗体代码: Private Sub Form_Load() Dim i As Integer If rs_dengji.State = adStateOpen Then 检验( jinyn)数据库状态 rs_dengji.Close End If rs_dengji.Open select * from 图书登记 order by 编号 desc, _ conn, adOpenKeyset, adLockOptimistic, adCmdText If rs_dengji.EOF = False Then 添加编号和日期第52页/共75页第五十二页,共76页。16.4.3 创建(chungjin)各子窗体 With rs_dengji Do While Not .EOF Combo1(0).AddItem .Fields(0) Combo1(1).AddItem .Fields(0) Combo2(0).AddItem .Fields(3) Combo2(1).AddItem .Fields() .MoveNext Loop End With End If End Sub第53页/共75页第五十三页,共76页。16.4.3 创建(chungjin)各子窗体查询按钮代码Private Sub Command1_Click()If rs_dengji.State = adStateOpen Then 检验( jinyn)数据库状态rs_dengji.CloseEnd IfIf Option1.Value = True ThenOption2.Enabled = Falsers_dengji.Open select * from 图书登记 where 编号 between _& Combo1(0).Text & and & Combo1(1).Text & , _conn, adOpenKeyset, adLockOptimistic, adCmdTextfrm_datamanage.Show 调查询结果输出窗体End If第54页/共75页第五十四页,共76页。16.4.3 创建(chungjin)各子窗体 If Option2.Value = True Then Option1.Enabled = False rs_dengji.Open select * from 图书登记(dngj) where 购买日期 between & Combo2(0).Text & and & Combo2(1).Text & frm_datamanage.Show End If Unload Me End Sub第55页/共75页第五十五页,共76页。16.4.3 创建(chungjin)各子窗体 (5)查询结果( ji gu)输出窗体 查询结果( ji gu)输出窗体如图16-19所示:图 16-19 图书查询结果输出第56页/共75页第五十六页,共76页。16.4.3 创建(chungjin)各子窗体 6报表窗体设计 (1)设计概述 报表是数据管理系统不可缺少部分,Visual Basic 6.0提供了数据报表设计器来建立数据报表。 数据报表设计器是一个多功能的报表生成器,以创建联合(linh)分层结构报表的能力为特色,同数据源一起使用,可以从几个不同的相关表创建报表。除创建可打印报表之外,也可以将报表导入到HTML或文本文件中。 (2)设计方法 配置一个数据源,用于访问数据库,并设定DataReport对象的DataSource属性和DetaMember属性。运行时,使用Show方法显示数据报表,本项目我们以图书登记信息分组输出为例详细介绍设计过程。第57页/共75页第五十七页,共76页。16.4.3 创建(chungjin)各子窗体添加数据环境设计器我们利用数据环境设计器,设置分组字段。单击“工程”“添加Data Environment”命令(mng lng),在“图书管理系统”中添加一个数据环境设计器。如图16-20所示:图 16-20 数据环境设计器第58页/共75页第五十八页,共76页。16.4.3 创建(chungjin)各子窗体设置Connection1属性选中“Connection1”,单击鼠标右键,在弹出的菜单中选择“属性”命令,弹出由如图16-21所示的对话框,设置数据链接(lin ji)属性。然后在图16-22中设计连接选项卡。 图 16-21 数据链接属性第59页/共75页第五十九页,共76页。16.4.3 创建(chungjin)各子窗体图 16-22 连接选项卡第60页/共75页第六十页,共76页。16.4.3 创建(chungjin)各子窗体添加(tin ji)命令Command1选中“Connection1”,单击鼠标右键,在弹出的菜单中选择“添加(tin ji)命令”,如图16-23所示。图 16-23 添加Command1命令第61页/共75页第六十一页,共76页。16.4.3 创建(chungjin)各子窗体设置Command1通用属性选中“Command1”,单击鼠标右键,在弹出的菜单中选择(xunz)“属性”命令,在“Command1”属性对话框中,选择(xunz)“通用”选项卡。在“数据库对象”列表框中选择(xunz)“图书类型”,如图16-24所。 图 16-24 Command1数据库对象及对象名称第62页/共75页第六十二页,共76页。16.4.3 创建(chungjin)各子窗体设置Command1分组属性(shxng)选中“Command1”,单击鼠标右键,在弹出的菜单中选择“属性(shxng)”命令,在“Command1”属性(shxng)对话框中,选择“分组”选项卡。勾选“分组命令对象”,并将“图书登记”字段“类型”添加到“用于分组字段”,如图19-25所示: 图 16-25 Command1分组属性第63页/共75页第六十三页,共76页。16.4.3 创建(chungjin)各子窗体分组设置完成后的结果分组设置完成后,数据环境设计器将显示分组后的Commnad1对象(duxing),如图16-26所示,至此,通过“图书登记”表中字段“类型”对图书登记信息进行分组的设置完成了。图 16-27 分组后的Command1对象第64页/共75页第六十四页,共76页。16.4.3 创建(chungjin)各子窗体添加(tin ji)数据报表选择“工程”“添加(tin ji)Data Report”命令,在“图书管理系统”工程中添加(tin ji)一个DataReport对象,同时显示数据报表工具箱,如图16-28所示: 报表标签报表图像报表形状报表文本框报表函数图 16-28 数据报表工具箱报表线条第65页/共75页第六十五页,共76页。16.4.3 创建(chungjin)各子窗体设置数据报表具体步骤:设置数据报表设计(shj)器属性 DataReport的DataSource设置为DataEnvironment,DataMenber设置为Command1_分组。如图16-29所示:图 16-29 数据报表设计器属性第66页/共75页第六十六页,共76页。16.4.3 创建(chungjin)各子窗体向数据(shj)报表设计器添加分组标头/注脚选中数据(shj)报表设计器,单击鼠标右键,在弹出的菜单中选择“插入分组标头/注脚”菜单项,此时,报表设计器便出现了“分组标头”和“分组注脚”部分,如图16-30所示。向数据(shj)报表设计器拖曳数据(shj)将数据(shj)环境设计器中的分组字段“类型”拖曳到“分组标头”里;将原有字段拖曳到“细节”里,如图16-30所示。统计库存图书金额在“分组注脚”中插入一个函数控件,设置DataMember属性为“Command1”,DataField属性为“金额”,如图16-30所示。第67页/共75页第六十七页,共76页。16.4.3 创建(chungjin)各子窗体图 16-30 数据报表设计插入涵数控件第68页/共75页第六十八页,共76页。16.4.3 创建(chungjin)各子窗体 使用数据报表设计器工具箱 使用数据报表设计器工具箱,为报表加页标头,加线条,也可插入图形或图像等。制作好的图书(tsh)登记报表如图16-31所示: 图 16-31 图书登记有按类型分组报表第69页/共75页第六十九页,共76页。16.5 系统(xtng)代码运行调试 系统代码运行调试,是设计应用软件的关键环节,无论(wln)多么仔细的编写代码,都可能会出错。 16.5.1 系统登录代码调试 1系统启动后出现登录界面 (1)用户名及密码正确,登录成功。 (2)若用户名或密码有误,不可登录,三次登录不成功,即取消登录。 (3)若是以管理员身份登录,所有命令按钮均可使用。若是以普通用户身份登录,只可查询,其余按钮均不可用。第70页/共75页第七十页,共76页。16.5 系统(xtng)代码运行调试 2连接数据库 (1)打开数据库 登录成功后,数据库应能自动打开。若数据库没有打开,检查数据库连接字符串中: Provider=SQLOLEDB.1; Server=机器名实例名; User ID=sa; Password=;(有密码填写,没有即空缺) DataBase=tushugl; 以上(yshng)数据是否填写正确。第71页/共75页第七十一页,共76页。16.5.2 数据编辑录入(l r)窗体代码设计 1添加数据 (1)图书编号重复时,系统应提示是否将新书的数量追加到已有图书中。 (2)数据类型不匹配或越界时,系统应提示。 (3)添加数据有误时,可取消重新(chngxn)输入。 (4)添加借书数据时,每借一本书,库存应减少一本书。 2删除数据 (1)删除数据时,系统要提示是否确认删除。第72页/共75页第七十二页,共76页。16.5.3 数据查询(chxn)窗体代码调试 1输出结果( ji gu) (1)是否符合查询条件 (2)查询结果( ji gu)形式是否符合要求第73页/共75页第七十三页,共76页。16.5.4 结束语 编程访问数据库,除无源数据库连接外,还有有源数据库连接。有源数据库连接,先建立数据源(参考项目十四),之后编程代码(di m)与无源数据库连接相同,我们不再设立项目。 第74页/共75页第七十四页,共76页。谢谢您的观看(gunkn)!第75页/共75页第七十五页,共76页。NoImage内容(nirng)总结项目十六 图书管理系统。建立(jinl)公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。Server=机器名实例名。子窗体至少有一个或一个以上。“退出”子菜单Click事件,调出退出窗体代码。机器名、实例名。(4)选择窗体类型和数据绑定类型。选择一个字段作为连接主/细表的字段,如图16-12所示:。表16-4 图书窗体上的控件表。(1)删除数据时,系统要提示是否确认删除。谢谢您的观看第七十六页,共76页。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!