院长信息查询系统分析与设计_第1页
院长信息查询系统分析与设计_第2页
院长信息查询系统分析与设计_第3页
院长信息查询系统分析与设计_第4页
院长信息查询系统分析与设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、By 院长信息查询系统欧青目 录 TOC o 1-5 h z 【论文摘要】 1【关键字】 1 HYPERLINK l bookmark4 o Current Document .选题背景 1 HYPERLINK l bookmark6 o Current Document 课题背景、意义和来源以及系统工具介绍 1课题背景及意义 1课题的来源 2系统工具介绍 2 HYPERLINK l bookmark8 o Current Document 国内外发展概况 2 HYPERLINK l bookmark10 o Current Document 研究内容及须解决的关键问题 2研究内容 2需要解决

2、的关键问题 3.图书馆管理信息系统解决方案 3方案内容 3方案的选择 3方案的技术实现 错误!未定义书签。 HYPERLINK l bookmark14 o Current Document .系统总体设计 4 HYPERLINK l bookmark16 o Current Document 系统总体设计 4 HYPERLINK l bookmark18 o Current Document 系统总体功能图 4 HYPERLINK l bookmark20 o Current Document 数据库设计 6数据库白选择 7数据库设计 7数据库关系图 错误!未定义书签。 HYPERLINK

3、l bookmark22 o Current Document .图书馆管理信息系统的实现过程 8系统结构 8 HYPERLINK l bookmark24 o Current Document 登录系统界面的设计 10信息服务子系统的设计 13管理和维护子系统的设计 17 HYPERLINK l bookmark34 o Current Document .开发过程遇到的问题及解决方法 28.结束语 28参考文献 29【论文摘要】 目前,我国第三代HIS尚处于发展阶段,再加上临床医务人 员对HIS所知很少,导致对原始医疗数据的再利用更少。因此,如何才能更有 效、合理地利用HIS数据,是今后H

4、IS的发展方向之一。医院信息综合应用系 统以此为目的,旨在开发出一个全面、实用和科学的软件系统 ,为医院领导和 医疗工作者服务。实现对医院人事、财务、医疗、科研教育、设备物质和药品 等信息的查询、更新和应用。让院长以及各主要领导更清楚的了解整个医院的 运行情况,为决策提供依据。实现医院资源的合理配置,提高医院的运行效率, 最总获得利益的最大化,对于医院的信息化管理,可谓是意义重大。【关键字】 院长、管理员、信息系统、数据库、 sql sever.选题背景课题背景、意义和来源以及系统工具介绍课题背景及意义今天,随着信息技术的发展,在医院信息管理中运用传统的手工操作方式 在现在这个数字化的时代已显

5、得极不适应,因此,工作人员和读者对于运用计 算机来辅助协调和管理自身工作的需求正在逐步提高。随着我国现代化技术的 不断提高和普及,医院也在不断的提高它的各个部门的管理质量,对医院人事、财务、医疗、科研教育、设备物质和药品等信息的查询、更新和应用。让院长 以及各主要领导更清楚的了解整个医院的运行情况,为决策提供依据。实现医 院资源的合理配置,提高医院的运行效率,最总获得利益的最大化,对于医院 的信息化管理,可谓是意义重大。自从信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年的时间。现在,信息系统已经广泛应用于各行各业。 因此在这样的前提下,我选择了 “院长信息查询系统”这样一个较

6、为普遍,同时又较为典型的课题。 在当今这样一个科技高速发展的社会里,仅有理论知识是显然不行的,所以, 我希望通过开发这个系统,能更好地把理论与实际结合起来,充分将自己所学 的专业知识应用于实践之中,并在实践中不断充实自己,提高自己的专业技能 水平,以获取更多的教益课题的来源本课题由本人和辅导老师提出,基于 及SQLServer 2005数据库平 台开发院长信息查询系统,用于解决院长对信息的查询,把握医院的运行状况, 实现资源的优化配置。系统工具介绍本系统的开发工具是用面向对象的 进行设计的。Visual Basic.NET 是基于微软.NET Framework之上的面向对象的编程语言。其在调

