




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、io 信息管理平台开发手册架构、标准和平台版本日期作者备注io 20032003-09-26邓志挺正式提供开发手册io 2004200407-01邓志挺主要增加对数据库操作的说明及常用公用函数io 20042005-04-18邓志挺增加全局和人员相关信息的标准属性、通用的用户控件、定时服务引擎目 录第一章 前言1唠叨往事1言归正传2注意事项2第二章 系统架构3用户界面3应用服务层5数据库5第三章 模块编码6第四章 数据库访问的方法7sqldata.executenonquery7sqldata.executedataset7sqldata.executereader7sqldata.execu
2、tescalar8sqldata.executexmlreader8第五章 常用标准11全局属性11用户属性11用户界面121)界面样式122)界面设计原则14常用javascript及页面161)日期选用162)多选/单选人员163)部门选取页18常用共享函数191)使用方法192)常用的通用函数20第六章 权限管理24以admin身份登录添加编辑“权限编码”24进行权限设置25使用权限设置261)添加对iofficeservice的引用262)声明iofficeservice.sec263)获取用户权限26自定义权限271)数据库设置272)页面设置283)代码控制30删除表数据通用函数3
3、3第七章 附件操作35了解附件信息表35建立相关表35完成附件上传35附件的列表显示37附件的删除39第八章 流程管理40模块编码定义40流程动作定义41流程定义42编程控制431)认识流程管理的控件43i.flowselflow43ii.flowcont43iii.flowaction442)编程调用流程管理453)常用属性、方法49获取流程数据49第九章 定时服务52实现在开发中使用定时服务52测试定时服务类53定时服务类的参数设置54定时服务参数值调用55第十章 常用系统表56一次性提醒表56定期提醒表56即时消息表57第十一章 人事数据60基本信息表60部门表61人员、部门、职务61常
4、用函数61第十二章 用户控件64html编辑器控件64msgtab控件65pagetitle控件66editpagetitle控件67edithortitle控件67branchdep控件68iodicfieldsel控件73iofieldshow控件74iofileatt控件75iofieldquery控件76ioselshowfield控件77edittab控件78第十三章 如何进行二次开发79建立自己独立的web项目79引用io的三个动态库79在项目属性中添加项目导入80利用本文中提供的接口进行开发80将相关文件复制到ioffice相应的文件夹下80二次开发项目的开发调试80io 信息管
5、理平台 开发手册第一章 前言唠叨往事2000年,一个同事给我看了一点微软的.net资料,那时起我就对微软的.net相当看好。但当时苦于“只听楼梯响,不见人下来”,奈何!终于,在2001年,见到了visual studio .net beta1,作为一个过渡性版本,由于性能及诸多因素,beta1根本无法进行有效的软件开发。不过,在使用visual studio .net beta1时,已发现微软的.net的架构已初步成形,并将是未来软件开发的一种新机遇,而我们将能利用这次机遇多少能做点事。在使用beta 1的过程中,我天天盼望微软这个“大救星”能尽快推出正式版或能使用的版本,真是“天天用,也天天
6、盼”,也一直在“痴痴地等”。直到2001年9月,“救星”终于来了,微软正式了发布beta2版本。beta2相对于beta1已有了很大改善,与其后的正式版本已相差无几,是微软visual studio .net成熟版本。io的比较正式开发就是在微软visual studio .net beta 2发布之后进行的,至今已近三年,作为一种软件产品,也算是“老龄”了。在开发初期,有关.net的资料廖廖无几,只是有幸参加了几次微软的培训,大致学了“一招半式”,这也算是在广州这样的大城市的几点好处之一。刚开始开发时,由于毫无任何经验或可借签的经验,只能是“摸着石头过河”一步步“爬”过来,期间经过很多的坎坎
7、坷坷和“熬夜”(没办法,欲练神功,先要自宫;即使自宫,未必成功)。有人说,微软的成功并不在于“创新”,而在于“学习”。这话说得一点不假,不过,我更认为微软的成功在于“在学习中创新,在创新中学习”并为用户提供操作简单、容易上手的软件,这是微软的真正“成功”。作为师承微软的软件,io最初框架设计是“学习”了同类软件产品(具体产品名称我这里就不说了,总要给我自已留点面子吧)。由于有所“学习”,整体设计io只用了约一个月时间,并在三个月时间内完成了io第一个版本开发。在最早的开发过程,公司的很多同仁自愿为io作测试并提供良好建议,往往是一个功能模块刚刚“新鲜出炉”,就已经在试用了。在此,io真心感谢你
8、们!由于得到公司领导及同仁的大力支持,2001年底,io正式接入internet供公司内部员工使用。转眼间,2002年就不声不响来到了。当我还在“埋头苦干”时,得到消息说internet上有提供io的下载。我也去看了看,发现下载做得很专业,提供了完整的配置说明、动画演示等,提供了比较高的相关评论,并在软件下载中排列前几名。这件事至今想来还是感觉很奇怪,作为一个“随意”之作的雏形软件,还未有过任何的宣传及相关的介绍,竟然如此之快遭遇“盗版”?!以前,我一直以为盗版是指“卖”微软的产品,没想到io也“有幸”加入其中!现在想来,io能有如此“荣幸”,或许是当别人还只是把微软的.net不经意地试一试的
9、时候,我们已经在着手真正的软件开发了,也或许“早起的鸟儿有虫吃”这句话说的有点道理。前面提过,io的最初设计是“学习”,现在能被“学习”,也算是进行了一次“回报”。“三岁看到老”,说得是看一个人是否能有所作为,在三岁时基本就可以看出来了。io至今依然存在,并不断得到提升,现在想来,io最初设计还是比较成功的,io有一个比较好的“三岁”。不过,面对如此变幻的世界,我们还需“学习不止,创新不止”,以使io能有美好的未来。唠唠叨叨说了这么多,大家不看也罢!言归正传此次开发手册主要用于指导io内部标准化、高效地软件开发。同时,也为我们的合作伙伴在io基础上进行二次开发时提供指导性的帮助。此开发手册只提
10、供io开发过程中已成熟并标准化的部份,将会尽量在今后的产品升级中保证其向后兼容,如无法兼容,将会补充新的说明文件。另外,也考虑进行二次开发的需要,提供了进行二次开发时所需要的一些共享数据表、所用技术及源程序的详细说明。在进行相关说明时,将原样提供io实际使用的部份源码。由于io是由vb.net开发完成,因此所有的示例代码均以vb语言提供,并不提供其它的相应参照语言示例。注意事项1. 此开发手册所提供的内容涉及到io技术核心,请严格注意保密性要求;2. 此开发手册只适用于io部份版本,对以前版本部份内容可能并不完全适合;3. 此版本是在原有资料基础上提供的第一个完整的开发手册版本,将在今后产品升
11、级过程中得到补充完善;第二章 系统架构io作为一种平台软件,完全采用开放、集成和高效的体系架构。整体架构以面向对象的三层为主体,同时利用.net及sql server 2000一些特性作了一些优化设计。io由基本部份及扩展部份组成。基本部份为io信息管理平台的提供常用的平台功能(如流程、权限)基本功能及流程管理引擎,同时基本部份也为扩展模块提供编程接口;扩展部份是在io的基本部份基础上进行扩展开发,相对独立,调用基本部份的一些标准接口,开发时单独编译。1. 文件夹图示2. 结构说明项目名称说明ioffice是io的唯一发布项目,主要包括io标准包所包括的模块页面文件、通用管理页面、通用用户控件
12、及可调用的webservice文件iofficedata封装对 sql server数据库(sqldata)的该问及与模块无关的共享函数库(dbconfig),对该项目的引用后,可以不用声明就可直接使用iofficemail提供收发邮件的功能组件iofficeschedule定时服务引擎,可在后台自动控制按一定频率完成一些指定功能。如短信发送、统计当前在线人数、数据清理等。iofficeservice为ioffice项目提供数据服务及业务逻辑处理,通过调用iofficedata完成对数据库的访问,也提供了一些完成特定功能的通用函数iofficeupload通过http在web中完成大文件上传(
13、可实现上gb级的附件上传)的功能,主要用于在ioffice项目中的“附件用户”控件(详见用户控件内容)中调用用户界面在实际开发时,io的用户界面部份所对应项目名称是“ioffice”,物理文件夹名称也为“ioffice”。ioffice各主要子文件夹说明如下:1) bin-主要包括运行io运行所需的编译后的dll及一些所引用的com组件,如ioffice.dll、iofficeservice.dll、iofficedata.dll及jmail.dll等。同时,也包括在服务器端运行“io服务管理器”iofficeman.exe,此常规软件在后台提供io的数据清理、短信发送、传真发送、天气预报、自
14、动邮件接收等服务;2) db-默认情况下存放io数据库文件3) css-保存io的样式库文件。io界面设计完全使用统一样式库,以使给用户提供一致界面。其中,最重要最基本的样式文件是“styles.css”;4) img-存放io界面设计中所用的图片文件;5) js-存放常用的javascript文件。主要包括,“date.js”日期选取时所有的javascript文件,“ioffice.js”用于调用一些io标准化页面(将在随后相关内容详细介绍);6) mod-io首页所用的控件文件;7) prg-存放整个io界面相关的程序文件。根据各功能模块的不同,以模块的编码命名各子文件名称,如“mr”存
15、放“人事信息”模块中所用的所有页面文件;8) upfiles-io文件夹附件存放位置,也同样根据各模块的编码建立相关子件夹,以实现附件的分类存。注意:基于安全及功能考虑,io对所有的用户上传附件对文件名重新编码存放,并在数库中保存了原有用户上传文件的详细信息。另外,由于io是以oa为核心的信息管理平台软件,在使用一段时间后,此文件将会存放大量的附件。应用服务层io由iofficeservice和iofficedata两个项目组成,并在/ioffice/bin中生成iofficeservice.dll和iofficedata.dll两件文件。iofficeservice包含各功能模块相对应的不同
16、类库,为io提供业务逻辑及数据实体处理,并通过iofficedata实现统一的数据库访问。有关iofficeservice及iofficedata将在相关章节详细介绍。数据库io所采用的数据库是ms sql server 2000。除附件外,io的所有数据均保存在数据内。在io的数据库内提供了大量的“存储过程”以进行高效的数据存取及业务逻辑处。第三章 模块编码io作为一种平台软件,内部包含各种相关模块,为使规范化命名及方便管理,采用了模块编码的设计原则。这些模块编码广泛用于页面文件夹、数据表、数据库存储过程及应用服务层的类库命名。主要模块编码如下所示:模块编码模块名称备注sysset系统设计主
17、要用于io控制面板,对应“/ioffice/prg/set”文件夹,在应用服务层中提供用于系统控制部份的类库,在数据库中的表及存储过程中以“ss”为前两个字母。mr人事信息cp日程任务fl流程管理fm公用文档if信息传递在应用服务层对应类库名称为“inf”。信息传递内又包含众多模块,但在文件夹、数据库表和数据库存取过程中均以“if”命名da档案管理ml邮件管理第四章 数据库访问的方法io在iofficedata.dll的sqldata类中针对ms sql server数据库提供了方便快捷的访问机制。使用sqldata可以调用存储过程和sql脚本,详细说明参数,返回sqldatareader,
18、dataset, xmlreade对象,或者返回单一的值。使用sqldata 还可以大量减少数据库访问所需的代码,通常只需一行就能实现,并且可以确保你的数据库访问逻辑在一个有效并且高效的方式下执行。sqldata.executenonquery1. 用字符串作为参数来执行一个命令sqldata.executenonquery(conn_string, commandtype.text, sql)2. 用字符串和一组参数数组来执行一个存储过程sqlparameter arparams = new sqlparameter2;arparams0 = new sqlparameter("p
19、roductid", 2);arparams1 = new sqlparameter("newprice", 23.00);sqldata.executenonquery(conn_string, commandtype.storedprocedure, "updateprice", arparams)3. 用字符串为参数来执行一个存储过程sqldata.executenonquery(conn_string, "updateprice", 1, 21.00)sqldata.executedataset1. 用字符串来调用一
20、个命令sqldata.executedataset(conn_string, "getproductsbycategory", 1)2. 用字符串和一组参数数组作为参数来执行一个存储过程dim arparams(0) as sqlparameterarparams(0) = new sqlparameter("categoryid", 2)dscat2 = sqldata.executedataset(conn_string, commandtype.storedprocedure, "getproductsbycategory",
21、arparams)3. 用字符串为参数来执行一个存储过程sqldata.executedataset(conn_string, "getproductsbycategory", 1)sqldata.executereader1. 用字符串调用一个命令sqldata r.executereader(conn_string, commandtype.text, sql)2. 用字符串和一组参数组作为参数来执行一个存储过程dim arparams(0) as sqlparameterarparams(0) = new sqlparameter("categoryid&q
22、uot;, 2)drcat2 = sqldata.executereader(conn_string, commandtype.storedprocedure, "getproductsbycategory", arparams)3. 用字符串来执行一个存储过程sqldata.executereader(conn_string, "getproductsbycategory", 1)sqldata.executescalar1. 用字符串来调用一个命令sqldata.executescalar(conn_string, commandtype.text,
23、 sql)2. 用字符串和一组参数组作为参数来执行一个存储过程dim arparams(0) as sqlparameterarparams(0) = new sqlparameter("categoryid", 2)ocat2 = sqldata.executescalar(conn_string, commandtype.storedprocedure, "countproductsbycategory", arparams)3. 用字符串来执行一个存储过程sqldata.executescalar(conn_string, "countp
24、roductsbycategory", 1)sqldata.executexmlreader1. 执行一个命令返回一个xml语句dim xml as xmltextreaderdim sql as string = "select * from products for xml auto"xml = sqldata.executexmlreader(con, commandtype.text, sql)xml.close()con.close()2. 用一个sqlconnection和一个参数组作为来调用一个存储过程返回一个xml语句dim xmlcat2 as
25、xmltextreaderdim arparams(0) as sqlparameterarparams(0) = new sqlparameter("categoryid", 2)xmlcat2 = sqldata.executexmlreader(con, commandtype.storedprocedure, _ "getproductsxmlbycategory", arparams) 3. 用一个sqlconnection对象来执行一个存储过程dim xml as xmltextreaderxml = sqldata.executexmlre
26、ader(con, "getproductsxmlbycategory", 1)xml.close();con.close();4. 用一个sqltransaction来执行一个命令dim xml as xmltextreaderxml=sqldata.executexmlreader(tran,commandtype.storedprocedure, "updateandselectxml")xml.close();5. 用一个sqltransaction和一个sqlparameters来执行一个命令' create and open the
27、connectiondim con as new sqlconnection( _ "server=(local);database=northwind;integrated security=true;")con.open()dim xmlcat1 as xmltextreaderdim xmlcat2 as xmltextreader' create the sqltransaction object and start a new transactiondim tran as sqltransaction = con.begintransaction()try
28、 ' use a parameter array of sqlparameter objects xmlcat1 = sqldata.executexmlreader(tran, commandtype.storedprocedure, "updateandselectxml", new sqlparameter("categoryid", 1) xmlcat1.close() ' use a sqlparameter array dim arparams(0) as sqlparameter arparams(0) = new sqlp
29、arameter("categoryid", 2) xmlcat2 = sqldata.executexmlreader(con, tran, commandtype.storedprocedure, _ "updateandselectxml", arparams) xmlcat2.close() ' commit the transaction if there are no errors tran.commit() messagebox.show("transaction completed successfully")
30、catch ex as exception ' rollback the transaction if there are errors tran.rollback() messagebox.show(ex.message.tostring)finally ' close the connection con.close()end try6. 用一个sqltransaction来调用一个存储过程' create and open the connectiondim con as new sqlconnection( _ "server=(local);data
31、base=northwind;integrated security=true;")con.open()dim xml as xmltextreader' create the sqltransaction object and start a new transactiondim tran as sqltransaction = con.begintransaction()try xml = sqldata.executexmlreader(tran, "updateandselectxml", 1) xml.close() 'further t
32、ransactional logic goes here ' commit the transaction if there are no errors tran.commit() messagebox.show("transaction completed successfully")catch ex as exception ' rollback the transaction if there are errors tran.rollback() messagebox.show(ex.message.tostring)finally ' clo
33、se the connection con.close()end try第五章 常用标准全局属性在iofficeservice.iocom(使用时不用进行实例化,可直接使用)提供在io运行期间都会保持状态的全局属性变量名变量说明备注onlinenum系统当前状态下的在线人员数corplogologo图片路径everyoneid所有人员的id号connectstring与数据库的链接字符串applicationmappathioffice文件夹在服务器上的绝对路径如ioffice安装在”d:ioffice”,则返回值为”d:”assemblypathioffice.dll的绝对路径servern
34、ame服务器名用户属性用户成功登录到io后,系统将会提供一些与当前用户相关的用户属性(在iofficeservice.iocom.emp,使用时应首先实例化,如private emp as new iofficeservice.iocom.emp)以方便整个系统的调用。需要注意的是,这些变量不能以任何方式被改变,否则将会产生难以预料的问题。变量名变量说明备注loginid人员登录帐号登录帐号用登录到io全局唯一empid人员的号全局唯一,整数型数据,在io系统内涉及与用户相关的数据,均以此值作外来关健字branchid人员机构号simplebranchname人员所属机构简称name人员姓名b
35、ranchname人员所属机构全称mobile人员手机号码depid人员所属第一个部门的id号整数型数据。在io内,人员可以最多属于三个部门,此会话变量不为空。depid2人员所属第二个部门的id号如没有第二个部门,则为0depid3人员所属第三个部门的id号如没有第三个部门,则为0depcode人员所属第一个部门的编码字符型数据。此会话变量不为空depcode2如没有第二个部门,则为空depcode3如没有第三个部门,则为空gridnum每页显示数据条数io在显示大量数据时,采用datagrid进行分页显示。为使每页显示数据条数与用户显示器分辩率相适应,用户可自行设置datagrid每页显示
36、数据条数。使用方法:private emp as new iofficeservice.iocom.empprivate sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load if not ispostback then dgddata.pagesize = emp.gridnum end ifiofficestylesset样式文件引用io提供了“个性化颜色配置”功能,以使用用户能根据个人喜好选择不同的配色方案。用户界面1) 界面样式a) 样式文件为使io用户
37、界面风格一致,io使用统一的样式库。io默认样式库是“/ioffice/ styles.css”,同时由于io提供了“个性化颜色配置”的功能,将通过session("iofficestylesset")来改变默认的样式库。页面html的样式引用如下所示:<head><title></title><meta content="microsoft visual studio.net 7.0" name="generator"><meta content="visual bas
38、ic 7.0" name="code_language"><meta content="javascript" name="vs_defaultclientscript"><meta content=" name="vs_targetschema"><link href="././styles.css" type="text/css" rel="stylesheet"><%=session
39、("iofficestylesset")%><-实现个性化颜色配置<script language="javascript" src="/ioffice/js/date.js"></script><script language="javascript" src="/ioffice/js/ioffice.js"></script></head>b) 样式使用io界面设计主要以两种风格的形式表示,一种是以使用datagrid为
40、主的数据显示页面风格,另一种是数据编辑页面风格。两种面页所使用样式如下所示:数据显示页面风格:控件:datagridcssclass: gridbackcolorheaderstyle中的cssclass: gridheadbackcolor控件:tableclass: querybox控件:labelcssclass:tttable控件:tableclass: titlebackcolor数据编辑页面风格:非粗体显示(常用样式)控件:labelcssclass:td粗体显示(常用样式)控件:labelcssclass:tttable此控件使用的是html的grad layout panel以
41、便能在其上随意放置控件,增加界面设置的灵活性此页面是典型数据编辑页面,外围控件使用table,并将class设为:box,以形成带边框的白色编辑区2) 界面设计原则如上所说,io的分为两种界面风格。相应,这两种风格的界面有各自的界面设计原则。a) 数据显示页面设计原则在数据显示页面中,一般以datagrid作为数据显示主体,如有需要在datagrid上方放置数据查询区,以使能对datagrid中显示的数据进行筛选。为使数据显示在不同分辨率的显示器能正常显示,总体设计原则是以“表中嵌表”方式进行准确定位,同时能根据不同分辨率自动缩放。内部所包含的datagrid及table的width设为100
42、%,以使能根据外围table缩放而自动缩放外围table的width设为95%以实现自动缩放的功能b) 数据编辑页面设计原则在数据编辑页面中,由于要编辑的数据有限及为了使整体数据编辑不随分辨率的改变而改变,因此一般将数据编辑区部份设为固定宽度。整体页面的定位也以“表中嵌表”方式进行准确定位。将align设为center,以使数据编辑区内在不同分辨率保持居中设为固定宽度,以使编辑区内各控件相互间位置在不同分辨率下保持协调用于设定上间距常用javascript及页面1) 日期选用在数据查询或数据录入时,为使方便地日期数据录入,io提供一个功能强大简单易用的javascript文件。请按如下方法操作
43、a) 在页面的html中引用javascript文件<head><title></title><meta content="microsoft visual studio.net 7.0" name="generator"><meta content="visual basic 7.0" name="code_language"><meta content="javascript" name="vs_defaultcli
44、entscript"><meta content=" name="vs_targetschema"><link href="././styles.css" type="text/css" rel="stylesheet"><script language="javascript" src="/ioffice/js/date.js"></script><script language="j
45、avascript" src="/ioffice/js/ioffice.js"></script><%=session("iofficestylesset")%></head>b) 在相关text控件中添加如下代码(页面的html中)<asp:textbox id="txttdate" style="z-index: 111; left: 110px; position: absolute; top: 95px" onfocus="setday(t
46、his)"runat="server" width="115px" readonly="true"></asp:textbox>注意:更多的使用方法,请查看“/ioffice/js/date.js”文件2) 多选/单选人员为方便及统一人员选取,io提供了两个标准的弹出式选取人员页面。a) 在页面的html中引用javascript文件<head><title></title><meta content="microsoft visual studio.ne
47、t 7.0" name="generator"><meta content="visual basic 7.0" name="code_language"><meta content="javascript" name="vs_defaultclientscript"><meta content=" name="vs_targetschema"><link href="././styles.css&
48、quot; type="text/css" rel="stylesheet"><script language="javascript" src="/ioffice/js/date.js"></script><script language="javascript" src="/ioffice/js/ioffice.js"></script><%=session("iofficestylesset"
49、;)%></head>b) 调用方法i. 在要使用选取人员页面中放置一些相关控件,以接收所选取人员页面的返回值。当选取人员时,一般需要三个控件,如下表所示。如同一页面有多个地方需要选取人员时,可以按下表所示方法类推,最多可以达到8个。序号控件名称类型返回值1txtempid1textbox所选人员的empid。有多个时,以“,”分隔txtname1textbox所选人员的姓名。有多个时,以“,”分隔selemp(如不需要产生服务器事件,则此控件不需要)button产生服务器端事件,以对所选取人员进行相关处理2txtempid2textboxtxtname2textboxsel
50、emp1(如不需要产生服务器事件,则此控件不需要)button3.8ii. 为弹出选取人员页面,需要调用“/ioffice/js/ioffice.js”中的一函数“selmultemp(stype,click,selempid)”(如是只选单个人员,则使用selemp(stype,click)函数)stype-输入上表所示序号,如1,2,3.8click-是否产生服务器端事件,如为0则不产生,1则需要有selemp控件以产生服务器端事件selempid-已选取的人员的id,如不需要此功能,则可省略示例:selmultemp(1,0,document.all.txtempid1.value)或s
51、elemp(1,1)3) 部门选取页如选取人员类似,io提供了一个统一选取部门页面。a) 在页面的html中引用javascript文件<head><title></title><meta content="microsoft visual studio.net 7.0" name="generator"><meta content="visual basic 7.0" name="code_language"><meta content="
52、;javascript" name="vs_defaultclientscript"><meta content=" name="vs_targetschema"><link href="././styles.css" type="text/css" rel="stylesheet"><script language="javascript" src="/ioffice/js/date.js">
53、</script><script language="javascript" src="/ioffice/js/ioffice.js"></script><%=session("iofficestylesset")%></head>b) 调用方法i. 在要使用选取人员页面中放置一些相关控件,以接收所选取人员页面的返回值。当选取人员时,一般需要三个控件,如下表所示。如同一页面有多个地方需要选取人员时,可以按下表所示方法类推,最多可以达到8个。序号控件名称类型返回值1txtdep
54、code1textbox所选部门的depcode。有多个时,以“,”分隔txtdepname1textbox所选部门的姓名。有多个时,以“,”分隔selemp(如不需要产生服务器事件,则此控件不需要)button产生服务器端事件,以对所选取人员进行相关处理2txtdepcode2textboxtxtdepname2textboxselemp2(如不需要产生服务器事件,则此控件不需要)button3.8ii. 为弹出选取部门页面,需要调用“/ioffice/js/ioffice.js”中的一函数“seldep(stype,click, multsel)” stype-输入上表所示序号,如1,2,
55、3.8click-是否产生服务器端事件,如为0则不产生,1则需要有selemp控件以产生服务器端事件multsel-0时是表示只单选,-1多选示例:seldep (1,1,1)或seldep(1,1,0)常用共享函数在io提供的iofficedata.dll的dbconfig共享类中提供了大量的方便编程的通用函数。1) 使用方法先在工程项目中引用iofficedata.dll动态库,然后在项目的属性页中导入iofficedata命名空间2) 常用的通用函数脚本控制实现功能函数名称调用实例封装执行脚本runscript(byref pgeparent as system.web.ui.page,
56、 byval strscript as string)dbconfig.runscript(me,"window.top.location='alter.aspx'")封装显示提示showmessage(byref pgeparent as system.web.ui.page, byval strmessage as string, optional byval scrscript as string = "", optional byval blnblock as boolean = true)dbconfig.showmessage(me, "新的密码不能与你上次所设密码相同!")确认,各自转向页面confirmconfirmandredirect(byref pgeparent as system.web.ui.page, byval strmessage as string, byval strtruep
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢铁行业新一代节能降耗技术分析
- 相反数的题目及答案
- 现场答辩题目及参考答案
- 2025有关电子产品销售合同
- 2025版房屋租赁合同范本
- 物业保洁考试试题及答案
- 2024译林版八年级英语上册Unit 2 课时6 Integration ABC 分层作业(含答案)
- 2025年7月血液学检验考试题(附参考答案)
- 2025年高考化学试题分类汇编:化学实验基础(含解析)
- 2025高考生物试题分类汇编:细胞的物质基础和结构基础(含解析)
- 内部审计-内部审计准则完整版-中国内部审计准则体系
- 部编版四年级语文上册第5课《一个豆荚里的五粒豆》优秀PPT课件
- 大班社会《班级规则我遵守》课件
- 能源概论__第一章能源概述PPT课件
- 《爱的教育》读书分享读书分享2
- 合伙经营教育培训机构合同经典版
- 体适能评定理论与方法实验指导
- 配网工程管理流程及注意事项
- PTB220串行数字气压计用户手册
- 政教处周工作历(2)
- 《数据结构与算法》课程教学大纲
评论
0/150
提交评论