




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
吉林省明日科技有限公司监制OA办公自动化系统毕业论文目录摘要1目录1引言11 系统分析21.1 需求分析21.2 可行性分析22 总体设计22.1 项目规划22.2 系统工作原理网络结构图22.3 系统功能结构图33 详细设计33.1 公共模块设计33.2 系统登录设计43.3 主界面设计63.4 新闻管理93.5 传送文件133.6 文件接收153.7 投票活动管理18附录A 参考文献21附录B 数据表结构22附录C 文件架构图25 39 1 系统分析1.1 需求分析通过调查,要求系统需要有以下功能:q 由于操作人员的计算机知识普遍较差,那么就要求有良好的人机界面。q 由于该系统的使用对象多,要求有较好的权限管理。q 原始数据修改简单方便,支持多条件修改。q 方便的数据查询,支持多条件查询。q 信息发布与文件传送速度快。q 通过计算机,能够直接“透视”公司的各项工作及活动安排。q 图表分析活动投票管理。q 在相应的权限下,删除数据方便简单,数据稳定性好。1.2 可行性分析开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发风险,避免人力、物力和财力的浪费。本系统数据库采用目前比较流行的Microsoft SQL Server,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高;前台采用Microsoft公司的Visual Basic 6.0作为主要的开发工具,其可与SQL Server 2000数据库无缝链接。2 总体设计2.1 项目规划OA办公自动化系统是一个典型的网络办公开发应用程序,包含通知管理模块、新闻管理模块、文件传送管理模块、交流管理模块、系统维护管理模块5部分组成,规划系统功能模块如下:q 通知管理模块该模块主要负责信息的发布、接收等。q 新闻管理模块该模块的主要负责新闻的发布、接收等。q 文件传送管理模块该模块主要负责文件的传送与接收等。q 交流管理模块该模块主要实现意见反馈、活动投票、短消息服务(局域网)。q 系统维护管理模块部门信息的基础设置、职员信息的基础设置、投票活动管理设置、系统操作员及权限设置。2.2 系统工作原理网络结构图系统工作原理网络结构图如图1所示。图1 系统工作原理网络结构图2.3 系统功能结构图图2 系统功能结构图3 详细设计3.1 公共模块设计为了节省系统资源,实现代码重用,可以在系统中新建一个Modulel模块。就本系统而言,该模块主要实现数据库安装和共享数据库连接。系统第一次使用时,根据用户设置的DataBase.ini配置文件,将数据库文件(db_OA_Data.MDF)和数据库日志文件(db_OA_Log.LDF)自动安装到指定的SQL Server数据库服务器上。为了优化ADO+SQL数据库的连接,在公共模块(Module1)中建立数据库连接共享字符串。在以后的编程中,如果使用对象访问数据库或ADO Data控件访问数据库,则可以直接将数据库共享连接字符串(PublicStr)值赋值给相应的ConnectionString属性,从而避免了重复建立数据库连接的麻烦,而失去了ADO+SQL的优越性能。模块中代码如下:Public PublicStr As StringDim con As New ADODB.Connection, rs As New ADODB.RecordsetDim Str As String, Server As String, uid As String, Dim pwd As StringPublic Sub main() 读取数据库配置文件 Open (App.Path & DataBase.ini) For Input As #1 Line Input #1, Intext Server = Mid(Intext, 10, Len(Trim(Intext) - 9) Line Input #1, Intext uid = Mid(Intext, 7, Len(Trim(Intext) - 6) Line Input #1, Intext pwd = Mid(Intext, 7, Len(Trim(Intext) - 6) Close #1附加数据库 On Error Resume Next con.ConnectionString = Provider=SQLOLEDB.1;Persist Security Info=False;User ID= & uid & ;PWD= & pwd & ;Initial Catalog=db_OA;Data Source= & Server & con.Open 打开数据库连接 Set rs = New ADODB.Recordset 开始附加数据库 Str = EXEC sp_attach_db dbname = Ndb_SSS, filename1 = N + App.Path + DataBasedb_OA_Data.MDF + , filename2 = N + App.Path + DataBasedb_OA_Log.LDF + rs.Open str, con, 1, adLockOptimistic Set rs = con.Execute(Str) con.Close 关闭数据库连接 共享连接字符串 PublicStr = Provider=SQLOLEDB.1;Persist Security Info=False;User ID= & uid & ;PWD= & pwd & ;Initial Catalog=db_OA;Data Source= & Server & frm_login.ShowEnd Sub3.2 系统登录设计本系统属于OA办公自动化系统,用户权限分为两种:系统管理员和普通用户。系统登录验证操作员及其密码,主要通过记录集结果(RecordSet)结合If语句,判断用户输入的操作员及密码是否符合数据库中的操作员和密码,如果符合则允许登录,并给予相应的权限,否则提示用户非法登录。1窗体设计(1)新建一个窗体,将窗体的“名称”属性设置为frm_login,BorderStyle属性设置为0-None,设置Picture属性,为窗体添加背景图片。(2)添加Adodc控件,设置名称为adoLogin,Visible属性为False,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框将其添加到工具箱中。添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Ado Data Controls 6.0(SP4)”列表项。(3)添加2个TextBox控件,分别设置名称(Name属性)为Text1和Text2,设置BorderStyle属性为0-None。(4)添加2个Label控件,将名称设置为labLogin和labEnd,BackStyle属性为0-Transparent。系统登录窗体的设计结果如图3所示。图3 系统登录窗体设计2代码设计单击名称为labLogin的Label控件用来进行用户安全性检查,如果用户名称和密码正确,则进入系统并分配相应的权限。在Label控件名称为labLogin的Click事件下,添加代码如下:Private Sub labLogin_Click() adoLogin.ConnectionString = PublicStr adoLogin.RecordSource = select * from tbOA_user where username= + Text1.Text + and userpwd= + Text2.Text + adoLogin.Refresh If adoLogin.Recordset.RecordCount 0 Then If adoLogin.Recordset.Fields(2).Value = 0 Then frm_mainBefore.Show frm_mainBefore.System.Enabled = False 权限约束 frm_mainBefore.StatusBar1.Panels(1).Text = 操作职员: & Text1.Text 设置控件TreeView树状菜单 Set n1 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 通知管理, 通知管理, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 发布通知, 发布通知, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 接收通知, 接收通知, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 已发通知, 已发通知, 1) Set n2 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 新闻管理, 新闻管理, 1) Set nnode2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 新闻发布, 新闻发布, 1) Set node2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 接收新闻, 接收新闻, 1) Set node2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 已发新闻, 已发新闻, 1) Set n4 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 文件传送, 文件传送, 1) Set nnode4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 传送文件, 传送文件, 1) Set node4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 接收文件, 接收文件, 1) Set node4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 已发文件, 已发文件, 1) Set n3 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 交流管理, 交流管理, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 意见箱, 意见箱, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 投票活动, 投票活动, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 短消息服务, 短消息服务, 1) Else frm_mainBefore.Show frm_mainBefore.StatusBar1.Panels(1).Text = 操作职员: & Text1.Text 设置控件TreeView树状菜单 Set n1 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 通知管理, 通知管理, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 发布通知, 发布通知, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 接收通知, 接收通知, 1) Set node1 = frm_mainBefore.TreeView1.Nodes.Add(n1.Index, tvwChild, 已发通知, 已发通知, 1) Set n2 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 新闻管理, 新闻管理, 1) Set nnode2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 新闻发布, 新闻发布, 1) Set node2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 接收新闻, 接收新闻, 1) Set node2 = frm_mainBefore.TreeView1.Nodes.Add(n2.Index, tvwChild, 已发新闻, 已发新闻, 1) Set n4 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 文件传送, 文件传送, 1) Set nnode4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 传送文件, 传送文件, 1) Set node4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 接收文件, 接收文件, 1) Set node4 = frm_mainBefore.TreeView1.Nodes.Add(n4.Index, tvwChild, 已发文件, 已发文件, 1) Set n3 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 交流管理, 交流管理, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 意见箱, 意见箱, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 投票活动, 投票活动, 1) Set node3 = frm_mainBefore.TreeView1.Nodes.Add(n3.Index, tvwChild, 短消息服务, 短消息服务, 1) Set n5 = frm_mainBefore.TreeView1.Nodes.Add(, tvwChild, 系统维护管理, 系统维护管理, 1) Set node5 = frm_mainBefore.TreeView1.Nodes.Add(n5.Index, tvwChild, 人事管理, 人事管理, 1) Set node5 = frm_mainBefore.TreeView1.Nodes.Add(n5.Index, tvwChild, 投票管理, 投票管理, 1) Set node5 = frm_mainBefore.TreeView1.Nodes.Add(n5.Index, tvwChild, 意见箱管理, 意见箱管理, 1) Set node5 = frm_mainBefore.TreeView1.Nodes.Add(n5.Index, tvwChild, 系统设置, 系统设置, 1) End If Unload Me End IfEnd Sub3.3 主界面设计主界面主要包括菜单、树状菜单(TreeView控件实现)、状态栏以及显示OA办公系统的最新新闻和最新通知。界面设计简单明了,为用户提供便捷的访问途径,把一些具有共性的命令集中于一个简单的菜单之下。状态栏将显示系统运行时间、公司信息和操作员信息,其中状态栏上的操作员信息主要通过“系统登录窗体”中“登录操作员”项传递而得到的。主界面运行结果如图4所示。图4 主界面1窗体设计(1)新建1个窗体,将窗体的“名称”属性设置为frm_mainBefore,Caption属性为“OA办公自动化系统”,MaxButton属性为False,设置Picture属性,为窗体添加背景图片。(2)为窗体设计菜单。(3)添加ImageList控件,使用默认名称,该控件属于ActiveX控件,在使用之前必须从“部件”对话框将其添加到工具箱中。添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls 6.0(SP6)”列表项。(4)添加MSHFlexGrid控件,该控件属于ActiveX控件,使用之前必须将MSHFlexGrid控件添加到工具箱中,添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Hierarchical FlexGrid Control 6.0”列表,添加2个MSHFlexGrid控件,名称分别为MSHFlexGrid1和MSHFlexGrid2,二者的属性完全相同,主要设置控件的背景色、前景色及表格颜色,方法为:在控件上单击鼠标右键选择“属性”菜单,弹出“属性页”选择“颜色”选项卡设置控件的相关颜色,如图5所示。图5 设置MSHFlexGrid控件颜色属性(5)添加StatusBar(状态栏)控件,主要用来显示系统操作员信息、系统时间及公司名称和网站。该控件属于ActiveX控件,添加ImageList控件时已经将该控件添加到工具箱中。StatusBar控件的名称为默认名,单击鼠标右键打开“属性页”,为StatusBar控件添加3个窗格,第1个窗格显示系统操作员、第2个窗格显示系统日期、第3个窗格显示公司名称和网址,该控件的属性设置方法在前面的章节中已经详细讲解过了,这里就不做介绍了。2程序代码设计当窗体激活时,将TreeView控件中所有的节点展开。在Form窗体的Activate事件下添加如下代码:Private Sub Form_Activate() For i = 1 To TreeView1.Nodes.Count 展开全部节点 TreeView1.Nodes(i).Expanded = True Next iEnd Sub单击树状菜单中的菜单,根据所选择的菜单显示相应的窗体。在TreeView控件的NodeClick事件下添加代码如下:Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If TreeView1.SelectedItem.Key = 发布通知 Then frmNotice_issue.Show If TreeView1.SelectedItem.Key = 接收通知 Then frmNotice_incept.Show If TreeView1.SelectedItem.Key = 已发通知 Then frmNotice_toVoice.Show If TreeView1.SelectedItem.Key = 新闻发布 Then frmNews_issue.Show If TreeView1.SelectedItem.Key = 接收新闻 Then frmNews_incept.Show If TreeView1.SelectedItem.Key = 已发新闻 Then frmNews_toNews.Show If TreeView1.SelectedItem.Key = 新闻发布 Then frmNews_issue.Show If TreeView1.SelectedItem.Key = 接收新闻 Then frmNews_incept.Show If TreeView1.SelectedItem.Key = 已发新闻 Then frmNews_toNews.Show If TreeView1.SelectedItem.Key = 传送文件 Then frmFile.Show If TreeView1.SelectedItem.Key = 接收文件 Then frmFile_incept.Show If TreeView1.SelectedItem.Key = 已发文件 Then frmFile_toFile.Show If TreeView1.SelectedItem.Key = 意见箱 Then frmAC_idear.Show If TreeView1.SelectedItem.Key = 投票活动 Then frmAC_vote.Show If TreeView1.SelectedItem.Key = 短消息服务 Then frmAC_QQ.Show If TreeView1.SelectedItem.Key = 人事管理 Then frmSys_person.Show If TreeView1.SelectedItem.Key = 投票管理 Then frmSys_vote.Show If TreeView1.SelectedItem.Key = 意见箱管理 Then frmSys_idear.Show If TreeView1.SelectedItem.Key = 系统设置 Then frmSys_sys.ShowEnd Sub在Form窗体的装载过程中,将最新的新闻和通知显示在MSHFlexGrid表格中。Private Sub Form_Load()/设置 NEWS adoNews.ConnectionString = PublicStr adoNews.RecordSource = SELECT news_date,news_text FROM tbOA_news WHERE (news_acceptPerson = & frm_login.Text1 & ) ORDER BY news_date DESC adoNews.Refresh Set MSHFlexGrid2.DataSource = adoNews Call setNewsDataGrid_Caption /设置通知 adoNotice.ConnectionString = PublicStr adoNotice.RecordSource = SELECT notice_date,notice_person,notice_acceptDept,notice_acceptPerson,notice_text FROM tbOA_notice WHERE (notice_acceptPerson = & frm_login.Text1 & ) ORDER BY notice_date DESC adoNotice.Refresh Set MSHFlexGrid1.DataSource = adoNotice Call setNoticeDataGrid_CaptionEnd Sub每隔一分多钟就更新一次最新新闻和最新通知。在Timer控件的Timer事件下添加如下代码:Private Sub Timer1_Timer()/设置 NEWS adoNews.RecordSource = SELECT news_date,news_text FROM tbOA_news WHERE (news_acceptPerson = & Mid(StatusBar1.Panels(1).Text, 6, Len(StatusBar1.Panels(1).Text) - 5) & ) ORDER BY news_date DESC adoNews.Refresh Call setNewsDataGrid_Caption /设置通知adoNotice.RecordSource = SELECT notice_date,notice_person,notice_acceptDept,notice_acceptPerson,notice_text FROM tbOA_notice WHERE (notice_acceptPerson = & Mid(StatusBar1.Panels(1).Text, 6, Len(StatusBar1.Panels(1).Text) - 5) & ) ORDER BY notice_date DESC adoNotice.Refresh Call setNoticeDataGrid_Caption 调用自定义过程End Sub自定义过程setNewsDataGrid_Caption()用来初始化新闻MSHFlexGrid2控件的列标题和表格宽度。Sub setNewsDataGrid_Caption()初始化行序号 For i = 1 To adoNews.Recordset.RecordCount MSHFlexGrid2.TextMatrix(i, 0) = iNext初始化表格标题和列宽 MSHFlexGrid2.TextMatrix(0, 0) = 序号: MSHFlexGrid2.TextMatrix(0, 1) = 发布日期 MSHFlexGrid2.TextMatrix(0, 2) = 新闻内容: MSHFlexGrid2.ColWidth(0) = 400 MSHFlexGrid2.ColWidth(1) = 1000: MSHFlexGrid2.ColWidth(2) = 6700End Sub3.4 新闻管理新闻管理包含3个部分:新闻发布、新闻接收、已发新闻。其中新闻发布用来将新闻发布给某部门中某人;新闻接收用来接收其他职员发布新闻;已发新闻用来浏览将新闻发布给其他职员的新闻。下面笔者分别讲解新闻发布、新闻接收和已发新闻的开发过程。1新闻发布新闻管理窗体的设计结果如图6所示。图6 新闻发布设计图(1)新建1个窗体,设置窗体的“名称”属性为frmNews_issue、Caption属性为“新闻发布”,MaxButton属性为False。(2)在窗体中添加4个Label控件、2个Combo控件、3个ADO控件、2个TextBox控件和2个CommandButton控件。(3)添加DTPicker控件,该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱中。添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls 2.6.0”列表项,添加DTPicker控件后,其名称为默认的DTPicker1。(4)程序代码。新闻发布就是将要发布的新闻按部门、职员和新闻数据存储到tbOA_news数据表中。在【发布新闻】按钮的Click事件下添加如下代码:Private Sub cmdSave_Click() adoNews.Recordset.AddNew adoNews.Recordset.Fields(1).Value = DTPicker1.ValueadoNews.Recordset.Fields(2).Value = Text2.Text adoNews.Recordset.Fields(3).Value = Combo1.Text adoNews.Recordset.Fields(4).Value = Combo2.Text adoNews.Recordset.Fields(5).Value = 0 adoNews.Recordset.Fields(6).Value = Text1.Text adoNews.Recordset.Update MsgBox 通知发布成功!, vbInformationEnd SubForm窗体载入时,主要实现以下功能:(1)建立adoNews控件和adoDept控件数据库连接。(2)为Combo1控件中添加部门名称数据。(3)获取系统操作职员姓名,并通过Text2控件显示出来。(4)使DTPicker1控件显示系统当前日期。Form窗体的Load事件过程中的代码如下:Private Sub Form_Load() adoNews.ConnectionString = PublicStr 建立数据库连接 adoNews.RecordSource = select * from tbOA_news 检索数据表数据 adoNews.Refresh adoDept.ConnectionString = PublicStr adoDept.RecordSource = select * from tbOA_dept adoDept.Refresh For i = 0 To adoDept.Recordset.RecordCount 1 将所有部门名称添加到Combo1中 Combo1.AddItem adoDept.Recordset.Fields(1).Value adoDept.Recordset.MoveNext Next i Text2.Text = Mid(frm_mainBefore.StatusBar1.Panels(1).Text, 6, Len(frm_mainBefore.StatusBar1.Panels(1).Text) - 5) 获取操作员姓名 DTPicker1.Value = Date 显示系统当前日期End Sub在Combo1控件中选择不同的部门,检索该部门的所有员工并将其添加到Combo2控件中。Combo1控件Click事件的代码如下:Private Sub Combo1_Click() Combo2.Clear adoEmployee.ConnectionString = PublicStr adoEmployee.RecordSource = select * from tbOA_employee adoEmployee.Refresh For i = 0 To adoEmployee.Recordset.RecordCount - 1 Combo2.AddItem adoEmployee.Recordset.Fields(1).Value adoEmployee.Recordset.MoveNext Next iEnd Sub2新闻接收新闻接收窗体的设计结果如图7所示。图7 新闻接收设计图(1)新建一个窗体,设置窗体的“名称”属性为frmNews_incept、Caption属性为“新闻接收”、MaxButton属性为False。(2)添加4个ComandButton控件和1个Adodc控件。(3)添加2个DTPicker控件,名称分别为DTPicker1和DTPicker2。(4)添加DataGrid控件,使用默认名称。(5)程序代码。在窗体装载过程中,将adoNews控件查询的数据通过DataGrid控件显示,代码如下:Private Sub Form_Load() adoNews.ConnectionString = PublicStr 建立数据库连接数据库查询(以日期为标准降序 查询) adoNews.RecordSource = select * from tbOA_news where news_acceptPerson= + Mid(frm_mainBefore.StatusBar1.Panels(1).Text, 6, Len(frm_mainBefore.StatusBar1.Panels(1).Text) - 5) + order by news_date desc adoNews.Refresh Set DataGrid1.DataSource = adoNews 将数据源绑定到DataGrid表格中 Call setDataGrid_CaptionEnd Sub通过鼠标选择DataGrid表格中数据,然后单击【删除】按钮,将选中的数据删除,代码如下:Private Sub cmdDel_Click() On Error Resume Next adoNews.Recordset.Delete End Sub在日期输入框输入开始日期和截止日期后,单击【查询】按钮,将在DataGrid控件中显示相应查询结果,代码如下:Private Sub cmdFind_Click()adoNews.ConnectionString = PublicStr adoNews.RecordSource = select * from tbOA_news where news_date between & DTPicker1.Value & and & DTPicker2.Value & and news_acceptPerson= + Mid(frm_mainBefore.StatusBar1.Panels(1).Text, 6, Len(frm_mainBefore.StatusBar1.Panels(1).Text) - 5) + order by news_date desc adoNews.Refresh Set DataGrid1.DataSource = adoNews Call setDataGrid_Caption 调用自定义过程End Sub单击【显示所有新闻】按钮后,显示系统操作职员接收到的所有新闻,代码如下:Private Sub Command1_Click() adoNews.ConnectionString = PublicStr adoNews.RecordSource = select * from tbOA_news where news_acceptPerson= + Mid(frm_mainBefore.StatusBar1.Panels(1).Text, 6, Len(frm_mainBefore.StatusBar1.Panels(1).Text) - 5) + order by news_date desc adoNews.Refresh Set DataGrid1.DataSource = adoNews Call setDataGrid_CaptionEnd Sub由于本系统数据表中的字段都是英文字段,因此将ADO Data控件绑定到DataGrid控件后,DataGrid控件的列标题都为英文字段名称,为方便用户使用,笔者在此建立了setDataGrid_Caption()过程,该过程主要用于设置DataGrid控件的列标题和列宽,代码如下:Sub setDataGrid_Caption() DataGrid1.Columns(0).Caption = 序号 DataGrid1.Columns(1).Caption = 通日期 DataGrid1.Columns(2).Caption = 发布新闻人 DataGrid1.Columns(3).Caption = 接收部门 DataGrid1.Columns(4).Caption = 接收人 DataGrid1.Columns(5).Visible = False DataGrid1.Columns(6).Caption = 新闻内容 DataGrid1.Columns(0).Width = 600 DataGrid1.Columns(1).Width = 1000 DataGrid1.Columns(2).Width = 1000 DataGrid1.Columns(3).Width = 2000 DataGrid1.Columns(4).Width = 1000 DataGrid1.Columns(6).Width = 4000End Sub3已发新闻已发新闻窗体的设计结果如图8所示。图8 已发新闻窗体设计图(1)新建1个窗体,将窗体的“名称”属性设置为frmNews_toNews,设置Caption属性为“已发布新闻”,设置MaxButton属性为False。(2)添加ADO控件,设置“名称”属性为adoNews,设置Visible属性为False;添加DataGrid控件 “名称”属性为默认名称DataGrid1;添加CommandButton控件名称为默认名称、其Caption属性为“退出”。(3)程序代码。在窗体装载过程中,将adoNews控件查询的数据通过DataGrid控件显示,代码如下:Private Sub Form_Load() adoNews.ConnectionString = PublicStr adoNews.RecordSource = select * from tbOA_news where news_person= + Mid(frm_mainBefore.StatusBar1.Panels(1).Text, 6, Len(frm_mainBefore.StatusBar1.Panels(1).Text) - 5) + adoNews.Refresh Set DataGrid1.DataSource = adoNews Call setDataGrid_CaptionEnd Sub此处代码,请参见光盘3.5 传送文件文件传送在OA办公自动化系统中占据很重要的位置,本系统文件传送可以传送多种类型的文件(如EXE,BAT,RAR,FRM,DOC等等)。传送文件窗体的设计结果如图9所示。图9 传送文件窗体设计结果1窗体设计(1)新建1个窗体,设置窗体“名称”属性为frmFile、Caption属性为“文件传送”、MaxButton属性为False。(2)添加2个Combo控件、4个TextBox控件、3个CommandButton控件,其属性设置如图8.21所示。(3)添加2个ADO控件,名称分别为adoDept和adoEmployee,其Visible属性均为False。(4)添加1个DTPicker控件,默认名称为DTPicker1。(5)添加CommonDialog控件,默认名称CommonDialog1。CommonDialog控件为ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱中。添加方法为:在“工程”/“部件”对话框中勾选“Microsoft Common Dialog 6.0”列表项。2程序代码设计在Form窗体装载中,主要实现以下功能:(1)建立adoDept控件数据库连接。(2)为Combo1控件中添加部门名称数据。(3)获取系统操作职员姓名,并通过txtName控件显示出来。(4)使DTPicker1控件显示系统当前日期。在Form窗体的Load事件添加如下代码:Private Sub Form_Lo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Linux系统镜像部署规程
- 2025年整体医学综合性医疗知识与实际操作技能评估选择题模拟卷答案及解析
- 垂直大模型维护操作规定
- 2025年法医学尸体解剖鉴定答案及解析
- 2025年中医药现代医学结合处方设计与用药解析答案及解析
- 农业资源利用与循环经济
- 牛仔裤搭配规程
- 2025年精神科常见心理疾病鉴别诊断试题答案及解析
- 房地产合同管理与风险防控技巧
- 2025年整形美容外科常见手术并发症答案及解析
- 砼回弹强度自动计算表
- 国开2023春《言语交际》形考任务1-6参考答案
- 抽油机井示功图分析判断1
- 机电一体化说专业比赛
- GB/T 39141.3-2022无机和蓝宝石手表玻璃第3部分:定性标准和试验方法
- GB/T 1142-2004套式扩孔钻
- 2022年天津市河东区生态环境系统事业单位招聘笔试试题及答案
- 研究生学术道德与学术规范课件
- 浦发银行个人信用报告异议申请表
- 电镀行业环境执法现场检查要点
- 趣味成语 完整版PPT
评论
0/150
提交评论