7、试时是以解释 型语言方式运作,而输出为EXE序是是以编译型语言方式运作。可以看作是 Visual Basic 在.Net Framework平台上的升级版本,增强了 对面向对象的支持。大多的 VB.Net程序员使用 Visual Studio .Net 作为IDE (integrated development environment).SharpDevelop是另种可用的开源的 IDE。国内外发展概况目前,国际上大多数发达国家的医院信息查询基本上实现了电脑管理,尤 其是那些较大型的医院还采用了大型数据库开发的软件,部分大型医院信息查 询也使用Foxpro、SQLServer等。而基于Acce

8、ss数据库的多数是中小型医院。 但在大多数不发达国家,基于cache数据库的医院信息应用得很广泛。而在中 国,许多中小型医院信息用的还是手工医院信息管理,大多数医院信息对计算 机管理信息还没有一定的认识,虽然cache数据库是发达国家主流的医院信息 数据库,但基于SQLServer数据库具有使用方便、学习简单、易学易用的特点, 在发展中国发展较为成熟,所以基于SQLServer数据库做的信息系统较为普遍。研究内容及须解决的关键问题研究内容课题研究的内容是关于院长信息查询系统的流通部子系统,是院长信息查 询系统运用计算机管理和实际运用的具体体现,可以让大量的医院信息得到合理的安排。该系统使用的是

9、 2005 ,以SQL Server 2005数据库平台进行 开发。需要解决的关键问题用户需求分析系统整体规划方案及设定功能模块的划分及设定利用SQL select实现数据的连接实现最终系统代码的设计.院长信息查询系统解决方案方案内容我们可以用两层体系结构作为院长信息查询系统软件解决方案的核心,它 的基本思想是将院长操作的界面同管理人员的操作界面分离,把信息系统按功 能划分为用户管理和维护、信息服务和信息查询三大块,分别放置在相同或不 同的硬件平台上。之后从需求出发构造数据库表,然后再由数据库表结合需求 划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。系统划分 了子系统后,下一步的

10、工作是继续划分子系统的小模块。先考虑在进入子系统 时应该做什么,进入系统之后又应该做什么,提供哪些服务等。 。方案论证方案的选择两层客户机/服务器技术在结构、开发环境、应用平台的开发方式上已经非 常成熟。请求另一计算机为之服务的计算机称为客户机(Client ).而处理数据库的计算机称为服务器(Server)。客户机/服务器是将处理工作分散到工作站 和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作, 这样在数据发送给工作站之前即取得查询结果集,从而在大部分情况下可大大 减少网络传输的开销,因此,也减轻了工作处理负担,用户只需关心界面的处 理工作即可。客户机/服务器系统的成功

11、与否在很大程度上依赖于服务器。用户 越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导 致影响时间比本地型数据库还要差的结果。客户机运行数据请求程序,并将这些请求传送到服务器。由客户机执行的 计算称为前端处理。前端处理具有所有与提供、操作和显示数据相关的功能。 C/S数据库应用程序中客户端的主要功能:从用户接收数据处理应用逻辑生成数据库请求向服务器发送数据库请求从服务器接收结果并显示结果在服务器上执行的计算称为后端处理。后端处理设备是一台管理数据资源并执行数据库引擎功能(如存储、操作和保护数据)的计算机。C/S数据库应用程序中服务器端的主要功能:从客户机接收数据库请求处理数据

12、库请求传送结果给客户机执行完整性检查提供并行访问控制事务处理失败后,执行事务恢复优化查询和更新处理.系统总体设计系统总体设计对于医院信息查询系统主要负责提供的功能是指从医院收集信息,并将信息录入数据库中,实现院长能方便快速的找到自己想要的信息。(1)信息收集:从医院的各个部门、科室收集所需的信息。(2)信息录入:将收集来的信息整合、分类录入sql数据库中。(3)用户管理:管理员实现对用户的注册、修改、删除。(4)用户查询信息:用户通过平台窗口查询高效的查询医院的各方面 的信息,并可以将信息打印输出。系统总体功能图院长综合查询信息系统药品信息更改登陆密码更改注jm密码设置用户权删 除 新 用 户

