版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oralce之APEX开发指南OracleERPAPEX开发指南Author: 刘俊杰CreationDate: createdate\@"MMMMd,yyyy"April10,2014LastUpdated: savedate\@"MMMMd,yyyy"June3,2014DocumentRef: <DocumentReferenceNumber>Version: 1.0Approvals:<Approver1><Approver2> DocumentControlChangeRecordSECTIONDateAuthorVersionChangeReferenceCREATEDATE\@"d-MMM-yy"10-Apr-13Junjie.liu1.0NoPreviousDocumentReviewersNamePositionDistributionCopyNo.NameLocationNoteToHolders:Ifyoureceiveanelectroniccopyofthisdocumentandprintitout,pleasewriteyournameontheequivalentofthecoverpage,fordocumentcontrolpurposes.Ifyoureceiveahardcopyofthisdocument,pleasewriteyournameonthefrontcover,fordocumentcontrolpurposes.ContentsPAGE10DocumentControl ii1. APEX之系统探究 21.1. APEX简介 21.2. 环境搭建 31.3. APEX账户管理 61.4. 待定 82. APEX–开发 92.1. 开发概要 92.2. 页面布局、美化 102.3. APEX控件 132.4. Report常用增删改 162.5. 文件上传下载 192.6. 使用CSS与JS 252.7. 图表、报表 282.8. ApplicationExpressFreePlugins 352.9. APEX部署 373. APEX之调试、常用技巧、API 394. APEX–EBS集成 404.1. EBS中配置APEX页面调用 405. Reference 436. OpenandClosedIssuesforthisDeliverable 44OpenIssues 44ClosedIssues 44APEX之系统探究APEX简介概述OracleApplicationExpress是基于Web浏览器的网络即时开发、部署、运行。OracleApplicationExpress所有页面都是存储于数据库,类似于EBS的Form个性化。OracleApplicationExpress具有易用性、灵活性及Web的安全性、集成性、可伸缩。体系结构ApplicationExpress使用用户计算机上的Web浏览器通过Web监听程序与Oracle数据库通信。开发,部署或运行时不需要浏览器之外的任何其他客户机软件。ApplicationExpress页使用浏览器中的HTML来呈现。页请求和提交发送到Oracle数据库中的ApplicationExpress引擎。运行环境浏览器要求Web浏览器必须支持Java脚本和HTML4.0和CSS1.0标准。OracleApplicationExpress建议使用以下浏览器进行开发或查看应用程序:微软InternetExplorer7.0或更高版本MozillaFirefox3.6或更高版本谷歌Chrome4.0或更高版本苹果Safari4.0或更高版本数据库及HTTP服务器要求OracleDatabase11grelease1or2,自带pl/sql网关配置比较简单,能够直接提供HTTP服务器的功能。OracleDatabase10g,必须使用mod_plsql插件或是OracleApplicationExpress监听器来连接专业的HTTP服务器。运行机制ApplicationExpress完全驻留在Oracle的数据库中,它是由存储在数据表中的数据和大量的pl/sql对象组成.对于客户浏览器发送的URL请求解析成pl/sql调用,数据库处理pl/sql调用,并将结果以HTML形式返回浏览器(sys.htp.p)。每个页面的结果都在新的会话中,因此当ApplicationExpress引擎处理或者呈现一个页面的时候才会消耗数据库资源ApplicationExpress引擎包括:异步会话状态管理认证服务授权服务页面流控制验证处理页面渲染和处理学习基础SQL、PL/SQL基础(必须)HTML基础深入开发的时候对html,javascript,css还是蛮重要的。环境搭建环境准备操作系统、数据库、安装文件我这边使用的是RedHat4.2.1+Oracle11g+Vmware8.0安装文件使用最新的Apex_4.2.5.zip可在网上下载安装方式可以采用嵌入式SQL网关来监听或使用APEXListener基于Apatch的mod_plsql来安装。本文使用嵌入式SQL风关来安装。安装OK后当需要关闭虚拟机时把虚拟机的状态置为挂起状态,这样下次再打开时就不需要再重新去配置参数。下面的安装都是使用系统的DB用户操作安装有问题可联系作者jjl.soft@OracleApplicationExpress安装stepbystep由于oracle11g自带Apex3.0,因此在本次安装的时候我们首先要卸载掉3.0版本上一步全部运行OK后,在apex目录下执行rm–rf*.*创建一个TableSpace:Apex01,CREATETABLESPACEapex01DATAFILE'/d01/oracle/[SID]/db/apps_st/data/apex01.dbf'SIZE100MAUTOEXTENDONNEXT100MMAXSIZE1000M;把之前下载的Apex4.2.5安装文件上传至$ORACLE_HOME下,然后解压至/apex目录下开始安装更改Admin用户,并解锁APEX_PUBLIC_USER,其中Admin用户密码要设置得比较复杂,必须包含大写、小写字母+特殊的符号+数字ALTERUSERANONYMOUSACCOUNTUNLOCK;上述步骤全部OK后,可选安装中文语言配置嵌入式pl/sql网关GrantconnectprivilegestoanyhostfortheAPEX_040200databaseuser更改参数值以上全部OK后,APEX安装完成,可通过http://server:8888/apex/apex_admin来管理,若出现HTTP404错误后,请执行如下命令,若没开则把它启起来成功后则可访问访URLhttp://server:8888/apexhttp://server:8888/apex/apex_admin安装到此,貌似都解决了,打开管理员网址,输入用户名、密码:ADMIN/….后发现无法通过登录授权认证,怎么解决呢?难道密码不对,于是再次更改ADMIN的密码,重启数据库,发现问题依旧,这样排除了ADMIN密码不对的可能,APEX授权的登录连接只有APEX_04002,这个也是没有问题的,也就是说本次的安装都是OK的,毕竟系统都启起来了,这时候联想到是不是这个授权验证是否还走的是之前的3.0版本的校验,执行了如下这段SQL发现确实还存在之前3.0版本的遗留用户,果断的把这些用户全部drop掉。后面不小心把APEX_04002也drop了,因此只好又重装,重装后一切OK。Dropuser……cascade;APEX账户管理APEX账户关系图ADMINADMIN是OracleApplicationExpress的超级管理员ADMIN可以创建、删除、修改WorkSpace及Workspace的管理员
创建一个WorkSpace名为jjl,Schema为oracleebs的apps,同时创建该workspace的管理员名为jjl
WorkSpace的Admin,Developer,AppEndUser使用刚创建好的WorkSpace【jjl】以管理员jjl登录登录之后为该workspace创建开发用户与app最终用户后续就可以用使用developer登录workspace【jjl】进行开发待定待定APEX–开发开发概要理解WorkSpace、ApplicationWorkSpace:工作空间,一个WorkSpace对应Oracle数据库的一个Schema,形象的理解我们可以认为它就是一个工程,这个工程里面有很多的子项目Application.在与EBS的集成开发中,我们认为每个Application可以类似于EBS中的一个Form,该Form里包含多个窗口.本文有些截图是基于OracleApplicationExpress4.2.5版本。在APEX中的页面布局、各种OBJECT的属性控制都是可以通过配置来解决的,对于这种声明式的开发(不需要编译)它需要的是少量的Coding,主要是偏向于pl/sal编程.OracleApplicationExpress可以创建DatabaseApplications,WebsheetApplications,PackagedApplication本文对应的开发都是DatabaseApplication.Application授权登录机制每个Application都可以为其设置安全认证,创建Application的时候会让你三选一。后期创建好后我们是可以对其登录机制进行修改。具体的APEX自带的授权登录机制有7种。在目前的开发中我们可以选择ApplicationExpressAccounts与HTTPHeaderVariable.前者必须输入APEX用户名密码才可登录,后者Page0Page0是该Application的一个全局页,比如某些全局变量,全局常量都可以在该页去设置,为了方便管理我们把不同类型的变量放在不同的区域,这些区域是不显示在界面上的类似于HTML的HIDDEN.待定页面布局、美化ApplicationExpress提供了20个主题。每个主题由定义应用程序外观的组件模板组成。OracleApplicationExpress4.0提供的这些现代化主题都符合XHTML和CSS标准。XHTML页面可移植性更强、呈现时间更短。在项目上开发的使用的是APEX4.1.1版本,在网页布局这块比较郁闷,创建Region的Column属性是在某个Body内是全局的,在APEX4.2.5版本中,就变得相当的Easy,可以对子子….区域的重新布局,其子子区域都会有对应的GridLayout可以配置。页面区域展现APEX的页面在选定主题后,其页面的布局与CSS基本上已确定,基本上符合DIV+CSS来布局,然后把某几个常用的DIV【Body1、Body2、Body3、Postion1、Position2、Position3、Position4】放开给Developer开发使用。其中Body区域在HTML中是以<TABLE></TABLE>展现,Position区域在HTML中是以<DIV></DIV>展现其中我们常用的区域为红色标记的区域。实例创建区域的布局如图:如何实现以上布局呢?在这里首先还是得明白HTML中的基本元素<TABLE><TR><TD></TD></TR></TABLE>及这些元素附带的一些属性.上图相信对TABLE能一目了然了。那这些HTML的标签是如何对应APEX中的配置呢?请看下图来自APEX的GridLayout的配置StartNewGrid:意为着当前的Object是否采用新的网格布局,即是否采用一个新的<TABLE>展现,不基于上一个<TABLE>的布局展现(比如可以重新定义列数,…)StartNewRow:意为着当前的Object是否换行显示,即<TR></TR>展现Column:意为着当前的Object是在该<TABLE>的当前行的第几列<TD></TD>展现.那么像上面布局图中的Search3的区域布局配置为:Newsearch1的区域布局配置为:Newsearch3的区域布局配置为:同理要实现更复杂的布局基于上述原则也是实现起来比较简单的。配配就OK了标题待定APEX控件APEX作为一个强大的快速开发工具,当然少不了一些常用的控件,下拉框Commbox,值列表Lov,文本框Text,日历DataPick,报表Report,…。这些控件的基本使用可参考我们知道控件都是可以有很多属性、事件、校验、DynamicAction。其中DynamicAction是可以做很多操作的,比较重要的是执行pl/sql时类似于Ajax的无刷新控件属性:FormElementWidth:控件的宽度Horizontal/VerticalAlignment:控件的显示位置还有Label显示位置。ValueRequired:是否必输入。ConditionType:控件显示的条件,只有满足了才显示。ReadOnlyConditionType,:控件只读的条件,只有满足了才只读。Defaultvalue:设置控件的默认值。FormatMask:控件值的格式掩码事件:事件定义也是有属性可配置的:ConditionType:执行事件的前提条件TrueActions:事件发生后,对应控件的校验条件为真时执行的动作。FalseActions:事件发生后,对应控件的校验条件为假时执行的动作。WHENCondition:事件发生后,执行相应的动作的判断条件。校验属性:WhenButtonPressed:触发校验的ButtonConditionType:触发校验的前提条件ConditionExpression:校验表达式Validation:执行相应的校验Errormessagedisplaylocation:错误信息显示方式AssociatedItem:错误信息关联到指定的Object下面做个具体的实例使用这些属性、事件、校验点击Button:Search2Btn时校验X_Text1值是否为空,满足校验的前提条件是jjl_test表中存在记录user_id=’123’;当页面加载完,DatePick:Datainit值赋值为当前日期当X_text2值不为空时,Region:newsearch2隐藏,否则显示最终效果图:StepByStep操作创建一个页面命名为Page2Pl/sqlapps登录创建table:jjl_test(user_idvarchar2(50),resp_idvarchar2(50),resp_appl_idvarchar2(50),login_namevarchar2(50),login_countnumber,login_datedate);insertintojjl_testvalues(‘123’,’’,’’,’’,’’);在Page2中创建六个htmlregion,对应的ParentRegionn选择PageTemplateBody(1)Search1,search2,search3属于同一个TABLE,属性Column依次为1,2,2.属性StartNewGrid依次为Yes,No,No.属性StartNewRow依次为Yes,No,Yes.NewSearch1,newsearch2,newsearch3属于同一个TABLE,属性Column依次为1,2,3.属性StartNewGrid依次为Yes,No,No.属性StartNewRow依次为Yes,No,No.在search1中创建TextField:P1_X_TEXT,P2_X_TEXT,search2中创建Button:SEARCH2_BTN,search3中创建DatePick:DATA,newsearch2中创建子区域:newsearch_subpage1,new_search3_subpage2,new_search3_subpage3,属于同一个TABLE,属性Column依次为1,2,1.属性StartNewGrid依次为Yes,No,No.属性StartNewRow依次为Yes,No,YesP1_X_TEXT鼠标右键创建相应的Validation:Name:X_TEXT1ISNOTNULLWhenButtonPressed:SEARCH2_BTN.ConditionType:Exists(SQLqueryreturnsatleastonerow)ConditionExpression1:select1fromjjl_testjtwherejt.user_id=’123’;ValidationType:FunctionReturningBooleanValidatoinExpression:beginif:P1_X_TEXTisnotnullthenreturntrue;endif;returnfalse;end;Errormessage:X_TEXT1can’tbenull;P2_X_TEXT鼠标右键创建相应的DynamicActions:Name:Dynamic_action1;ConditonType:Always;WhenEvent:ChangeWhenSelectionType:Item(s)WhenItem(s):P2_X_TEXTWhenCondition:isnotnullTrueActions:HideRegion(newsearch2)FalseActions:ShowRegion(newsearch2);创建PageLoad型的DynamicActionName:page_load_set_date;ConditionType:DynamicActoinNotconditionalWhenEvent:PageLoadWhenConditionNoConditionTrueActions:SetValueSetValue/Settings/SetType:SQLStatementSetValue/Settings/SQLStatement:selectsysdatefromdual;SetValue/AffectedElements/SelectionType:Item(s)SetValue/AffectedElements/Item(s):DATAReport常用增删改通常在APEX中对于记录的增删改是通过链接到新的页面去实现单条数据的更改。本节主要介绍如何在一个TabularForm中不链接实现多行数据的增删改和客户化逻辑。APEX的TablularForm开发类似于EBSForm开发,也是基于视图去开发。下面实例开发一个Form,当更改用户的class_name与login_name时,更新用户的login_name,然后在另一张表校验class_name是否存在,若不存在报错,若存在则把当前勾选的记录插入另一张表jjl_test3数据库中先创建APEX页面的TabularForm的View,同时创建一个APEX页面并创建TabularFormcreatetablejjl_class(class_idnumber,class_namevarchar2(50));createorreplaceviewjjl_class_test2asSELECTjt.user_id,jt.resp_id,jt.resp_appl_id,jt.login_name,jc.class_nameFROMjjl_test2jt,jjl_classjcWHEREjc.class_id=jt.class_id;配置页面TabularForm数据源创建一个RegionButton:ApplyChange为ApplyChange创建Process:运行效果如图:当class_name不存在于jjl_class表中时当输入的classname存在时,运行的效果与结果如图:把BBB更改为DDD点击ApplyChange后文件上传下载真是麻雀虽小,五脏俱全,上传下载在Apex里的实现是非常easy.下面的例子实现文件上至数据库--Createtable1、createtableJJL_FILE(idNUMBER,file_nmaeVARCHAR2(50),file_memetypeVARCHAR2(50),file_blobBLOB,file_commentsVARCHAR2(200),file_charsetVARCHAR2(20),last_update_dateDATE)2、创建Page:updownloadfile,在该page中创建html区域:uploadfile由于数据文件是上传至数据库表,需要在页面上传文件之前,可以在加载完head后去表里FetchRowfromjjl_file,然后在页面上创建相应的hidden项与表jjl_file中相字段相应。就像在pl/sql中要往表里插一行记录时,可以先定义该表的Rowtype类型的变量,然后再做赋值与Commit;创建相应的regionitem,type:hidden分别为p_file_id,p_file_name,p_file_charset,p_file_memetype创建processes:fetchrowfromjjl_file;上图中的tablename要大写.双击之前hidden项,配置每项的Source属性,保持与jjl_file的列名一致。如P_FILE_ID对应JJL_FILE中的ID。4、在区域uploadfile中创建FileBrowse项,具体配置如下:以上都对应数据库中的表jjl_file相应的字段。5、创建区域button:uploadfile6、为regionitem:FILE_BLOB创建Validation:点击UPLOAD_FILE按钮时验证FILE_BLOB不能为空.7、SubmitPage后执行如下Processes:ProcessRowofJJL_FILE,配置如下图运行效果如图:上传APEX技术开发文档.doc7.5MPl/sql中查看保存结果:下载文件的实例:创建一个interactivereport名为downlaodfile,配置其Sourceo:SELECTjf.id,jf.file_nmae,jf.file_memetype,jf.last_update_date,dbms_lob.getlength(jf.file_blob)file_size,dbms_lob.getlength(jf.file_blob)downloadFROMjjl_filejf创建OK后双击report:downloadfile,配置列download为blob如图:运行效果如图:下面做一个页面Report数据的下载链接ClassicReport的下载链接配置在Report的Attribute里做如下配置运行效果如图:InteractiiveReport的下载链接配置URL:/f?p=<app_id>:<page_id>:<session_id>:<format>app_idistheapplicationid
page_idisthepageid
session_idisthesessionid<format>:CSVorHTMLD创建Interactivereportregion下的一个DisplayOnly项,Settings配置如下:运行效果如图:Waitfor使用CSS与JS在做相对比较复杂或比较个性化的APEX页面时还是需要用到一些JavaScript脚本和CSS。下面做一个用JavaScript给Report表格中列赋值.效果如图:创建Report,构建相应的列的HTML标签设置每列的显示方式创建page_item_button为page_item_button创建DynamicAction执行SetValue动作SetValue/Settings/SetType:JavascriptExpressionSetValue/Settings/JavascriptExpression:再做一个使用CSS来控制页面中元素的显示,由于之前项目上有些Report需要显示很多列,导致把页面拉得很宽,而在APEX4.1.1版本中没有相应的CSS模板,因此需要自己来控制Report的显示。如上图给Region加滚动条,并为滚动条赋上相应的颜色、控制滚动条的显示形状。开发步骤:首先在Page页面HTMLHeaderandBodyAttribute属性中定义CSS<styletype="text/css">.css1{width:752px;height:380px;-ms-overflow-x:scroll;-ms-scrollbar-3dlight-color:rgb(235,235,228);-ms-scrollbar-shadow-color:rgb(179,221,247);-ms-scrollbar-highlight-color:rgb(179,221,247);-ms-scrollbar-darkshadow-color:rgb(235,235,228);-ms-scrollbar-arrow-color:rgb(0,0,0);-ms-scrollbar-track-color:rgb(244,244,240);ms-scrollbar-face-color:rgb(179,221,247);}</style>在Page页属性JavaScript:ExcuteWhenPageLoadsdocument.getElementById("t20BreadCrumbsLeft").className="css1";Coding截图当然上述只是一个很简单的例子来介绍如何去使用CSS控制APEX对象.在APEX4.2.5版本中已经有带滚动条的模板可选择了,但依然还是有缺陷,ReportheaderRow不能固定,它会随滚动条向下滚动而被覆盖图表、报表ApplicationExpress3.0之后支持HTML5Chart与FlashChart,支持2D/3D的柱状图、水平条形图、饼图和圆环图、折线图、K线图、计量表、甘特图。(这几个图表插件BuyfromAnyChart)下面实例stepbystep发柱状和饼图。准备工作:创建一个Application,在新的Application中创建一个页面Page1在新的Page1中创建一个HTML区域命名为newsearch1(序列号50)。Pl/sql登录往table:jjl_test里插入值:在区域newsearch1中右键选择CreateSubRegion,弹出的页面中选择Chart,点击Next,选择ChartType:Column/3DColumn,ChartRendering:HTML5Chart定义需要创建的Chart:DisplayAttributes,如图上图中的ColorScheme:是Chart的显示颜色主题,也可支持自设颜色。ShowGrid:Y-axis设置Y轴显示网络Showints:设置当鼠标移动到柱状图上时是否显示提示信息。ShowLabels:设置Chart的柱状条下是否显示名称ShowValues:设置是否显示柱状条的值点击Next设置Source,即该Chart的数据源。数据源的SQL有两种写法,第一种是直接赋SQL。SELECTNULLurl,to_char(jt.login_date,'MONRRRR')label,SUM(decode(jt.login_name,'admin',jt.login_count,0))"admin",SUM(decode(jt.login_name,'developer',jt.login_count,0))"developer",SUM(decode(jt.login_name,'enduser',jt.login_count,0))"enduser",SUM(decode(jt.login_name,'superadmin',jt.login_count,0))"superadmin"FROMjjl_testjtGROUPBYto_char(jt.login_date,'MONRRRR')配置图表的Source的SQL,第一列为URL,即点击柱状条的一个链接,第二列为2)里的ShowLabels的Label值.后面的SQL例为2)里的ShowValues的Value第二种写一个pl/sql表达式CREATEorREPLACEfunctionlogin_data_fnl_qryVARCHAR2(32767);BEGINl_qry:='SELECTnull,to_char(jt.login_date,'MONRRRR')label';--Loopthroughthelogin_nameandaddasum(decode...)columnwithcolumnaliasFORr1IN(SELECTDISTINCTlogin_nameFROMjjl_test)LOOPl_qry:=l_qry||'sum(decode(jt.login_name,'''||r1.login_nmae||''',jt.login_count,0))'||r1.login_nmae||',';ENDLOOP;--Trimofftrailingcommal_qry:=rtrim(l_qry,',');--Appendtherestofthequeryl_qry:=l_qry||'FROMjjl_testjtGROUPBYto_char(jt.login_date,'''||'MONRRRR'||''')';RETURNl_qry;ENDlogin_data_fn;运行效果图:当配置Source为某一个月的时候,运行效果如下图:当在第一个3D柱状图表中再配置一个Source:运行效果如图:同理饼图制作也如上述一致,只是配置ChartType为Pie/3DPie,配置Source的时候SQL赋值为:运行效果图PDF、Word、Excel报表开发与EBS的报表开发一样,也是基于xml+layout,简单的举个例子即可创建xmlData创建layout,Xml绑定布局文件rtf在page中创建button:PrintAction:DownloadPrintableReportQueryReportQuery:testquery运行效果如图:ApplicationExpressFreePluginsLOVApex中的Lov是很简陋的,无法与EBSForm中的LOV媲美,不支持显示多列,不支持返回多列值,下图中的User即为一个LOV。这样的LOV在实际业务中很难满足客户的需求.Skillbuilders提供了开源的免费Super_lov插件.比较强大,能很好的解决上述需求。支持LOVTitle支持LOV即时输入验证支持LOV显示多例支持LOV返回多例下面就实现上述的一个User的LOV。1、网上下载apex_super_lov插件,导入至Application2、在Regionsearch1中创建一个PageItem选择Plug-ins3、点击下一步选择刚导入的super_lov,做如下配置Listofvaluesdesfinition:定义LOV的数据Enterable:Enterable-RestrictredtoLov支持输入并做即时校验,若输入的数据不存在则跳出Lov对话框ItemDisplay&ReturnColumns:1,2即为当前控件NewUser设置点击LOV后的显示列值与返回例值SearchableColumns:1,2支持对哪些列进行数据查询Hiddencolumns:可以对某些列做隐藏MapFromColumns&MapToItems用来设置其它列返回给界面上的Object项.效果图:SeclectListReportAPEX部署ApplicationExpress程序不需要编译、依赖Oracle数据库的即时运行。对于开发员来说程序的部署在系统上线之前的UAT过程是很常见的。由于它所有的对象都是存在于数据库,因此就像导数据库对象一样,可以把它导出为一个SQL文件。当然这里是对一个Application做导入做出。如图:导入Application至WorkSpace:点击上图的导入选择需要导入的SQL文件,然后stepbystepAPEX之调试、常用技巧、APIAPI发送邮件:APEX_MAIL.SEND(p_to=>'jjl.soft@',p_from=>'DO_NOT_REPLY@REQS',p_subj=>''||l_who||'HasCovered'||l_job||'at'||l_client||CHR(10),p_body=>‘justfortest’);COMMIT;apex_mail.push_queue();PL/SQL中执行页面的跳转控制begin...codewhichcanraiseanexception...owa_util.redirect_url('');apex_application.stop_apex_engine;exceptionwhenapex_application.e_stop_apex_enginethenraise;--raiseagai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心脏性猝死风险规范化评估与临床全程防控业务学习
- 2026北师大版小学六年级下册英语期末核心知识点总结 单词句型专项
- 网络安全应急演练方案(企业版)
- 民营医院组织架构及岗位职责说明
- 民营医院医疗行为规范自查自纠整改落实报告
- 安全隐患排查治理台账管理规范
- 奶茶店装修工程设计变更情况说明
- 反贪处长竞职竞聘演讲稿
- 公司新员工个人转正总结
- 《液压传动 阀的试验方法 第1部分:稳态和瞬态特性》
- 住宅烟道系统技术标准
- 职业访谈记录
- GB 16897-2022制动软管的结构、性能要求及试验方法
- 德尔格压缩空气质量检测仪检测管使用说明书汇总
- 自动空中三角测量课件
- 毛细管气相色谱法现代仪器分析
- 财政税收体制改革课件
- 红色卡通风期中考表彰大会PPT模板
- 2021高考语文试卷新高考1卷(真题)
- 蒲松龄和《聊斋志异》课件
- 外科学课件-运动系统慢性损伤
评论
0/150
提交评论