下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、管理信息系统实验指导 实验2 eos 入门与进阶 目的 和要求 1 了解eos集成工作环境; 2 了解eos简单开发流程; 3 在eos中实现数据库连接; 4 在eos中实现对数据库的操纵。 背景知识 常用术语介绍 l 业务逻辑 由开始节点、结束节点、运算逻辑和连线等组成的、能够完成一定功能的、通过eos开发环境开发的多个运算逻辑的图形化逻辑流程。业务逻辑通过调用运算逻辑(如查询数据),将处理后的数据返回给展现逻辑。业务逻辑还可以调用其它的业务逻辑,这种被业务逻辑所调用的业务逻辑叫子业务逻辑。基本的业务逻辑如图2.0-1所表示: 图2.0-1 基本的业务逻辑 l 展现逻辑 由开始节点、结束节点
2、、业务逻辑节点(表示被调用的业务逻辑,是可选节点)、页面节点和连线等组成的、最终生成用户界面的图形化描述的逻辑流程。展现逻辑不能调用运算逻辑,而只能通过调用业务逻辑完成业务功能(如查询数据),业务逻辑返回数据后,展现逻辑调用页面逻辑生成用户界面。基本的展现逻辑如图2.0-2所示: 开始节点 运算逻辑 结束节点 连线 开始节点 连线 业务逻辑 页面逻辑 结束节点 图2.0-2 基本的展现逻辑 l 页面逻辑 也即jsp页面。主要用于生成用户界面,基本由html、jsp tag、css和客户端javascript等语言代码组成。 l 数据逻辑 用于完成数据模型定义的相关描述文件称为数据逻辑。数据逻辑
3、包括数据实体、数据树和查询类型数据实体三种类型。 1、 数据实体:用于表示数据库物理的表、视图等的定义。对于表类型的数据实体,可以进行查询、增加、修改和删除的操作;对视图类型的数据实体,只能进行查询操作。 2、 数据树:用来表达 eos 数据总线结构,节点由数据实体和普通节点两种,数据实体可以直接把已建好的数据实体托拽过来。 3、 查询类型数据实体:顾名思义,就是用于查询的数据实体,是eos 数据总线的一种数据格式,功能相当与数据库中的视图,但是不需要在数据库中建视图,一般用于多表联合查询操作。 l 运算逻辑 又叫bl方法,基于java代码实现,用于完成特定的计算处理任务。eos构件库提供基础
4、的运算逻辑如数据查询、xml节点操作、日期时间操作、字符串操作等。 l 连线 连接两图元之间的、用于表示程序执行方向的连线。当一个程序流程出现多条线路时,用户必须在连线上设置相应的条件以决定程序的流向。 l s eos 构件 包括业务构件、展现构件、页面构件、数据构件、运算构件、工作流构件等六种构件,每一种构件都包括一个或多个相应的逻辑(如业务构件包括一个或多个业务逻辑)。 l s eos 构件包 由以上六种构件(或者其中的几种)组成,是eos系统发布、复用的基本单位,它由一组相关的eos构件组成,能够完成相对独立、完整的业务功能。eos构件包中可以包含一个或多个的eos构件,它相当于一组有关
5、系的构件的容器或命名空间(namespace)。同一个构件包的构件不能重名。eos平台对构件的调用也是首先通过包名来定位构件所在的包。 l 业务流程 工作流的图形化描述,用于完成某个包含人工和自动的业务活动流程的构件,是通过eos开发环境开发的工作流的图形化描述。 l 数据字典 l 业务字典 内容和步骤 1. eos 开发入门 出自c语言教程中的"hello world!'已经成了所有计算机语言入门教程的经典案例,尽管eos不是计算机语言,在开始介绍eos产品的机制和原理前,还是通过这个经典案例,让我们开始eos的最初体验,以便建立对eos最基本的感性认识,在此基础上我们将一
6、起了解基于eos产品进行应用系统开发的有关概念、常识以及运行原理。 1.1. d hello world 案例开发 1.1.1. 案例描述 和其他标准的j2ee应用相似,本案例要完成的工作就是:利用业务逻辑获取信息(或者说生成信息"hello world!'),然后将这些信息在jsp中展示给用户。 在本案例的过程中,需要关注的是操作的过程以及过程中所遇到的各个名词或概念,并请将所有疑问带入到后面章节对eos开发相关原理机制的描述中。 1.1.2." "hello world !'开发步骤 在这个例子里我们将利用业务逻辑设置"hello w
7、orld!'信息,并通过jsp将这些信息显示在用户界面上。 . 启动 eos studio 通过"开始-程序-primeton eos 5-eos studio 5.1'启动eos开发的ide环境。启动后,点击欢迎页右上角图标,进入到eos studio的工作区(以后启动会自动进入到工作区界面)。 . 创建项目eostriping 1) 进入 eos studio开发透视图; 单击主菜单项"文件'选择"新建'-"空eos项目',如图2.1-1所示。 图2.1-1 创建项目 2) 在弹出的
8、"创建空 eos项目'视图中,配置相关参数。"项目名称':eostriping,如图 2.1-2 所示。 图2.1-2 项目属性对话框 3) 单击【完成】按钮,系统完成该项目框架的创建后退出。创建结果如图 2.1-3所示: 1 、输入 eostriping 2 、点击【完成】按钮 点击此处切换透视图 图2.1-3 完成项目创建 【说明】新建项目时,缺省会建立一个pkg的构件包,你可以通过鼠标右键删除这个构件包。 . 创建构件包 1) 在项目资源管理器视图中,单击展开"eostriping'项目的右键菜单,选择"新建&
9、#39;- "eos构件包',如图 2.1-4 所示。 图2.1-4 创建构件包 2) 在弹出的"创建构件包'视图中,设置相关参数。如图 2.1-5 所示: 图2.1-5 创建构件包 3) 构件包名称:helloworld,点击【完成】按钮,结束创建构件包向导。 . 创建业务逻辑 1) 在"项目资源管理器视图'中,展开 "eostripingàhelloworldàbiz'构件,在"biz' 构件上点击右键,选择上下文菜单"新建à业务逻辑',如
10、图 2.1-6所示: 点击【完成】按钮 输入构件包名称 图2.1-6 创建业务逻辑 2) 在弹出的"创建业务逻辑'对话筐中的"文件名'项中输入"bizhelloworld',点击完成按钮结束创建业务逻辑向导,如图 2.1-7 所示: 图2.1-7 创建业务逻辑对话框 创建"bizhelloworld'业务逻辑之后,在studio的"业务逻辑编辑器'会自动将刚刚创建的业务逻辑打开。 3) 展开"项目资源管理器'视图中的"引用构件包àfcdomàbnnode.c
11、lass',选中"bl_setnodevaluebatch'运算逻辑,按住鼠标左键,将该运算逻辑拖拽到"bizhelloworld'编辑区中,如图 2.1-8 所示: 点击【完成】按钮 入 输入 bizhelloworld 图2.1-8 引用构件包结构 4) 利用鼠标点选业务逻辑编辑区上"选用板'中的"连接线'工具,点击"开始'图元,然后点击"bl_setnodevaluebatch'图元将"开始'图元和"bl_setnodevaluebatch
12、9;图元连接起来。利用相同的方法,将"bl_setnodevaluebatch'图元和结束图元连接起来,最终的业务逻辑如图 2.1-9 所示: 图2.1-9 业务逻辑编辑器 5) 双击"bl_setnodevaluebatch'运算逻辑图元,在弹出的"属性设置'对话框中,点击"参数定义'标签页面,输入如图 2.1-10 所示参数:参数 1 节点类型为 eos field,节点路径为"show/info'(用户可自定义),参数 2 节点类型为常量,节点值为"hello world!'(该操
13、作表示将"hello world!'设置到 show/info 节点下) 连接线工具 连接线 图2.1-10 运算逻辑参数设置对话框 6) 双击业务逻辑编辑器中的"开始'图元,在弹出的"属性设置'对话框中,点击"接口定义'标签页,输入如图 2.1-11 所示的参数:参数 1 节点类型为 eos entity(此处也可以设置为 eos field),节点路径为 show,表示将设置的 show/info信息输出到调用本业务逻辑的逻辑数据区中。 3 、点击【确定】按钮 1 、输入 show/info 2 、输入 hello w
14、orld! 图2.1-11 业务逻辑接口设置对话框 7) 点击工具栏中的"保存'按钮或者使用快捷键"ctrl+s'键保存业务逻辑。 . 创建 jsp 页面 1) 在"项目资源管理器视图'中,展开 "eostripingàhelloworldàpage'构件,在"page' 构件上点击右键,选择上下文菜单"新建àjsp 页面',studio 启动页面向导,在弹出的"页面生成向导'对话框中,输入如图 2.1-12 所示参数,点击【
15、完成】按钮结束创建页面对话框: 1 、点击【插入】按钮 2 、输入 show 3 、点击【完成】按钮 图2.1-12 创建页面对话框 点击【完成】按钮以后,studio会提示"要切换到 eos页面开发 透视图吗?',点击【是】按钮进入页面开发视图。 2) 在页面开发视图的页面编辑器中,输入如下 jsp 代码: % include file=/internet/common.jsp% html body div align=center brfont color=red size=20 bean:write property=show/info/ /font /div /bod
16、y /html 3) 点击工具栏"保存'按钮或者使用快捷键"ctrl+s'保存 jsp 页面。 点击【完成】按钮 选择独立页面风格 入 输入 helloworld . 创建展现逻辑 1) 创建展现逻辑的步骤和创建业务逻辑的步骤基本一致。在"项目资源管理器视图'中,展开 "eostripingàhelloworldàpr'构件,在"pr' 构件上点击右键,选择上下文菜单"新建à展现逻辑'。再弹出的"创建展现逻辑'对话框中的&qu
17、ot;文件名'项中输入"prhelloworld',点击【完成】按钮。 2) 将刚刚创建的业务逻辑"bizhelloworld'和页面"helloworld.jsp'托拽到展现逻辑编辑器中,点选"选用板'中的"连接线'工具,采用和创建业务逻辑时的方法,依次将"开始'、"bizhelloworld'、"helloworld.jsp'和"结束'图元连接起来,如图 2.1-13所示: 图2.1-13 展现逻辑编辑器 3) 保存刚刚创
18、建的展现逻辑。 . 编译部署 1) 保存刚创建编辑的所有文件; 2) 点击快捷图标 选择将运行的项目"eostriping',启动服务器,如图2.1-14、15 所示。 图2.1-14 图2.1-15 启动server . 运行 1) 服务器正常启动后,打开 ie浏览器 。 2) 在 ie浏览器地址栏输入:http:/localhost:8080/;用系统管理员 sysadmin,密码 000000(或者安装时修改的密码)登陆,进入到主界面,如图 2.1-17 所示 。 图2.1-17 登录后主页面 3) 更改地址栏为: http:/localho
19、st:8080/helloworld.pr.prhelloworld.do(注意路径书写方式和大小写),回车;若该项目正常运行,将显示页面如图2.1-18所示。 图2.1-18 运行结果 1.1.3. 案例小结 至此,helloworld例子开发完成,你一只脚也迈入了奇妙的eos开发大门,让我们一起继续eos开发之旅。根据以上小例子,我们已经对在eos studio的开发方式有了一个初步的认识,可以看出使用eos studio进行开发的基本开发流程为: 1) 创建项目:指定项目名称、项目用的 eos server和 web应用目录。 2) 创建构件包:制定构件包名,以目录形式,组织各种构件和逻
20、辑的存放,便于studio 管理,各种构件的名称是可以修改的。 3) 创建业务逻辑:编写逻辑代码,调用运算逻辑(bl 方法)将输入数据进行处理,完成业务逻辑,并将处理结果返回给展现逻辑。 4) 创建 jsp 页面:eos 应用的用户界面,利用 jsp tag 将 requestcontext 数据区中的信息显示给用户。 5) 创建展现逻辑:控制程序流程的执行,调用业务逻辑获得处理后的信息,然后调用页面逻辑将这些信息返回给用户。 6) 编译部署:项目菜单栏中构选了自动构建,保存即编译,部署是调试或运行时 eos server 会自动进行热部署。 7) 运行案例:在 ie 地址栏中输入"
21、构件包名称.展现构件名.展现逻辑文件名.do'形式的 url(url 的大小写要与 studio 中"构件包名称.展现构件名.展现逻辑文件名'的大小写完全一致),即可完成对 eos 应用的调用。 2. eos 开发进阶 通过前面章节的描述,我们对利用eos studio开发j2ee应用的步骤有了个大致的了解,也对eos的原理概念有了一定认识,于是产生了以下几个疑问: 1、 真正的应用不象"hello world!'这么简单,该如何开发一个典型的数据库应用? 2、 应用运行过程中,数据是怎么传递的,图形化逻辑中设置的参数与最终运行时数据的传递是什么关系
22、? 3、 在 eos 中,提供了什么方便快捷的手段,来提高应用开发的效率? 4、 eos 提供的向导有何特点? 5、 通过 eos studio 开发的 j2ee 应用,是如何打包部署的,又是如何实现应用的分布式处理的呢? 带着这些问题,本章节将与您一道,基于eos开发一个简单的小型数据库应用。并在开发过程中,对运行原理和数据传递方式作深入的讲解。 2.1. 开发案例描述 Ø 案例的基本需求 在数据库中存在一个客户资料表,希望通过eos实现一个简单的客户资料维护的功能,能够进行客户资料的查询、增加、修改、删除。 在查询功能中,以客户姓名、性别、出生日期范围作为查询条件,其中客户姓名为
23、模糊查询,性别为完全匹配查询且通过下拉列表选取查询条件,查询结果要求分页处理。 应用开发完成后将其发布部署到另外的应用服务器中。 Ø 客户资料表 cust的表结构 字段名称 数据类型 数据长度 是否主键 备 注 c_id char 10 yes 客户编号 c_name nvarchar 20 no 客户姓名 c_sex char 1 no 1-男,2-女,3-未知 c_birthday date 8 no 出生日期 c_tel1 nvarchar 15 no 联系电话1 c_tel2 nvarchar 15 联系电话2 c_addr nvarchar 50 no 联系地址 c_typ
24、 char 1 no iinsured被保人ppolicy owner投保人 注意:为了方便eos提供的向导处理,数据库表必须定义主键字段,因为通过eos的数据实体修改、删除数据是根据主键来做为匹配条件的。 2.2. 开发步骤 2.2.1. 准备数据 Ø 在实验一中,已创建保险数据库 insurance,现将其用户导入 eos数据库 Ø 打开 sql server2021,选中数据库 insurance,点击右键选择"所有任务'"导出数据',显示如 2.2-1所示界面; Ø 点击"下一步',将目的数据库由&qu
25、ot;默认'改为"eos',如 2.2-2 所示,点击"下一步'; Ø 选择"从源数据库复制表和视图', 点击"下一步',显示如 2.2-3所示界面; Ø 点击"全选',选中 insurance 数据库中的全部用户表,然后点击"下一步',完成将 insurance中的表导入 eos 数据库中。 Ø 最后点击"完成'。 图2.2-1 图2.2-2 图2.2-3 2.2.2. 建立数据库连接 1 参照图2.2-4,在屏幕右上方的&quo
26、t;引用构件包'、"数据库连接'与"组织机构与角色'三个选项卡中选择"数据库连接',即点中"数'。 2 点击"数据库连接'连接窗口下的"新建'按钮。 3 输入如图2.2-5所示的参数,数据库的用户名与密码请咨询实验教师。 4 点击"测试连接',显示成功后,点击"确定'。 5 连接成功后,可如图2.2-6一样点击察看数据库的相关信息。 图2.2-4 数据库连接 图2.2-5 数据库连接配置参数 1、此处选择数据库连接窗口,点击"新建
27、39;。 2、输入数据连接的配置信息,测试连接成功后,点击确定。 图2.2-6 2.2.3. 创建构件包 1、 在原有的项目"eostriping'上点击右键,选择上下文菜单"新建àeos 构件包'。 2、 在弹出的"创建构件包'对话框中,输入如图 2.2-7所示参数: 新建的数据库连接会显示在列表中,双击连接名称,将列出所有的数据库用户双击连接配置对应的用户名,将列出所有数据库表和视图 双击某个表或视图,将列出所有字段信息 图2.2-7 创建构件包向导 2.2.4. 导入数据实体 1、 在"data'构件上点击
28、右键,选择上下文菜单"新建à导入数据实体',如下图: 入 输入 custmgr 不选择后三项 项 点击【完成】按钮 2、 在弹出的"导入数据定义'对话框中,选择 2.2.2 节建立的数据库连接,将会列出对应用户下的表和视图,选择刚刚导入的表"in_customer',点击【完成】按钮。如果刚刚创建的表不在可选列表中,说明 studio 的数据库配置不正确,可点击"配置'按钮重新配置数据库。如图 2.2-8所示: 图2.2-8 导入数据实体向导 3、 studio 将自动打开刚刚导入的数据实体文件 in_custo
29、mer.ent(也可通过双击"eostripingàdataàin_customer'打开),在数据实体编辑器中,点击"field'标签页,然后选择某映射字段编辑相应字段属性,如图 2.2-9所示: 3 、点击【完成】按钮 点击这里可配置新连接 2 、选择需要导入到构件包的表 1 、选择数据库连接 图2.2-9 数据实体编辑器 各字段对应web页面参数表如下: 字段名称 显示名称 显示格式 默认值 业务字典 js 数据类型 c_id 客户编号 无 无 无 数字 c_name 客户姓名 无 无 无 无 c_sex 性别 无 无 bndict
30、_gender 无 c_tel1 联系电话1 无 无 无 电话号码 c_tel2 联系电话2 无 无 无 电话号码 c_addr 联系地址 无 无 无 无 c_birthday 出生日期 yyyy-mm-dd 无 无 日期 4、 保存对数据实体修改。 名称解释: 数据实体:用于描述数据库表结构的文件,其中不仅包括各字段的数据类型、长度、是否组件等信息的,而且包括利用向导生成业务功能时所需要的信息如显示名称、数据类型(主要用于提交表单时候验证数据的有效性)。在eos中,对数据库的各种操作都是通过这种映射的方式完成的。 业务字典:类似于通常的码表,一个代码对应一个描述,并且对这些代码进行了分类。例
31、如:性别类数据字典包括1男性、2女性;学历类业务字典1小学、2初中、3高中、4大专等等。eos中提供了业务字典的管理,用户可以通过自定义业务代码和业务代码的描述来扩充业务字典信息。 选择相应字段,设置在 字段在 web 页面的显示属性 2.2.5. 功能生成向导 对于案例描述的各个功能,一般的做法需要为每个功能去开发对应的页面(jsp)、业务处理逻辑和展现逻辑,由于本案例属于典型的信息维护功能,eos针对此类通用的功能处理要求,设计了一套方便快捷功能强大的开发向导,让开发人员不需要编写任何java代码、展现逻辑、业务运算逻辑和jsp页面逻辑等,而是根据向导一步步的提示,通过简单的设置就可以一次
32、生成针对数据库中某一张表的查询、增加、修改、删除等功能的所有逻辑或代码文件。 那么,对于本案例的功能,将采用功能向导进行生成,以下是具体的操作过程: 1、 在刚刚创建的"custmgr'构件包上点击右键,选择上下文中的"新建à单表维护向导'。如下图: 图2.2.5-1 2、 在"选择项目中的数据实体'项中选择刚刚导入并修改了 web 属性的数据实体"in_customer',点击【下一步】按钮。 图2.2.5-2 3、 这一步骤主要是生成查询条件输入页面的配置信息。点击"查询条件字段列表'下的【
33、添加】按钮增加查询条件输入域。该对话框主要设置查询条件输入页面的显示方式等信息。如图 2.2.5-3所示: 图2.2.5-3 "增加条件字段'页面属性对话框 首先选择查询条件的字段名称,然后设置对应该条件字段的其他属性。 其他参数项说明如下: 显示名称:用于查询条件输入元素前面的提示信息。如果在导入数据实体后修改了数据实体的web属性,显示名称将自动填充,否则请在这里手动填充。 只读:是否只是用于页面显示而不能输入。 可以为空:是否允许该条件为空。选择"是',用户不输入内容的情况下,提交页面表单(form)时不将该字段作为查询条件;选择"否'
34、;,如果用户不输入任何内容,则会弹出提示窗口要求输入。 默认值:页面表单(form)元素默认的输入值。 控件类型:用于输入条件表单(form)元素类型,只能是文本框和下拉框中的一种。 校验数据类型:用于页面表单(form)提交时js校验数据的有效性,如果校验不通过,不允许提交form。提供的常用校验类型包括:数字、英文字符串、日期时间、邮件地址、身份证、ip地址、电话号码等 日期时间格式:当校验类型为"日期'或者"时间'格式时有效,指定输入的日期时间格式。 1 、 点 击 " 添加',设置条件字段2 、选择作为查询条件的字段 3 、设置条件
35、属性 4 、点击"确定',保存一个条件项 字段匹配方式 长度:允许的最大输入字节长度,默认值和数据库定义相等。 精度:当校验类型为"带长度和精读的数字'格式时有效,和长度配合使用。 操作符:指定查询条件的匹配关系,包括"等于(=)',"大于()',"小于()',"大于等于(=)',"小于等于(=)',"不等于(!=)',在之间(between,适用于数字、日期类型等),模糊匹配(like,使用于字符类型) 模糊查询规则:当操作符为"like&
36、#39;时有效。 业务字典:查询条件的输入是否来自于业务字典。如果是,则需要选择相应的业务字典码,同时"输入控件类型'只能是下拉框控件。 下拉框数据设置:查询条件输入控件是下拉框单不是业务字典,而是来自于一个查询结果集,则需要将结果集的数据加入下拉框中。具体参数设置将在稍后的代码精解中讲解。 在本例中,将利用客户姓名、性别作为查询条件,输入的参数如图2.2.5-4和图2.2.5-5所示: 图2.2.5-4 "客户姓名'条件参数 配方式:like 模糊规则:中间匹配点击【确定】按钮 来自于实体文件,也可手动输入 图2.2.5-5 "性别'条件
37、参数 4、 如果对查询条件的参数设置不满意,可双击"查询条件字段列表'中的字段名称修改参数。完成两查询条件的参数设置后,回到查询向导主窗口,设置其他参数后点击【下一步】按钮,本例中的参数设置如图 2.2.5-6所示: 匹配方式:= 数据来自业务字典 选择业务字典类别 不 输 入 性 别时,表示无限制点击【确定】按钮 图2.2.5-6 查询条件参数 5、 对于查询结果列表不需要显示表的主键,因此去掉"c_id'字段前面的勾;对于增加或者修改功能,要求客户姓名必须输入,双击"插入/修改(dataform)字段列表'中的"c_name'字段,将"可以为空'的属性值改为"否',参数设置分别如图 2.2.5-7和图 2.2.5-8所示: 点击【下一步】按钮查询结果集是否分页 设置排序字段排序方式 计算记录数和总页数 选择排序字段并点击增加 图2.2.5-7 查询结果集参数 选项" 更新时忽略数据中的空值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人研修心得感悟
- 会计电算化专业求职信范文
- 亚运会心得体会
- 中职学校开学典礼教导主任精彩讲话稿(5篇)
- 个人情绪管理心得体会范文(19篇)
- 动物聚餐课件教学课件
- 探究天然植物制备酸碱指示剂及其pH范围
- 慢性支气管炎临床路径
- 学校教职工代表大会规定
- 航空航天用1100MPa MJ螺纹花键头螺栓 征求意见稿
- 《认识隶书(一)》名师课件
- 食堂醇基燃料应急预案
- 结构设计通用规范(住建部2023年颁布)
- 2023学年完整公开课版时行程问题
- 性格测试98题-最符合和最不符合答案
- 交通运输系统安全生产治本攻坚三年行动方案
- 《平衡計分卡》课件
- 机场运行职业生涯规划书
- 超声科发展规划方案
- 文化与艺术行业2024年人力资源管理与制度优化
- 2024年半导体技术行业培训资料
评论
0/150
提交评论