13、图3-1总体功能图3.3数据流程图:数据库设计数据库的选择院长综合查询信息系统是一个小型的数据库系统。在这里我们选择SQLServer数据库进行开发。Microsoft SQL Server是一种关系型数据库管理系统。关系模型是当前最受欢迎的数据存储和数据检索模型。所有的数据处理都 涉及存储和检索数据的操作,Microsoft SQL Server是作为一个组织内部的全 部数据的中心存储器来设计的。组织中数据的关键特征强调了这一方法的重要 性。在客户机/服务器框架内,服务器数据库也要求与服务器的通信组件集成, 以便和客户系统连接。Microsoft SQLServer的客户机/服务器使用 Wi

14、ndowsNT 的内置网络组件。Microsoft SQL Server还在其网络组件的顶部添加了服务特 有的中介组件:开放式数据库连接( OpenDatabase Connectivity,ODBC )能使 不同客户机进行相互连接,而不要求变更服务器及其他现存客户应用程序。数据库设计表名属性说明表TestZhanghu,mima表Book主要存储 关于用户的信息,7表Test2Glyonghu,glmima表test2主要存储 关于管理员的信息,(其他由于医院信息表过于繁多就不一一列举)图3-1数据库表对象.图书馆管理信息系统的实现过程系统结构我们用两层体系结构作为院长综合查询信息系统软件解

15、决方案的核心,把 信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放置在 相同或不同的硬件平台上,并将系统的操作人员划分为两类:管理员,用户。管理员表删除管理员修改管理员密码管理员注册用户表删除用户修改用户密码用户注册登录系统界面的设计.从列表框里选择用户,此列表框内的用户直接与数据库里工作人员的表 相关联。.输入密码。判断该密码与工作人员表中定义的密码是否相符 。.如果不正确,提示输入正确的信息。.如果正确,用户登录对于登陆界面的代码如下:10Dim sqlConnectionl As SqlClient.SqlConnectionDim sqlConnect As Strin

16、g =Server=DELL-PCSQLEXPRESS;database=his;uid=ouqing;pwd=123; server=计算机名;database= 数据库名;uid=登录数据库用户名万卬=登录数据库密码”sqlConnection1 = NewSystem.Data.SqlClient.SqlConnection(sqlConnect) sqlConnection1.Open()Dim rs As NewADODB.RecordsetClassIf TextBox1.Text = Or Len(TextBox1.Text) 10 ThenDim z As Stringz =

17、MsgBox(请输入用户名,不能超过个字符!, vbOKCancel + vbInformation, 提示)TextBox1.Text =Exit Sub End IfIf TextBox2.Text = Or Len(TextBox2.Text) 10 ThenDim b As Stringb = MsgBox(请输入密码,不能超过个字符!, vbOKCancel + vbInformation, 提示)TextBox2.Text =Exit Sub End IfIf InStr( MeTextBox2.Text, ) Or InStr( MeTextBox1.Text, ) Then 如

18、果文本框或者里面含有,这个符号提示非法字符MsgBox(密码中存在非法字符,请重新输入。,MsgBoxStyle.Information,提示!)MeTextBox1.Text =MeTextBox2.Text =Exit SubEnd IfsqlConnection1.Close()sqlConnection1.Open()Dim sqlcom As NewSqlCommand这里,你用这个方法来取表的数据。如果用户故意输入一个你的sql语句就会出错。sqlcom.CommandText = select * from test where zhanghu= & MeTextBox1.Tex

