1 / 235

项目 4 设计制作工资管理系统

项目 4 设计制作工资管理系统. 4.1 熟悉相关知识 4.2 掌握数据库技术 4.3 创建安装程序 4.4 工资管理系统分析与设计 4.5 自主设计. 本项目训练的目的. 初步掌握多文档界面( MDI )设计、菜单、工具条、状态栏设计; 能够正确使用外部控件; 熟悉数据绑定控件、数据环境、数据报表、访问 Access 等数据库技术; 了解 SQL Server 数据库的建立与访问; 了解创建安装程序的基本步骤; 掌握工资管理系统的编程思路与设计技巧。. 任务 4.1 熟悉相关知识. 4.1.1 多文档界面( MDI )设计.

euclid
Download Presentation

项目 4 设计制作工资管理系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 项目4 设计制作工资管理系统 4.1 熟悉相关知识 4.2 掌握数据库技术 4.3 创建安装程序 4.4 工资管理系统分析与设计 4.5 自主设计

  2. 本项目训练的目的 初步掌握多文档界面(MDI)设计、菜单、工具条、状态栏设计; 能够正确使用外部控件; 熟悉数据绑定控件、数据环境、数据报表、访问Access等数据库技术; 了解SQL Server数据库的建立与访问; 了解创建安装程序的基本步骤; 掌握工资管理系统的编程思路与设计技巧。

  3. 任务4.1 熟悉相关知识 4.1.1 多文档界面(MDI)设计 Windows 的应用程序的用户界面样式一般分为单文档界面(SDI - Single Document Interface) 与多文档界面(MDI - Multiple Document Interface)。多文档应用程序允许用户同时显示多个文档窗口,为多个打开的文档提供工作空间的窗体叫做主窗体,也称其为MDI窗体。

  4. 4.1.1 多文档界面(MDI)设计 MDI窗体可作为应用程序背景的窗口,也是子窗体(MDIChild 属性设置为True 的窗体)的容器。在工程菜单中选择“添加MDI 窗体”就可以创建MDI窗体,一个应用程序只能有一个MDI窗体,但是可以有多个MDI 子窗体。如果MDI 子窗体有菜单,那么,当MDI 子窗体为活动窗体时,子窗体的菜单条自动取代MDI窗体的菜单条。最小化的MDI 子窗体以图标形式出现在MDI窗体中。

  5. 4.1.1 多文档界面(MDI)设计 1.MDI窗体的Arrange方法 格式:<MDIForm名>.Arrange<参数> 功能:使打开的子窗体按一定的规律排列。 说明:参数为0-3(0-层叠1-水平平铺2-垂直平铺3-排列图标)。 2.QueryUnload事件 在关闭窗体或结束应用程序的运行时所发生

  6. 4.1.1 多文档界面(MDI)设计 的事件是QueryUnload事件。当一个MDI窗体被关闭时,首先在MDI窗体上发生QueryUnload事件,然后所有的子窗体上都会发生这一事件。若是每个窗体QueryUnload事件都没有被取消的话,将先卸载所有的子窗体,再卸载MDI窗体。在QueryUnload事件中将参数Cancel设置为真,会阻止关闭。

  7. 4.1.1 多文档界面(MDI)设计 【例4.1】Arrange方法与QueryUnload事件应用。 • 运行结果 • 程序代码

  8. 4.1.2 菜单设计 菜单一般分为下拉式和弹出式两种: 1)下拉式菜单:由主菜单和几级下拉式的子菜单组成,显示在窗体的标题栏下面,在菜单栏中显示菜单标题。 2)弹出式菜单:弹出式菜单是显示在窗体之上,独立于菜单栏的浮动式菜单。通常是通过单击鼠标右键激活。 1.菜单编辑器 使用菜单编辑器可以为应用程序创建自定义菜单并定义其属性。右击窗体从弹出菜单中选择“菜单编辑器”或单击工具栏上的“菜单编辑器”按钮可以打开“菜单编辑器”对话框。

  9. 4.1.2 菜单设计 菜单控件是一个对象;与其它对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption 属性、Enabled 和Visible 属性、Checked 属性以及其它属性。 菜单控件只包含一个事件,即Click 事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。

  10. 4.1.2 菜单设计 2.菜单编辑器对话框选项 标题:使用该选项可以输入菜单名或命令名,这些名字出现在菜单条或菜单之中。如果想在菜单中建立分割条,则应在Caption 框中键入一个连字符(-)。为了能够通过键盘访问菜单项,可在一个字母前插入& 符号。在运行时,该字母带有下划线(& 符号是不可见的),按 ALT 键和该字母就可访问菜单或命令。如果要在菜单中显示& 符号,则应在标题中连续输入两个& 符号。有些菜单单击

  11. 4.1.2 菜单设计 菜单项显示一个对话框,即要求用户提供应用程序执行动作所需信息的窗口。应该在这些菜单项后面加上省略符(...)。例如,当从“文件”菜单中选择“另存为”时,出现“文件另存为”对话框。 名称:允许为菜单项输入控件名。控件名是标识符,仅用于访问代码中的菜单项。 索引:可指定一个数字值来确定控件在控件数组中的位置。 快捷键:允许为每个命令选定快捷键。

  12. 4.1.2 菜单设计 帮助上下文ID:允许为context ID 指定唯一数值。在HelpFile 属性指定的帮助文件中用该数值查找适当的帮助主题。 协调位置:允许选择菜单的NegotiatePosition 属性。该属性决定是否及如何在容器窗体中显示菜单。 复选:允许在菜单项的左边设置复选标记。通常用它来指出切换选项的开关状态。 有效:决定是否让菜单项对事件做出响应。

  13. 4.1.2 菜单设计 可视:将菜单项显示在菜单上。 显示窗口列表:在MDI 应用程序中,确定菜单控件是否包含一个打开的MDI子窗体列表。 箭头:调整菜单项的位置。 插入:在当前选定行上方插入一行。 删除:删除当前选定行。 确定:关闭菜单编辑器,并对选定的最后一个窗体进行修改。

  14. 4.1.2 菜单设计 3.弹出式菜单 任何至少有一个菜单项的菜单,运行时都可以显示为弹出式菜单。弹出式菜单一般用鼠标右键激活。使用PopupMenu 方法可显示弹出式菜单,直到菜单中被选取一项或者取消这个菜单时,调用PopupMenu 方法后面的代码才会运行。 格式:[object.]PopupMenu menuname [, flags [,x [, y [, boldcommand ]]]] 说明:Flags 参数可以进一步定义弹出式菜单的位置与性能。

  15. 4.1.2 菜单设计 【例4.2】弹出式菜单示例。 使用MouseUp 事件判断用户是否在窗体上单击了鼠标右键,若是则弹出菜单。 Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then ' 是否单击了鼠标右键。 PopupMenu mnuname '弹出名为mnuname的菜单。 End If End Sub

  16. 4.1.2 菜单设计 4.MDI 应用程序中的菜单 在MDI 应用程序中,每一个子窗体的菜单都显示在MDI 窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的MDI 窗体的菜单。如果没有可见的子窗体,或者如果带有焦点的子窗体没有菜单,则显示MDI 窗体的菜单。 5.创建菜单控件数组 菜单控件数组就是具有相同名称不同下标的

  17. 4.1.2 菜单设计 菜单项目的集合。使用菜单控件数组可以简化代码也可以在运行时创建新菜单项。 每个菜单控件数组元素都由唯一的索引值来标识,该值在菜单编辑器上“Index 属性框”中指定。当一个控件数组成员识别一个事件时,Visual Basic 将其Index 属性值作为一个附加的参数传递给事件过程。事件过程必须包含有核对Index 属性值的代码,因而可以判断出正在使用的是哪一个菜单控件。

  18. 4.1.2 菜单设计 注意:菜单控件数组的各元素在菜单控件列表框中必须是连续的,而且必须在同一缩进级上。创建菜单控件数组时,要把在菜单中出现的分隔符条也包括进去。

  19. 4.1.2 菜单设计 【例4.3】MDI窗体应用。 • 运行结果 • 程序代码

  20. 4.1.3 工具栏设计 1.ImageList 控件 添加部件“Microsoft Windows Common Controls 6.0” ImageList 控件的作用象图像的储藏室,ImageList 控件包含ListImage 对象的集合,该集合中的每个对象都可以通过其索引或关键字被引用。ImageList 控件不能独立使用,只是作为一个便于向其它控件提供图像的资料中心,它需要第二个

  21. 4.1.3 工具栏设计 控件显示所储存的图像。第二个控件可以是任何能显示图像Picture 对象的控件,也可以是特别设计的、用于绑定ImageList 控件的Windows 通用控件之一。这些控件包括ListView、ToolBar、TabStrip、Header、ImageCombo、和TreeView 控件。为了与这些控件一同使用ImageList,必须通过一个适当的属性将特定的ImageList控件绑定到第二个控件。

  22. 1.ImageList 控件

  23. 4.1.3 工具栏设计 运行时可以用ImageList 属性指定一个ImageList 控件,如下面的例子为Toolbar1控件的第5个按钮设置图片,假定ImageList1控件第4个图的Key 值为“i4”:Me.Toolbar1.ImageList = Me.ImageList1 '指定ImageList 属性 Me.Toolbar1.Buttons(5).Image = “i4” ‘按钮取图的顺序随意,只与Key值有关。

  24. 4.1.3 工具栏设计 注意:ImageList 控件与Windows 通用控件一起使用时,一旦ImageList 被绑定到第二个控件 ,就不能再删除图像了,并且也不能将图像插入到ListImages 集合中间。但是可以在集合的末尾添加图像;将图像赋值给Picture 对象时,必须使用Set 语句。 2.Toolbar 控件 Toolbar 控件与ImageList 控件是一组ActiveX 控件的一部分,放在MSCOMCTL.OCX 文件中,

  25. 4.1.3 工具栏设计 部件加载“Microsoft Windows Common Controls 6.0”。 Toolbar 控件包含一个Button 对象集合,该对象被用来创建与应用程序相关联的工具栏。可用Image 属性为Button 对象加一幅图像,用Caption 属性显示文本。在设计时可右击Toolbar 控件,使用Toolbar 控件属性页的“通用”选项卡,在“图像列表”处选择与之绑定的ImageList图像对象,在属性页的“按钮”选项卡将Button 对象添加到控件中。

  26. 4.1.3 工具栏设计

  27. 4.1.3 工具栏设计 在运行时可用Add 和Remove 方法添加按钮或从Buttons 集合中删除按钮。为了给Toolbar 编程,将代码添加到ButtonClick 事件中,以便对已选定的按钮做出反应。 使用Style 属性(值0-5)确定每个Button 对象的状态和外观。如2-ButtonGroup(按钮组)样式,则在任何时候只能按下一个按钮;

  28. 4.1.3 工具栏设计 4-PlaceHolder(占位符) 样式,在工具栏上为其它控件创建空间,如为将下拉组合框放置在工具栏上,用PlaceHolder 样式添加一个Button 对象,并调整其大小使之与ComboBox 控件一样宽,然后将ComboBox 控件放置在定位符上。 将 ShowTips 属性设置为True时,可使用ToolTipText属性显示工具提示。

  29. 4.1.3 工具栏设计 【例4.4】使用ImageList 控件与Toolbar 控件设计制作工具栏。 • 运行结果 • 程序代码

  30. 4.1.4 状态栏设计 部件加载: Microsoft Windows Common Controls6.0 StatusBar 控件由若干个窗格组成,通常位于父窗体的底部,为应用程序显示各种状态数据。 StatusBar 最多能被分成16 个 窗格(Panel 对象),这些对象包含在Panels 集合中。在设计时,属性页“通用”选项卡中的样式能设置单窗格或

  31. 4.1.4 状态栏设计 多窗格,属性页“窗格”选项卡中设置的值能建立面板并定制它们的外观,每一个Panel 对象能包含文本或图片,属性宽度(Width)、文本和图片的对齐方式(Alignment)、斜面(Bevel)可控制个别面板的外观,使用 样式(Style)属性七个值中的一个自动地显示公共数据,如日期、时间和键盘状态等,如图4-10所示。

  32. 4.1.4 状态栏设计

  33. 4.1.4 状态栏设计 【例4.5】在运行时,改变StatusBar 控件窗格的状态。 • 运行结果 • 程序代码

  34. 4.1.5 Slider 、ProgressBar 控件 部件加载:Microsoft Windows Common Controls6.0 1.Slider 控件 Slider 控件是包含滑块和刻度标记的窗口。可以通过拖动滑块,用鼠标单击滑块的任意一侧或者使用键盘移动滑块。可以使用Orientation属性水平或者垂直地放置Slider 控件。

  35. 4.1.5 Slider 、ProgressBar 控件 2.ProgressBar 控件 ProgressBar 控件的行程代表该操作的整个持续时间,当前位置则代表应用程序在完成该操作过程时的进度。Max 和Min 属性设置了行程的界限。Value 属性则指明了在行程范围内的当前位置。由于使用方块来填充控件,因此所填充的数量只能是接近于Value 属性的当前设置值。可以用ProgressBar 控件的Align 属性把它自动定位在窗体的顶部或底部。

  36. 4.1.5 Slider 、ProgressBar 控件 【例4.6】使用Slider 控件改变标签的背景颜色,用ProgressBar 控件演示安装进度。 • 运行结果 • 程序代码

  37. 4.1.6 TabStrip、SSTab 控件 1.TabStrip控件 部件加载: Microsoft Windows Common Controls6.0 TabStrip 控件就像笔记本的书签或者一组文件夹的标签一样。通过使用TabStrip 控件,可以在应用程序中为某个窗口或者对话框的相同区域定义多个页面。 该控件由Tabs集合中的一个或者多个Tab

  38. 4.1.6 TabStrip、SSTab 控件 对象组成。在设计时和运行时都可以添加或删除选项卡,通过设置该控件的属性改变Tab 对象外观。 Style 属性决定了TabStrip 控件看起来像下压按钮还是像笔记本标签 。在设计时将一个TabStrip 控件放在某个窗体上时,它就有了一个笔记本标签。 MultiRow 属性决定了该控件能否具有多于一行的选项卡,TabWidthStyle 属性决定了每一行的外观,如果TabWidthStyle 属性被设置为tabFixed,则

  39. 4.1.6 TabStrip、SSTab 控件 可以用TabFixedHeight 和TabFixedWidth 属性来给TabStrip 控件中的所有选项卡设置相同的高度和宽度。 TabStrip 控件不是容器。要想包含实际页面和它们的对象,必须用Frame 控件或者其它容器,如果针对该容器使用了一个控件数组,则可以使特定的Tab 对象与数组中的每一项相关联。

  40. 4.1.6 TabStrip、SSTab 控件

  41. 4.1.6 TabStrip、SSTab 控件 2.SSTab 控件 部件加载:“Microsoft Tabbed Dialog Controls6.0 ”。 SSTab 控件提供了一组选项卡,每个选项卡都可作为其它控件的容器。在控件中,同一时刻只有一个选项卡是活动的,这个选项卡向用户显示它本身所包含的控件而隐藏其它选项卡中的控件。

  42. 4.1.6 TabStrip、SSTab 控件 SSTab 控件就像笔记本中的分割线或一组文件夹上的标签一样。用SSTab 控件,可以在应用程序中为某个窗口或对话框的相同区域定义多个页面。用这个控件的属性可以决定选项卡的数目、把选项卡组织到多于一行中、为每一个选项卡设置文本、决定所用选项卡的样式等。设计时,使用属性页改变SSTab 控件的外观,如图4-14所示。

  43. 4.1.6 TabStrip、SSTab 控件

  44. 【例4.7】TabStrip、SSTab 控件示例,运行界面如图4-15所示。 • 程序代码

  45. 4.1.7 TreeView 控件 部件加载: Microsoft Windows Common Controls6.0 TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。 通过设置TreeView 控件属性与调用方法对各Node 对象进行添加、删除、对齐和其它操作。

  46. 4.1.7 TreeView 控件 可以编程展开与折回Node 对象来显示或隐藏所有子节点。Collapse(折回)、Expand(展开) 和NodeClick(单击) 三个事件提供编程功能。 Node 对象使用Root、Parent、Child、FirstSibling、Next、Previous 和LastSibling 属性。在代码中可通过检索对Node 对象的引用,从而在树上定位。

  47. 4.1.7 TreeView 控件 控件的外观有八种可用的替换样式,它们是文本、位图、直线和+/- 号的组合,Node 对象可以任一种组合出现。 TreeView 控件使用由ImageList 属性指定的ImageList 控件,来存储显示于Node 对象的位图和图标。

  48. 【例4.8】TreeView 控件示例。 在窗体上添加ImageList、TreeView与两个Frame 控件,为框架控件添加标签与文本框,单击姓名,文本框中显示出该人的其它信息。 • 程序代码

  49. 4.1.8 ListView 控件 部件加载: Microsoft Windows Common Controls6.0 ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 ListView 控件包括ListItem 和ColumnHeader 对象。ListItem 对象定义ListView 控件中项目的各种特性,如项目的简要描述、由ImageList 控件

  50. 4.1.8 ListView 控件 提供的与项目一起出现的图标、附加的文本片段,称作子项目,它们与显示在报表视图中的ListItem 对象关联。 1.Icons、SmallIcons 属性 Icons、SmallIcons 属性返回或设置与ListView 控件中图标视图和小图标视图关联的ImageList 控件。 ListView 控件中的每个ListItem 对象也都具有Icon 和SmallIcon 属性,它们索引ListImage

More Related