




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第10章章 菜单与工具栏设计菜单与工具栏设计 教学目标:教学目标:学会菜单的使用方法。学会菜单的使用方法。教学要求:教学要求:掌握菜单的建立和使用。掌握菜单的建立和使用。教学重点与难点:教学重点与难点:菜单的建立。菜单的建立。10.1 菜单的创建菜单的创建 1、设计原则、设计原则(1)根据用户任务组织菜单系统。)根据用户任务组织菜单系统。(2)给每个菜单和菜单选项设置一个意义明了的标题。)给每个菜单和菜单选项设置一个意义明了的标题。(3)按照估计的菜单项使用频率、逻辑顺序或字母顺)按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项。序组织菜单项。(4)在菜单项的逻辑组之间放置分隔线。)在
2、菜单项的逻辑组之间放置分隔线。(5)给每个菜单和菜单选项设置热键或键盘快捷键。)给每个菜单和菜单选项设置热键或键盘快捷键。(6)将菜单上菜单项的数目限制在一个屏幕之内,如)将菜单上菜单项的数目限制在一个屏幕之内,如果超过了一屏,则应为其中一些菜单项创建子菜单。果超过了一屏,则应为其中一些菜单项创建子菜单。(7)在菜单项中混合使用大小写字母,只有强调时才)在菜单项中混合使用大小写字母,只有强调时才全部使用大写字母。全部使用大写字母。 2、设计步骤、设计步骤(1)菜单系统规划。)菜单系统规划。(2)建立菜单和子菜单。)建立菜单和子菜单。(3)将任务分派到菜单系统中。)将任务分派到菜单系统中。(4)
3、生成菜单程序。)生成菜单程序。(5)测试并运行菜单系统。)测试并运行菜单系统。 10.1.1菜单设计器简介菜单设计器简介 “菜单设计器菜单设计器”是是vfp提供的可视化编程工具。使提供的可视化编程工具。使用用“菜单设计器菜单设计器”可以添加新的菜单选项到可以添加新的菜单选项到vfp的系统菜单中的系统菜单中定制已有的定制已有的vfp系统菜单,也系统菜单,也可以创建一个全新的自定义菜单,以代替可以创建一个全新的自定义菜单,以代替vfp的的系统菜单。系统菜单。 菜单是包含命令、过程和子菜单的选项列表,因菜单是包含命令、过程和子菜单的选项列表,因此,按等级分为父菜单和子菜单,子菜单挂在父此,按等级分为
4、父菜单和子菜单,子菜单挂在父菜单下作为父菜单的一个菜单项。菜单下作为父菜单的一个菜单项。vfp菜单系统是由一个菜单栏、多个菜单项和下菜单系统是由一个菜单栏、多个菜单项和下拉菜单组成。拉菜单组成。 10.1.1菜单设计器简介菜单设计器简介 “菜单设计器菜单设计器”是是vfp提供的可视化编程工具。使提供的可视化编程工具。使用用“菜单设计器菜单设计器”可以添加新的菜单选项到可以添加新的菜单选项到vfp的系统菜单中的系统菜单中定制已有的定制已有的vfp系统菜单,也系统菜单,也可以创建一个全新的自定义菜单,以代替可以创建一个全新的自定义菜单,以代替vfp的的系统菜单。系统菜单。 菜单是包含命令、过程和子
5、菜单的选项列表,因菜单是包含命令、过程和子菜单的选项列表,因此,按等级分为父菜单和子菜单,子菜单挂在父此,按等级分为父菜单和子菜单,子菜单挂在父菜单下作为父菜单的一个菜单项。菜单下作为父菜单的一个菜单项。vfp菜单系统是由一个菜单栏、多个菜单项和下菜单系统是由一个菜单栏、多个菜单项和下拉菜单组成。拉菜单组成。 11.1.2创建下拉式菜单创建下拉式菜单 利用利用“菜单设计器菜单设计器”设计菜单的操作步骤如下:设计菜单的操作步骤如下:1、在、在“项目管理器项目管理器”对话框中,选择对话框中,选择“其他其他”选选项卡,再选择项卡,再选择“菜单菜单”,单击,单击“新建新建”按钮,屏按钮,屏幕显示幕显示
6、“新建菜单新建菜单”对话框。对话框。2、在、在“新建菜单新建菜单”对话框中,单击对话框中,单击“菜单菜单”按钮,按钮,系统进入系统进入“菜单设计器菜单设计器”窗口窗口 。3、在、在“菜单设计器菜单设计器”的的“菜单名称菜单名称”栏中,单击栏中,单击要添加下拉菜单的菜单项,在要添加下拉菜单的菜单项,在“菜单名称菜单名称”列中,列中,输入新建的菜单项名称。输入新建的菜单项名称。4、在、在“结果结果”列中,选定列中,选定“子菜单子菜单”命令。使右命令。使右侧出现侧出现“创建创建”按钮。按钮。5、单击、单击“创建创建”按钮,屏幕显示按钮,屏幕显示“子菜单子菜单”设计设计窗口,在窗口,在“菜单名称菜单名
7、称”列中,输入要创建的各子列中,输入要创建的各子菜单项名称。菜单项名称。 6、在菜单项之间插入分隔线。在、在菜单项之间插入分隔线。在 “菜单名称菜单名称”栏栏中,单击要在之前插入分隔线的菜单项,单击中,单击要在之前插入分隔线的菜单项,单击“插入插入”按钮,增加一个新的菜单项,更改菜单按钮,增加一个新的菜单项,更改菜单名称为名称为“-”,此菜单项在运行或预览时将显示为,此菜单项在运行或预览时将显示为一条分隔线。其它分隔线的插入方法相同。一条分隔线。其它分隔线的插入方法相同。 7、为菜单项指定热键。、为菜单项指定热键。设计良好的菜单都应具有热键,此功能可使用户设计良好的菜单都应具有热键,此功能可使
8、用户通过键盘快速地访问菜单。通过键盘快速地访问菜单。为菜单或菜单项指定热键的方法为:只需在希望为菜单或菜单项指定热键的方法为:只需在希望成为热键的字母左侧输入成为热键的字母左侧输入“”。例如,在。例如,在“菜单菜单名称名称”列中,将列中,将“文件()文件()”菜单使用菜单使用“”作为热键,只需在菜单名称中加入(作为热键,只需在菜单名称中加入(),热),热键在菜单或下拉菜单项上用带下划线的大写字母键在菜单或下拉菜单项上用带下划线的大写字母表示。然后按下表示。然后按下“alt+f”键,即可激活文件菜单键,即可激活文件菜单项目。项目。 8、为菜单项添加快捷键。、为菜单项添加快捷键。 为菜单或菜单项指
9、定键盘快捷键的操作步骤如下:为菜单或菜单项指定键盘快捷键的操作步骤如下:(1)在)在“菜单名称菜单名称”栏中,先择相应的菜单标题栏中,先择相应的菜单标题或菜单项。或菜单项。(2)单击)单击“选项选项”栏下的按钮,屏幕将显示栏下的按钮,屏幕将显示“提提示选项示选项”对话框。对话框。(3)在)在“键标签键标签”框中,按下一组合键,此时在框中,按下一组合键,此时在“键标签键标签”和和“键说明键说明”框中,都会显示所按下框中,都会显示所按下的快捷键。的快捷键。(4)选择)选择“跳过跳过”框,并输入表达式,框,并输入表达式,9、点击、点击“预览预览”按钮,可以查看菜单的运行状态。按钮,可以查看菜单的运行
10、状态。 10、按、按ctrl+w键保存菜单,保存后的菜单文件名的键保存菜单,保存后的菜单文件名的后缀是后缀是.mnx。在菜单的修改状态下可以从系统菜单中选择菜单在菜单的修改状态下可以从系统菜单中选择菜单“菜单菜单”中的中的“生成生成”命令,编译生成菜单的执命令,编译生成菜单的执行文件,执行文件名的后缀是行文件,执行文件名的后缀是.mpr。保存后的菜。保存后的菜单,可以象使用应用程序一样来使用它。单,可以象使用应用程序一样来使用它。例如,在命令窗口中输入菜单的调用命令:例如,在命令窗口中输入菜单的调用命令: do 菜单菜单1.mpr 即可执行菜单。即可执行菜单。 10.1.3 创建快捷菜单创建快
11、捷菜单 设计快捷菜单的操作步骤如下:设计快捷菜单的操作步骤如下:(1)在)在“项目管理器项目管理器”中,选择中,选择“其他其他”选项卡,选项卡,再选择再选择“菜单菜单”。(2)单击)单击“新建新建”按钮按钮,屏幕显示屏幕显示“新建菜单新建菜单”对对话框。话框。(3)在)在“新菜单新菜单”对话框中,单击对话框中,单击“快捷菜单快捷菜单”按钮,系统进入按钮,系统进入“快捷菜单设计器快捷菜单设计器”窗口。窗口。(4)在)在“菜单名称菜单名称”栏中,输入快捷菜单的各个栏中,输入快捷菜单的各个菜单项。菜单项。(5 5)在)在“结果结果”选项中,择选项中,择“过程过程”或或“命令命令”,如果选择如果选择“
12、命令命令”,右侧出现命令文本框,在其,右侧出现命令文本框,在其中输入相应的命令。中输入相应的命令。(6)单击)单击“创建创建”按钮,屏幕显示按钮,屏幕显示“过程过程”代码代码窗口。窗口。(7)在)在“过程过程”代码窗口中,输入过程代码。代码窗口中,输入过程代码。(8)关闭)关闭“过程过程”代码窗口。代码窗口。(9)生成菜单。在)生成菜单。在“菜单菜单”中,选择中,选择“生成生成”命命令,打开令,打开“生成菜单生成菜单”对话框,选择输出文件的对话框,选择输出文件的路径和文件名。路径和文件名。 (10)单击)单击“生成生成”按钮,生成菜单。按钮,生成菜单。(11)编写调用快捷菜单的代码:)编写调用
13、快捷菜单的代码: 在需要调用快捷菜单的对象中编写在需要调用快捷菜单的对象中编写rightclick事事件代码件代码: do菜单菜单1.mpr 10.1.4 运行菜单程序运行菜单程序 定义好了菜单后,还需要为各个菜单指定任务,定义好了菜单后,还需要为各个菜单指定任务,使之与系统和各个功能模块挂起来。选择一个菜使之与系统和各个功能模块挂起来。选择一个菜单或菜单项时,将执行相应的任务。单或菜单项时,将执行相应的任务。 1、指定命令、指定命令为菜单或菜单项指定命令的操作步骤如下:为菜单或菜单项指定命令的操作步骤如下:(1)在)在“菜单名称菜单名称”栏中,选择相应的菜单标题栏中,选择相应的菜单标题或菜单
14、项。或菜单项。(2)在)在“结果结果”栏中,选择栏中,选择“命令命令”。(3)在)在“结果结果”栏右侧的栏右侧的“编辑编辑”框中,输入相框中,输入相应的命令。应的命令。 2、指定过程、指定过程 为菜单或菜单项指定过程的操作步骤如下:为菜单或菜单项指定过程的操作步骤如下:(1)在)在“菜单名称菜单名称”栏中,选择相应的菜单标题栏中,选择相应的菜单标题或菜单项。或菜单项。(2)在)在“结果结果”栏中,选择栏中,选择“过程过程”。“创建创建”按钮出现在列表的右侧。如果已定义了一个过程,按钮出现在列表的右侧。如果已定义了一个过程,则这里出现的是则这里出现的是“编辑编辑”按钮。按钮。(3)单击)单击“创
15、建创建”或或“编辑编辑”按钮,屏幕显示按钮,屏幕显示“编辑过程编辑过程”窗口。窗口。(4)在窗口中,输入要执行的代码。)在窗口中,输入要执行的代码。 下拉菜单的运行一般设置在主程序中,快捷菜单下拉菜单的运行一般设置在主程序中,快捷菜单则在相应表单或控件的则在相应表单或控件的rightclick中调用。调用中调用。调用代码同执行一个程序文件相同,使用代码同执行一个程序文件相同,使用do命令。命令。例如:例如:do 菜单文件名菜单文件名.mpr完整代码如下:完整代码如下:do 菜单文件名菜单文件名.mprread events 10.2 用类设计器定义工具栏类用类设计器定义工具栏类 1、单击、单击
16、“文件文件”菜单中的菜单中的“新建新建”命令,打开命令,打开“新建新建”对话框。对话框。2、选中、选中“文件类型文件类型”中的中的“类类”,单击,单击“新建文新建文件件”按钮,打开按钮,打开“新建类新建类”对话框。对话框。3、在、在“类名类名”框中,键入新类的名称框中,键入新类的名称mytoolbar。 4、从、从“派生于派生于”框中,选择框中,选择“toolbar”,以使用工,以使用工具栏基类。或者单击按钮,选择其他工具栏类。具栏基类。或者单击按钮,选择其他工具栏类。5、在、在“存储于存储于”框中,键入类库名框中,键入类库名sditbar,保存,保存创建的新类。或者单击按钮选择一个已有的类库
17、。创建的新类。或者单击按钮选择一个已有的类库。单击单击“确定确定”按钮,关闭对话框,并打开按钮,关闭对话框,并打开“类设类设计器计器”。6、在新建的工具栏类中添加命令按钮控件和分隔、在新建的工具栏类中添加命令按钮控件和分隔符控件符控件separator1。 7、为新建的工具栏类设置属性、为新建的工具栏类设置属性 对于工具栏内的按钮控件,有以下常用属性:对于工具栏内的按钮控件,有以下常用属性:width属性:可以设置对象的大小。属性:可以设置对象的大小。picture属性:指定对象上的图标。属性:指定对象上的图标。disabledpicture属性:指定按钮处于非激活状态属性:指定按钮处于非激活
18、状态时的图标。时的图标。downpicture属性:指定在按钮被按下时显示的属性:指定在按钮被按下时显示的图标。图标。tooltiptext属性:指定当鼠标移到按钮上方时所属性:指定当鼠标移到按钮上方时所显示的提示信息。显示的提示信息。对于工具栏,有以下常用属性、方法和事件:对于工具栏,有以下常用属性、方法和事件:caption属性:指定工具栏的标题。属性:指定工具栏的标题。controlbox属性:指定工具栏在运行时刻是否包属性:指定工具栏在运行时刻是否包含控制菜单框。含控制菜单框。moveable属性:指定在运行时刻用户是否可以移属性:指定在运行时刻用户是否可以移动工具栏。动工具栏。nam
19、e属性:指定工具栏的名称。属性:指定工具栏的名称。showtips属性:确定是否显示工具栏中控制的属性:确定是否显示工具栏中控制的提示。提示。sizeable属性:指定在运行时用户是否可以调整属性:指定在运行时用户是否可以调整工具栏的大小。工具栏的大小。 dock方法:沿着方法:沿着 vfp 主窗口的边界停放主窗口的边界停放“工具工具栏栏”对象。对象。语法:语法:toolbar.dock nlocation , x, yl参数:参数:nlocation:指定工具栏停放的位置。:指定工具栏停放的位置。 lx, y:指定工具栏停放位置的水平坐标和垂直:指定工具栏停放位置的水平坐标和垂直坐标。坐标。
20、 afterdock事件:指定在控制工具栏停放后发生事件:指定在控制工具栏停放后发生的动作。的动作。beforedock事件:指定在控制工具栏停放前发事件:指定在控制工具栏停放前发生的动作。生的动作。 8、将工具栏加到自己的程序中、将工具栏加到自己的程序中(1)利用表单设计器)利用表单设计器首先将所建的工具栏类加到自己的项目中。打开首先将所建的工具栏类加到自己的项目中。打开要使用此工具栏的表单集,在要使用此工具栏的表单集,在“表单控制表单控制”工具工具栏中单击栏中单击“查看类查看类”,在列表中单击,在列表中单击“添加添加”,选择工具栏类,然后再次单击选择工具栏类,然后再次单击“查看类查看类”,
21、从显,从显示的列表中选择该工具栏类。从示的列表中选择该工具栏类。从“控制控制”工具栏工具栏中选择工具栏类,在表单上单击添加此工具栏,中选择工具栏类,在表单上单击添加此工具栏,然后将其拖动到适当的位置。然后将其拖动到适当的位置。第第11章章 应用程序开发应用程序开发 教学目标:教学目标:学会应用程序的开发。学会应用程序的开发。教学要求:教学要求:掌握应用程序的开发。掌握应用程序的开发。教学重点与难点:教学重点与难点:应用程序的开发。应用程序的开发。11.1 开发应用程序的基本步骤开发应用程序的基本步骤 1、需求分析阶段:开发数据库系统首先要明确、需求分析阶段:开发数据库系统首先要明确用户的各项需
22、求,以确定系统实现的目标和软件用户的各项需求,以确定系统实现的目标和软件开发的构思。开发的构思。2、设计阶段:对系统开发进行总体规划,建立、设计阶段:对系统开发进行总体规划,建立软件系统的结构。它包括数据库设计和系统功能软件系统的结构。它包括数据库设计和系统功能模块设计。模块设计。3 3、实施阶段实施阶段:用某个数据库管理系统来具体实现:用某个数据库管理系统来具体实现所做的设计方案。所做的设计方案。4 4、测试阶段测试阶段。5 5、运行维护阶段:系统通过测试后即可投入运行,、运行维护阶段:系统通过测试后即可投入运行,并在运行过程中不断修改、调整和完善。并在运行过程中不断修改、调整和完善。3、实
23、施阶段、实施阶段此阶段一般包含下面五部分。此阶段一般包含下面五部分。 l(1)数据库设计)数据库设计 操作管理数据库里面的数据操作管理数据库里面的数据是系统的核心目标。是系统的核心目标。l(2)菜单设计)菜单设计 用于组织应用程序的各项功能。用于组织应用程序的各项功能。l(3)界面设计)界面设计 用于控制数据的输入和输出。用于控制数据的输入和输出。l(4)功能模块设计)功能模块设计 用于完成具体的数据处理用于完成具体的数据处理功能,如数据的录入、修改和编辑,信息的查功能,如数据的录入、修改和编辑,信息的查询与统计等,一般通过控件的事件来实现。询与统计等,一般通过控件的事件来实现。l(5)调试程
24、序)调试程序 当一个程序完成后,应该进行当一个程序完成后,应该进行调试,找出程序中的各种错误。调试,找出程序中的各种错误。 4、测试阶段、测试阶段此阶段的任务有以下几项此阶段的任务有以下几项l(1)验证应用程序是否在不同条件下都能得)验证应用程序是否在不同条件下都能得到正确的结果。到正确的结果。l(2)检查系统是否完全满足用户的需求,在)检查系统是否完全满足用户的需求,在功能上是否还有遗漏。功能上是否还有遗漏。l(3)检验在程序运行过程中对可能遇到的问)检验在程序运行过程中对可能遇到的问题是否都有相应的解决措施,确保系统正式投题是否都有相应的解决措施,确保系统正式投入使用时的安全性和可靠性。入
25、使用时的安全性和可靠性。 11.2 应用程序的优化应用程序的优化1、优化表和索引、优化表和索引2、使用、使用rushmore 技术加速数据访问技术加速数据访问3、优化表单和控件、优化表单和控件4、提高、提高vfp程序性能的一般技巧程序性能的一般技巧 1、优化表和索引、优化表和索引(1)如果没有启用记录或表缓冲,应该使用)如果没有启用记录或表缓冲,应该使用insert-sql命令;命令;(2)当需要将大量记录追加到索引过的表中时,)当需要将大量记录追加到索引过的表中时,应先取消或关闭索引,在数据追加完毕,再重建应先取消或关闭索引,在数据追加完毕,再重建索引;索引;(3)在)在sql语句中要尽量避
26、免函数调用;语句中要尽量避免函数调用;(4)如果需要经常使用某种索引顺序,应周期性)如果需要经常使用某种索引顺序,应周期性使用此索引对表进行排序,提高表的性能;使用此索引对表进行排序,提高表的性能;(5)在多用户环境中,使用)在多用户环境中,使用cdx 索引文件比索引文件比 idx 索引文件快。索引文件快。 2、使用、使用rushmore 技术加速数据访问技术加速数据访问使用使用 rushmore 技术可以显著地提高查询的速度。技术可以显著地提高查询的速度。rushmore 是一种从表中快速地选取记录集的技是一种从表中快速地选取记录集的技术,它可将查询响应时间从数小时或数分钟降低术,它可将查询
27、响应时间从数小时或数分钟降低到数秒。访问单表时,使用到数秒。访问单表时,使用 for 子句,访问多子句,访问多表时,使用表时,使用select-sql 查询,可自动隐含地使查询,可自动隐含地使用该技术。用该技术。(1)访问单个表中的数据,使用一个)访问单个表中的数据,使用一个for子句;子句;(2)访问多个表中的数据,使用)访问多个表中的数据,使用select-sql、delete-sql、update-sql命令。命令。 3、优化表单和控件、优化表单和控件 (1)使用数据环境;)使用数据环境;(2)在表单集里限制表单数目;)在表单集里限制表单数目;(3)在页框中动态加载页面控件;)在页框中动
28、态加载页面控件;(4)动态绑定控件与数据;)动态绑定控件与数据;(5)当必须对屏幕进行多处更改时,延迟屏幕刷)当必须对屏幕进行多处更改时,延迟屏幕刷新;新;(6)在经常使用的方法程序中减少代码。)在经常使用的方法程序中减少代码。 4、提高、提高vfp程序性能的一般技巧程序性能的一般技巧 (1)数据要选择正确的数据类型)数据要选择正确的数据类型(2)避免重复打开文件,需要打开多个文件时,)避免重复打开文件,需要打开多个文件时,将它们分配给不同的工作区,需要时使用将它们分配给不同的工作区,需要时使用select命令选择工作区;命令选择工作区;(3)尽量使用)尽量使用forendfor循环,而不要使
29、用循环,而不要使用do whileenddo循环,因为循环,因为for循环较快;循环较快;(4)从多个字段复制数据时,用)从多个字段复制数据时,用scatter to array 比用比用scatter memver快;快;(5)为了有效的使用内存,避免在需要对象之前)为了有效的使用内存,避免在需要对象之前就创建它们,当不要该对象时应及时清除它;就创建它们,当不要该对象时应及时清除它;(6)尽量将输出发送到顶层窗口,速度快些;)尽量将输出发送到顶层窗口,速度快些;(7)使用)使用set talk off命令取消状态显示,可命令取消状态显示,可节省屏幕顶端更新时间;节省屏幕顶端更新时间;(8)将
30、)将set dohistory 设置为设置为off,避免当运,避免当运行程序时每次都更新命令窗口;行程序时每次都更新命令窗口;(9)使用名称表达式代替宏替换,因为名称表达)使用名称表达式代替宏替换,因为名称表达式更快;式更快;(10)有效地引用对象属性。)有效地引用对象属性。l优化对属性的重复引用,可将属性值保存到一个优化对属性的重复引用,可将属性值保存到一个变量中,再进行更改,在完成时一次性的设置属变量中,再进行更改,在完成时一次性的设置属性。性。l有效地引用多个属性,可以用有效地引用多个属性,可以用withendwith命令避免重复查找同一个对象,或将对象的引用命令避免重复查找同一个对象,或将对象的引用保存在变量中。保存在变量中。 11.3 程序开发实例程序开发实例 11.3.1系统总体设计系统总体设计 11.3.2系统数据库设计系统数据库设计 11.3.3系统功能模块设计系统功能模块设计 11.3.4系统实施系统实施 11.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区与医院签订合同协议
- 汽油发电机购买合同范本
- 浙江网上申请就业协议书
- 终止车辆承包合同协议书
- 高校县中托管帮扶协议书
- 法律合同解除协议书范本
- 私人财产转移协议书范本
- 瓷砖店铺转让合同协议书
- 社区矫正基地服务协议书
- 洁净室车间出租合同范本
- 艾梅乙防治知识培训课件
- 机动链锯操作规程
- 2025年中小学班主任基本功大赛笔试试题题库(附答案)
- 兼职中医师聘用合同范本
- 渣土运输方案
- 2025-2030中国包装印刷行业现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 高职大学生心里健康教育(第2版)-课程思政案例(结合知识点)
- 2025年大学食堂食材采购协议
- Drager呼吸机使用指南
- 办公用品、易耗品供货服务方案投标方案文件
- 餐厨垃圾处理可行性研究报告
评论
0/150
提交评论