19、t & andmima= & MeTextBox2.Text &11sqlcom.Connection = sqlConnectionlDim myds As NewDataSetDim myadapter As NewSqlDataAdaptermyadapter.SelectCommand = sqlcommyadapter.Fill(myds,test)Dim cm As NewSqlCommandselect count(*) from test where zhanghu = & TextBox1.Text & , sqlConnection1)Dim count As Intege

20、r = cm.ExecuteScalarIf count 0 ThenIf myds.Tables( test ).Rows.Count = 0 ThenMsgBox(密码错误,请重新输入。,MsgBoxStyle.Information, 提示)MeTextBox2.Text =sqlConnection1.Close()Exit SubEnd IfForm4.Show()MeHide()ElseMsgBox(账号不存在,请重新输入!)MeTextBox1.Text =MeTextBox2.Text =Exit SubEnd If连接数据库End Sub124.3.管理员界面的设计13ByV

21、al e As System.EventArgs)Handles关于修改用户密码界面的设计代码如下: Private Sub Button1_Click( ByVal sender As System.Object, Button1.ClickDim rs As NewADODB.RecordsetClassIf TextBox1.Text = Or Len(TextBox1.Text) 10ThenDim z As Stringz = MsgBox(请输入用户名,不能超过个字符!,vbOKCancel + vbInformation,提示)TextBoxl.Text =Exit SubEnd

22、 IfIf TextBox2.Text =Or Len(TextBox2.Text) 10ThenDim b As Stringb = MsgBox(请输入原密码,不能超过个字符!,vbOKCancel + vbInformation,提示)TextBox2.Text =Exit SubEnd IfIf TextBox3.Text =Or Len(TextBox3.Text) 10ThenDim c As Stringc = MsgBox(请输入新密码,不能超过个字符!,vbOKCancel + vbInformation,提示)TextBox3.Text =Exit SubEnd IfIf

23、TextBox4.Text =Or Len(TextBox3.Text) 10ThenDim c As Stringc = MsgBox(请输入新密码,不能超过个字符!,vbOKCancel + vbInformation,提示)TextBox4.Text =Exit SubEnd IfThenIf TextBox3.Text TextBox4.TextDim d As Stringd = MsgBox(对不起,两次输入的密码不一致!,vbOKCancel + vbInformation,提示14)TextBox3.Text =TextBox4.Text =End IfDim sqlConne

24、ctionlAs SqlClient.SqlConnectionDim sqlConnect As String =Server=DELL-PCSQLEXPRESS;database=his;uid=ouqing;pwd=123; server=计算机名;database= 数据库名;uid=登录数据库用户名万卬=登录数据库密码”sqlConnection1 = NewSystem.Data.SqlClient.SqlConnection(sqlConnect)sqlConnection1.Open()If InStr( MeTextBox2.Text, ,) Or InStr( MeText

25、Box3.Text,, ) Then 如果文本框或者里面含有,这个符号提示非法字符MsgBox(密码中存在非法字符,请重新输入。,MsgBoxStyle.Information, 提示!)MeTextBox1.Text =MeTextBox2.Text =Exit SubEnd IfsqlConnection1.Close()sqlConnection1.Open()Dim sqlcom As NewSqlCommand这里,你用这个方法来取表的数据。如果用户故意输入一个你的sql语句就会出错。sqlcom.CommandText = select * from test where zhan

26、ghu= & MeTextBox1.Text & andmima= & MeTextBox2.Text &sqlcom.Connection = sqlConnection1Dim myds As NewDataSetDim myadapter As NewSqlDataAdaptermyadapter.SelectCommand = sqlcommyadapter.Fill(myds,test)Dim cm As NewSqlCommandselect count(*) from test where zhanghu = & TextBox1.Text & , sqlConnection1)

27、Dim count As Integer = cm.ExecuteScalarDim result = NewDialogResult()result = MessageBox.Show(你确定要修改您的密码吗?,修改账号提醒,MessageBoxButtons.YesNo, MessageBoxIcon.Question)If result = Windows.Forms.DialogResult.Yes ThenIf count 0 Then15If myds.Tables( test ).Rows.Count = 0 ThenMsgBox(原始密码错误,请重新输入。,MsgBoxStyl

28、e.Information,提示)MeTextBox2.Text =sqlConnection1.Close()Exit SubEnd IfDim Opendlg As NewOpenFileDialogDim sqlcomm As NewSqlCommandsqlcomm.CommandText =Update test set mima=mima where zhanghu=MeTextBox1.Text &sqlcomm.Connection = sqlConnection1Dim prm1 As NewSqlParameter( mima; MeTextBox3.Text)sqlcom

29、m.Parameters.Add(prm1)Trysqlcomm.ExecuteNonQuery()执行插入语句sqlConnection1.Close()Catch ex As ExceptionsqlConnection1.Close()MsgBox(ex.Message)Exit SubMsgBox(End Try密码修改成功!,MsgBoxStyle.Information,提示)ElseMsgBox(MeTextBox2.Text =MeTextBox3.Text =MeTextBox4.Text =账号不存在,请重新输入!)MeTextBox2.Text =MeTextBox3.T

30、ext =MeTextBox4.Text =Exit SubEndIfElseMeTextBox2.Text =MeTextBox3.Text =MeTextBox4.Text =Exit SubEnd If16End Sub4.4.用户查询界面的设计17口.人索Hg圣石关于表名查询的代码如下:Dim strConnection As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123;Dim sqlConnection1 As NewSqlConnection(strConnection)Dim dataA

31、dapter As NewSqlDataAdapterDim dst As NewDataSetDim dt As NewDataTablesqlConnection1.Open()打开数据库If CheckBox1.Checked = True And TextBox1.Text = ThenDim sql As String = select name from sys.tables order by modify_date descDim cmd As SqlCommand = NewSqlCommand(sql, sqlConnection1)dataAdapter.SelectCom

32、mand = cmddataAdapter.Fill(dst,name)dt = dst.Tables(name)sqlConnection1.Close()关闭数据库DataGridView1.AutoGenerateColumns =True 自动创建列DataGridView1.DataSource = dtDataGridView1.Refresh()ElseDim sql As String = select nameFrom sys.tables where namelike % & TextBox1.Text& %18Dim cmd As SqlCommand = NewSqlC

33、ommand(sql, sqlConnectionl)dataAdapter.SelectCommand = cmddataAdapter.Fill(dst,name)dt = dst.Tables(name)sqlConnection1.Close()关闭数据库DataGridView1.AutoGenerateColumns =True 自动创建列DataGridView1.DataSource = dtEnd If关于实现查询表内容的代码如下:shadow = DataGridView1.SelectedRows(0).Cells(0).ValueIf DataGridView1.Sel

34、ectedRows.Count 0 ThenDim name = DataGridView1.SelectedRows(0).Cells(0).ValueDim strConnection As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123;Dim sqlConnection1 As NewSqlConnection(strConnection)Dim dataAdapter As NewSqlDataAdapterDim dst As NewDataSetDim dt As NewDataTables

35、qlConnection1.Open()打开数据库Dim objSqlCommand As SqlCommandDim sql As Stringsql =select * from & name & objSqlCommand = NewSqlCommand(sql, sqlConnection1)Dim objSqlDataAdapter As SqlDataAdapter objSqlDataAdapter =NewSqlDataAdapter(objSqlCommand)Dim objDataSet As DataSet objDataSet =NewDataSet()库存表)objS

36、qlDataAdapter.Fill(objDataSet,19库存表)DataGridView2.DataSource = objDataSet.Tables(DataGridView2.Refresh()sqlConnection1.Close()关闭数据库Else MsgBox(没有选着修改项)End If 关于实现关键字查询的代码如下: If TextBox2.Text = ThenDim z As String z = MsgBox(请输入姓名、编号关键字! , vbOKCancel + vbInformation,提示)Exit Sub ElseDim strConnection

37、As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123;”Dim sqlConnectionl As NewSqlConnection(strConnection)Dim dataAdapter As NewSqlDataAdapterDim dst As NewDataSet Dim dt As NewDataTablesqlConnection1.Open()打开数据库Dim objSqlCommand As SqlCommandDim sql As String sql =select * from

38、& shadow & where 编号 like %& TextBox2.Text &% or姓名like %& TextBox2.Text &%根据所有表具有的 共同字段 查询objSqlCommand = NewSqlCommand(sql, sqlConnectionl)Dim objSqlDataAdapter As SqlDataAdapter objSqlDataAdapter =NewSqlDataAdapter(objSqlCommand)Dim objDataSet As DataSet objDataSet =NewDataSet()objSqlDataAdapter.Fi

39、ll(objDataSet,库存表)DataGridView2.DataSource = objDataSet.Tables(库存表)DataGridView2.Refresh()20sqlConnection1.Close(),关闭数据库End IfEnd Sub关于实现表的打印代码如下:1、首先创建一个类:Imports System.Collections.GenericImports System.Windows.FormsImports System.DrawingImports System.CollectionsImports System.DataImports System.

40、TextNamespaceDgPrint Public Class PrintServicePrivate StrFormat As StringFormat 单元格内容Private RowPos As Integer 当前打印行Private NewPage As Boolean 判断是否为新页Private PageNo As Integer 打印页数Private CellHeight As Integer 打印的单元格高度Private RowsPerPage As Integer 每页的行数Private printDoc As NewSystem.Drawing.Printing

41、.PrintDocument() 用于打印的 PrintDocument ObjectPrivate ColumnLefts As NewArrayList() 列的左坐标Private ColumnWidths As NewArrayList() 列的宽度Private PrintTitle As String =标题Private AvailableColumns As NewList( Of String )() datagridview 中可见的列Private HeaderHeight As Integer = 0Private grid As DataGridView打印Publi

42、c Sub Print( ByVal grid As DataGridView, ByVal Title As String )21Dim ppvw As PrintPreviewDialogTryMegrid = grid 获取要打印的 datagridview AvailableColumns.Clear()获取中所有可见的列标题For Each c As DataGridViewColumn In grid.Columns If c.Visible = True ThenAvailableColumns.Add(c.HeaderText) End If Next ,显示打印属性窗体 Pr

43、intTitle = Title RowsPerPage = 0 printDoc.DocumentName =Dim dia As NewPrintDialog() dia.PrintToFile =Falsedia.Document = printDoc dia.UseEXDialog =TrueIf dia.ShowDialog() DialogResult.OK Then Return End Ifppvw =NewPrintPreviewDialog()ppvw.WindowState = FormWindowState.Maximized ppvw.Document = print

44、Doc,显示打印预览AddHandler printDoc.BeginPrint, NewSystem.Drawing.Printing.PrintEventHandler( AddressOf PrintGridDoc_BeginPrint) AddHandler printDoc.PrintPage, NewSystem.Drawing.Printing.PrintPageEventHandler(AddressOf PrintGridDoc_PrintPage)If ppvw.ShowDialog() DialogResult.OK ThenRemoveHandler printDoc.

45、BeginPrint, NewSystem.Drawing.Printing.PrintEventHandler( AddressOf PrintGridDoc_BeginPrint)RemoveHandler printDoc.PrintPage, NewSystem.Drawing.Printing.PrintPageEventHandler( AddressOf PrintGridDoc_PrintPage)22ReturnEnd If,打印文件printDoc.Print()RemoveHandler printDoc.BeginPrint, NewSystem.Drawing.Pri

46、nting.PrintEventHandler( AddressOf PrintGridDoc_BeginPrint)RemoveHandler printDoc.PrintPage, NewSystem.Drawing.Printing.PrintPageEventHandler( AddressOf PrintGridDoc_PrintPage)Catch ex As ExceptionEnd TryEnd SubPrivate Sub PrintGridDoc_BeginPrint( ByVal sender As Object , ByVal e AsSystem.Drawing.Pr

47、inting.PrintEventArgs)TryStrFormat =NewStringFormat()StrFormat.Alignment = StringAlignment.Center居中StrFormat.LineAlignment = StringAlignment.CenterStrFormat.Trimming = StringTrimming.EllipsisCharacterColumnLefts.Clear()ColumnWidths.Clear()CellHeight = 0RowsPerPage = 0PageNo = 1NewPage =TrueRowPos =

48、023Catch ex As ExceptionEnd TryEnd SubPrivate Sub PrintGridDoc_PrintPage(ByVal sender As Object , ByVal e AsSystem.Drawing.Printing.PrintPageEventArgs)Dim tmpWidth As Integer , i As IntegerDim tmpTop As Integer = e.MarginBounds.TopDim tmpLeft As Integer = e.MarginBounds.LeftDim font As NewFont(宋体,9)

49、Dim font_BT As NewFont(宋体,18)Dim font_C As NewFont(宋体,12)TryIf PageNo = 1 ThenFor Each GridCol As DataGridViewColumn In grid.ColumnsIf GridCol.Visible Then获取列的宽度及高度tmpWidth = GridCol.WidthHeaderHeight = 33获取列的宽度、高度及类型ColumnLefts.Add(tmpLeft)ColumnWidths.Add(tmpWidth)tmpLeft += tmpWidthEnd If24NextEn

50、d If逐行打印当前页While RowPos = e.MarginBounds.Height + e.MarginBounds.Top Then ,不能DrawGridFooter(e, RowsPerPage)NewPage =TruePageNo += 1e.HasMorePages =TrueReturn ElseIf NewPage Then ,打印标题e.Graphics.DrawString(PrintTitle,NewFont(font_BT,FontStyle.Bold), Brushes.Black, e.MarginBounds.Width - e.Graphics.Me

51、asureString(PrintTitle, NewFont(font_BT, FontStyle.Bold), e.MarginBounds.Width).Width, e.MarginBounds.Top - e.Graphics.MeasureString(PrintTitle,NewFont(font_BT, FontStyle.Bold),e.MarginBounds.Width).Height - 13, StrFormat)Dim s As String = DateTime.Now.ToLongDateString() & &DateTime.Now.ToShortDateS

52、tring()e.Graphics.DrawString(s& 统计,NewFont(font, FontStyle.Bold),Brushes.Black, e.MarginBounds.Left + (e.MarginBounds.Width - 1.5 * e.Graphics.MeasureString(s, NewFont(font, FontStyle.Bold), e.MarginBounds.Width).Width), e.MarginBounds.Top - e.Graphics.MeasureString(PrintTitle,NewFont( NewFont(font,

53、 FontStyle.Bold), FontStyle.Bold),e.MarginBounds.Width).Height - 13),打印列 tmpTop = e.MarginBounds.Top i = 0For Each GridCol As DataGridViewColumn In grid.Columns If GridCol.Visible = True Then25Newe.Graphics.FillRectangle(SolidBrush(Color.LightGray), NewRectangle( CInt (ColumnLefts(i), tmpTop, CInt (

54、ColumnWidths(i), HeaderHeight) e.Graphics.DrawRectangle(Pens.Black,NewRectangle( CInt (ColumnLefts(i), tmpTop, CInt (ColumnWidths(i), HeaderHeight) e.Graphics.DrawString(GridCol.HeaderText,NewFont(font_C, FontStyle.Bold), NewSolidBrush(Color.Black), New RectangleF( CInt (ColumnLefts(i), tmpTop, CInt (ColumnWidths(i), HeaderHeight), StrFormat) i += 1End IfNextNewPage =FalsetmpTop += HeaderHeightEnd If打印各列内容 i = 0For Each Cel As DataGridViewCell In GridRow.Cells If grid.Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论