摘要: 在E8.Net平台中已经包含了根据Sitemap生成outlook风格菜单的全部源代码. 不过还有一些客户提出另一种下拉菜单的样式需求. 于是在E8.Net 上扩展了一种新的菜单实现模式.如图例:此菜单跟之前提供的outlook菜单一样来自于sitemap设置由于菜单是放在FrameSet中的一个frame上,因此弹出的子菜单不能用DIV的方式来实现,而是采用window.createpopup(...
阅读全文
posted @
2008-08-30 10:22 朱明春 阅读(160) |
评论 (0) |
编辑
我们做WEB程序开发过程中,经常会为了Table中的cellSpacing,cellpadding等样式的设置发愁,经常没有办法可想了,就会直接在Table中设置cellSpacing,cellpadding了,这样以后要改页面风格时,或做多主题风格时,就会发现改起来是多么的痛苦了.奔着这个目标,经过不断的Google,终于把这个问题解决了,感谢Google,感谢热心的上传者,呵呵!现在把解决方法也写下来.
其实实现方式很简单,在css中加上Table{ jerry:expression(cellSpacing="1");},其它类似,这样就把问题解决了,我们的页面代码也清晰不少了.
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-25 12:06 朱明春 阅读(259) |
评论 (5) |
编辑
在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是:
控件包含代码块(即 <% ... %>),因此无法修改控件集合。 将这些代码去掉,相应的功能在代码中实现即可。
<%=.....%>
造成这个错误的原因是:在<head runat="server"></head>里面,使用了类似这样的代码,
把Head中使用的<%=.....%>的脚本放到body中,就OK了.
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-20 11:39 朱明春 阅读(205) |
评论 (0) |
编辑
1、copy below commands into a .bat file
2、double click it
3、have fun
==============================================================
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\System32\\dacui.dll
rundll32.exe /s advpack.dll /DelNodeRunDLL32 C:\\WINNT\\Catroot\\icatalog.mdb
regsvr32 /s setupwbv.dll
regsvr32 /s wininet.dll
regsvr32 /s comcat.dll
regsvr32 /s shdoc401.dll
regsvr32 /s shdoc401.dll /i
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s comctl32.dll /i
regsvr32 /s inetcpl.cpl /i
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s mmefxe.ocx
regsvr32 /s proctexe.ocx mshta.exe /register
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s thumbvw.dll
regsvr32 /s cryptext.dll
regsvr32 /s rsabase.dll
regsvr32 /s triedit.dll
regsvr32 /s dhtmled.ocx
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s hmmapi.dll
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s occache.dll /i
regsvr32 /s iepeers.dll
regsvr32 /s wininet.dll /i
regsvr32 /s urlmon.dll /i
regsvr32 /s digest.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s icmfilter.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s voxmsdec.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s vgx.dll
regsvr32 /s WEBPOST.DLL
regsvr32 /s WPWIZDLL.DLL
regsvr32 /s POSTWPP.DLL
regsvr32 /s CRSWPP.DLL
regsvr32 /s FTPWPP.DLL
regsvr32 /s FPWPP.DLL
regsvr32 /s FLUPL.OCX
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/productFlow.htm
posted @
2008-08-18 15:59 朱明春 阅读(69) |
评论 (0) |
编辑
摘要: 通过Cache机制实现通用的配置管理模块 .Net Web应用程序提供了很强大的 Web.Config功能,我们很多的系统可能已经习惯在Web.Config中进行配置,可是使用Web.Config进行一些配置,会有一些不太顺畅的特性,比如:修改Web.Config 后,Web应用程序会出现错误页面并且需要重新登录,Web.Config配置过程不是很方便,即使通过安装包进行Web.Config的设置...
阅读全文
posted @
2008-08-07 14:31 朱明春 阅读(380) |
评论 (2) |
编辑
最近在做一个导入Excel数据到数据库表中对应字段的功能,一开始做的时候,也没有什么困难,做的还比较顺利,但是在接下去测试过程中,却遇到了一些很棘手的问题,疯狂的试验,在网上不停的搜索,有不少人也有相同的问题,但却没有一个把问题解决清楚了,即然自己解决了,就把解决问题的过程和原因记下来,与大家一同分享.
导入EXCEL的思路来自己客户的需求,客户需要从EXCEL中导入一些基础资料,来初始化系统中一些基础数据,而这些基础数据表中每个表都与几个不同的表相关联,即要保证数据的有效性,又要把相关性也导入,还真是把我们难倒了.如果不用程序导入,基础资料怎么导入呢,反过来一想,那就用SQL的方式导入方式吧.
首先不管EXCEL表中的数据是什么样的,创建一个临时用的物理表,把EXCEL中的数据导入;然后用SQL语句对这个临时表和相关的表进行SQL语句开发,这样确实简单灵活了,以后客户再有什么其它变态需求时,大不了给他写一个存储过程,要多复杂就可以多复杂,一切问题解决,真爽,呵呵.
做完后测试发现几个棘手的问题.
问题:数据驱动问题,Excel中有一些列是数值,虽然把这个列改为文本存储方式或其它方式,用这种方式读取就是读取不到这些列的数据(
string strCon = @" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0;";),真是奇怪了.试验过修改EXCEL存储方式,格式,然后修改连接串,最后发现原因是数据驱动有问题,改为string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Path + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'"; 就正确了,这里需要大家注意的一个问题'Excel 8.0;HDR=NO;IMEX=1',与Excel 8.0;HDR=NO;IMEX=1的区别,没有'号会一直出现
找不到可安装的 ISAM错误!
参数说明:
Microsoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键
字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程
序始终将“互混”数据列作为文本读取。注意
http://msdn2.microsoft.com/zh-cn/library/ms254978.aspx
默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须
将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性
添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定
HDR=No;提供程序将字段命名为 F1、F2 等等。因为扩展属性字符串现在包含了多个值,所以必须用引号
单独包起来,如下例所示(为便于看清楚,添加了额外的空格)。
如第1个中hdr=no的话,where时就会报错
ConnStr ="Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\Inetpub\wwwroot\test.xls;
Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1
IMEX=1就是指混合型转换为文本
select * from
OPENROWSET(’MICROSOFT.JET.OLEDB.4.0′
,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls’,[sheet1$])
1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
2)[]和美圆$必须要,否则M$可不认这个账
希望对做导入EXCEL功能的人有所帮助!
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ4号群:1260249
.NET企业应用开发与工作流QQ 4号群:41553575
http://www.feifanit.com.cn/
posted @
2008-07-17 10:16 朱明春 阅读(260) |
评论 (1) |
编辑
水,以一种流动形态存在,是物种起源的摇篮,却又是如此简单。是的,它很简单,再普通不过的微观粒子,无处不在,轻盈透明。但它并不因为简单就
失去了重要性,恰恰相反,它是人类赖以生存的必要条件,正是由于无处不在的水,人类才能过着安乐、舒适的生活。而水的流淌,也关系到了整个民族的命脉与历史,黄河两岸,尼罗河边,印度河畔,都各自哺育了一个古老而富有生命力的民族。水,就是这样,看似柔弱,实则坚韧,聚点滴成波涛,汇大湖而成四海。所以,当它流进殷末周起的中华历史时,有了一个被称为“睡在羊背上的人”,在他那本影响后世甚广的《道德经》中写道:上善若水。
上善若水,仅此一句话,便叫人体会到水的意境:简单,深远,丰富,坚韧。它是说做人也要像水这样,简单朴实,孕意深广,人若能做到像水一样,那便为上善了。
也许会有人觉得再简单不过,可是又有几个人能真正做到上善若水呢?水一样的纯净,水一样的澄明,水一样的大智若愚,水一样的源远流长?这样的人必是心性至善至深之人,他能在喧闹中开辟出自己的一席田地,他能在纷扰乱世中找到自己的归隐,他能在流言蜚语中静下自己的耳根,这样的人必是与山为邻,为水为友,出仕则心神俱孤,但仍然超然物外,淡泊宁静。
我想世上有很多这样的人,他们秉承了水的坚韧与灵性,在尘世中静守一份自己的净土,待人接物永远笑脸谦和,偶遇知音则被挖掘惊世才情,来时干干净净,走时了无牵挂,只留下水流过的痕迹——那思想的光辉与伟岸的人性。
上善若水,简单,却那么难。
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ群4:1260249
.NET企业应用开发与工作流QQ群:41553575
http://www.feifanit.com.cn/
posted @
2008-07-14 10:43 朱明春 阅读(97) |
评论 (0) |
编辑
确认需求的关键: 确认并非只是重复对方说过的话,重复是表面上对内容的理解。
真正的确认要求的是对方话语背后隐含的意思。
为什么要确认需求:
1、误解的产生
我们总是倾向于听我们想听的内容、看我们想看的东西,导致我们产生的印象往往并不与对方的意图相吻合。
误解产生时,双方却都对出现的误解一无所知。
通过告诉对方我们对他的信息的理解,来证实或澄清我们所产生的印象。
确认能够保证我们准确了解对方的意思。
2、确认是积极倾听的回应
围绕调研目标,对问题背后的问题、关联问题、发掘的新需求深入了解。
框定需求的边界,把握谈话的方向。
鼓励对方继续说下去。
下列情况一定需要确认:
当不确定对方的意思时;
当对方给予的是重要信息时;
当发现关键问题、关联问题和新需求点时。
<学习总结笔记>
E8.Net工作流架构将管理思想融入到管理软件设计中来,提升软件生产力。欢迎访问: http://www.feifanit.com.cn/
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ群4:58342347
.NET企业应用开发与工作流QQ群:17110384 53284682(已满) 42302450(已满)
http://www.feifanit.com.cn/
posted @
2008-07-08 10:18 朱明春 阅读(209) |
评论 (0) |
编辑
我们也许经常会遇到各种问题,比如:
约好了客户讨论需求,但客户突然有事情要处理,使我们的计划被打乱;
我们跟客户一起确定了某项功能,完成了实现并协调了其它模块的功能后,客户又否定了当时确定的功能,我们必须推翻重来;
我们的某一个同事因为离职而他开发的功能模块别人很难接手;
当我们使用了某一项新技术,看起来很美丽,却因为某一个没有预料到技术难点不能攻破而导致整个开发的滞后。
等等。问题会越来越多,挑战也越来越大,我们之前做过了很多系统,都必须要去维护,又必须开发新的系统和功能,由于之前的规划或者基础架构的不合理而导致了我们的总体费用中用于新系统开发的费用比例越来越少,意味着我们所能拥有的成本越来越低,能力要求越来越高。
从自然的因素来看这些问题也许是必然存在的,因为我们的IT架构总是滞少后于我们的商业策略,我们数据模型/应用模型/基础架构又滞后于我们的IT架构。然后我们在期待和抱怨的时候,却没有发现一个固定的商业策略,他们只是一些愿望,期待着产量的提高,管理的成本降低,效率的增加等。意味着IT企业需要一个适应策略变化的IT架构,这里说的IT架构包括了人员/技术/管理/基础架构,也就是说我们需要一个高效的团队。
谈到如何去建立和优化这样一个基础架构,我们也许会无从着手,迷茫,时常有种感觉就是看到了某篇文章描述了某个概念时眼前一亮伸手却抓不着,其实我们的周围不停的会出现各种设计模式的介绍、各种架构的思想(SOA等)、各种平台(J2EE,NET)等,也有人经常去探讨哪种架构更好,哪个开发工具更好,其实冷静的思考一下,这些东西很多脱离了一个事务的本质,当我们在大谈大道理、把客户的需求描述得很精彩的时候却忘了IT的本质,我们只是为了客户的愿望和公司的价值去服务,这才是我们的价值本质。
在很多年前,我们面临的IT环境比现在单纯,那时我们的客户像听话的孩子,很容易被我们引导,开发人员可以单纯的追求成功的算法,而现在却是一个个性张扬的时代,我们客户的需求更加趋于个性化,客户去达到自己愿望的途径和思想指导也越来越多,需求对我们IT服务过程的指导作用越来越低。我们需要更多哲学的思想去指导我们IT基础架构的优化,同时需要探讨出一种价值驱动的思路去指导我们优化的过程。在这里抛砖引玉了。
一、现有基础架构的分析
包括现有的资源分析、能力分析、差距分析等,进行这些分析就是所谓的知己。
资源分析:主要包括人员结构、公司的组织结构模型、IT设备资源计算分布(有多少服务器,都在做什么计算,运行什么样的系统等)等。
能力分析:就是知道我们现在的架构能做什么,能做好什么,跟客户打交道我们有了什么样的能力,售后服务我们有什么样的能力,开发新产品我们有什么样的能力等
差距分析:我们欠缺什么能力,什么资源,我们要达到一个目的需要培养什么样的资源和能力等
二、服务过程的分析
也就是需要对我们客户的需求进行一些抽象同时为IT企业的经营活动做一些归纳,我们需要分析我们的目标客户群的特征,包括他们的愿望,他们对IT的理解程度、文化背景、IT基础现状等,根据这些特征去归纳我们要对客户或者企业经营的一些活动,如方案、需求分析、设计、开发、实施、维护等。不同的客户特征或经营策略会对应不同的活动,比如某个销售软件产品的公司可以将他们的服务过程归纳为推广、售前、售中、售后等。这就是所谓的知彼。
三、优化基础架构
做到了知己知彼,下面要做的就是怎样通过优化基础架构去提升价值。其实无论什么样的环境和架构,我们只有三个根本的需求就是降低成本、提高能力及安全性。在基础架构中可以分为四个维度:产品/技术/人员/过程。像四跟柱子支撑着我们基础架构,通过这四根柱子去满足这三个基本的需求。这个过程中需要一些活动的支持,包括典型错误的分析、风险管理、技术管理、架构设计、运维管理等。
典型的错误分析:这是优化一个基础架构的必要,也是一个团队的成长的必要,开发、维护的过程中经常会遇到各种问题,发生各种错误,对这些问题和错误进行分析后,在解决问题的同时也知道了产生错误的原因,才能使后续的效率提高。假如在一个团队产生过的错误到另一个团队中还产生同样的错误,很难提高能力。
风险管理:这是一个防范于未然的做法,根据我们的预算、产品特性、客户的需求、客户的特征及我们的资源、能力和差距去识别各种风险,然后分析如何去规避或应对这些风险,提升了风险的管理能力意味着提升了企业的经营能力。
技术管理:是对于IT企业相当重要的一个环节,包括技术的标准化、技术的积累、团队技能的训练等。通过这些技术管理的活动去提高处理错误的能力和风险管理的能力。比如:我们的团队中做同一类型的系统开发和维护中有的用VB、有的用ASP、有点用JSP或.NET,这样团队对于开发的软件的后续维护成本大大增加,它降低了资源的利用率;又比如我们在做一个系统的时候,某个子功能,在不同的模块中都有用到,但不同的人都有不同的实现,接口不统一,当子功能对应的业务规则发生变化时,每个地方都要去修改,一旦忘记了某个地方没有修改,大大的消耗了资源。因此我们的技术管理需要标准化、需要项目管理的方法是项目开发过程更加有效和高效、需要一些基本原则、需要一些公共的知识管理、需要一些制度去约束过于个性化的技术、需要一个空间去容纳技术人员对团队技术能力的贡献等等。
架构设计:对于IT企业增加社会竞争力是非常重要的一个环节,我们的环境使需求对开发的指导效用越来越低,我们客户的机构中市场部和生产部门对我们系统中的一个功能完全会提出不同的需求来,我们必须有适应变化的架构设计去迅速满足客户的需求变化,也就是我们必须去抽象这些需求,对我们的目标客户的某一类系统需求的特征进行抽象,然后进行架构设计,架构设计中关注架构、接口及交互等,比如我们给我们的客户提供的管理类系统实现一个这样的架构,包括表示层、组织结构模型、权限、工作流、消息服务、报表、门户等,这样我们可以快速的去建立能适合各种需求或需求变化的架构。
运维管理:特别是对提供IT服务的企业相当重要,合理的运维管理方法可以是运行维护的成本变得更加可控的同时,清晰了各种运维活动的成本和能力,并能清晰的知道改如何去改善,比如我们记录我们故障的发生现象、分配并能明确故障处理的责任、积累处理的知识、通过技术减少发现问题和自动维护的人工成本等等。无一不是降低成本和提高能力的做法。
四、持续改善基础架构
一个优化的基础架构不可能一下子做得很好的,我们需要的是一个与能力俱进的优化架构,同时一个机制让我们可以持续改善,循环地去分析我们现有的资源、能力、差距和我们的目标与挑战,要达到这些目标,我们有哪些问题和风险是必须要处理和管理的,我们如何才能达到我们的目标。实际上每一次优化都可能为增加更多的资源,再利用这些资源再去对基础架构进行优化,循序渐进才能越来越好,我们的基础架构最关键的一点就是与能力俱进。盲目去追求一些理想的状况是非常不可取的,就象是一个飞机的发动机装在一个拖拉机上是有害而无利的。我们在买车的时候考虑了外观、性能、安全、舒适的时候却忘了我们不够那么多钱买不起。
结束语:
曾经听到一个非常优秀的经理跟我们说过一句话:“口渴了去挑水喝的时候不要忘记架一根水管”,也许我们很多企业经常会碰到一些情况,问题发生过很多次了,还要重复发生、一些概念讲了很多遍了,还在讲,对于问题的本质没有什么改善,几年前到处找水喝,出了问题,到处抓壮丁,补漏洞。到了现在还没有去修好水管,问题越来越多。 也还有一些企业意识到了基础架构的重要性,但不与能力俱进,资源、能力都不能与目标匹配,资源没有分配到适当的地方,最终对经营造成影响。
IT是一门艺术,是产品/技术/过程/人员的交响曲,少了任何一种音乐,它将不再美丽。在IT领域从事了14年的过程中突然发现了自己能力是越来越不足了,为了能成为这样一个指挥家去演奏一段非常优美的音乐,路还很长,4年前有一些隐约的感觉,于是潜心研究了工作流的技术,也研发了工作流的一个产品,但真正要把事情做好,还需要各个方面的结合。
posted @
2008-07-04 09:53 朱明春 阅读(386) |
评论 (1) |
编辑
我们在做一个业务系统的时候,报表是必不可少的.那我们会选择什么方式来实现呢?
通常实现报表的方式有几种:一种是我们自己做一个报表工具,来实现一些相对比较简单的报表;另一种是找开源的报表工具,自己再改改,来实现报表;还有一种是用像Reporting Services,水晶报表等知名报表.我相信大部分的系统都会选择最后一种实现方式.
Reporting Services和水晶报表都用过一段时间,个人感觉还是比较喜欢Reporting Services,喜欢的理由有几点:第一它符合SOA架构,系统耦合度不高;第二安装布署方便,SQL Server 2005中已经在安装包中自带了;第三符合我们的开发习惯.
最近在
E8.Net工作流开发架构上刚做了一些报表,有一些也在使用Reporting Services报表的朋友问我,怎么样调用Reporting Service?
Reporting Services调用有几种方式,第一种是URL方式,第二种是Report View方式.其实实现原理都差不多,只是Report View多了一层封装.
第一种方式
URL方式:http://服务器地址/ReportServer/Pages/ReportViewer.aspx?%2f报表目录%2f报表名称&rs:Command=Render
第二种方式:
~\Reports\frmReportMain.aspx?ReportName=BYTSListReport&Toolbar=true&Parameters=true
以下是frmReportMain.aspx页面的代码:
/// <summary>
///访问报表方式 0 URL直接访问方式,1 摸拟登录访问方式
/// </summary>
public string VisitReportMode
{
get
{
if (ConfigurationManager.AppSettings["VisitReportMode"] != null)
return ConfigurationManager.AppSettings["VisitReportMode"].ToString();
else
return "0";
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
this.InitPage();
}
}
/// <summary>
/// 初始化页面
/// </summary>
protected void InitPage()
{
//报表服务器
string reportServer = System.Configuration.ConfigurationSettings.AppSettings["ReportServer"];
string pStrReportPath = System.Configuration.ConfigurationSettings.AppSettings["ReportPath"];
//报表名称
string pReportName = Request["ReportName"].ToString();
//设置参数
SetParam();
rptViewer.ServerUrl = reportServer;
rptViewer.ReportPath = pStrReportPath + pReportName;
if (Request["Toolbar"] != null)
{
if (Request["Toolbar"].ToString().ToLower() == "true")
rptViewer.Toolbar = Microsoft.Samples.ReportingServices.ReportViewer.multiState.True;
else
rptViewer.Toolbar = Microsoft.Samples.ReportingServices.ReportViewer.multiState.False;
}
if (Request["Parameters"] != null)
{
if (Request["Parameters"].ToString().ToLower() == "true")
rptViewer.Parameters = Microsoft.Samples.ReportingServices.ReportViewer.multiState.True;
else
rptViewer.Parameters = Microsoft.Samples.ReportingServices.ReportViewer.multiState.False;
}
}
/// <summary>
/// 设置报表参数
/// </summary>
protected void SetParam()
{
if (Request["ReportParam"] != null)
{
string sReportParam = Request["ReportParam"].ToString();
string sReportParamValue = Request["ReportParamValue"].ToString();
string[] sArrParam = sReportParam.Split(',');
string[] sArrParamValue = sReportParamValue.Split(',');
for (int i = 0; i < sArrParam.Length; i++)
{
rptViewer.SetParameter(sArrParam[i].ToString().Trim(), sArrParamValue[i].ToString().Trim());
}
}
}
E8.Net工作流平台 提升企业战略执行力
ITIL与ITSM QQ群4:58342347
.NET企业应用开发与工作流QQ群:17110384 53284682(已满) 42302450(已满)
http://www.feifanit.com.cn/
posted @
2008-07-01 10:03 朱明春 阅读(178) |
评论 (0) |
编辑
ITIL与ITSM QQ4号群:1260249
.NET企业应用开发与工作流QQ 4号群:41553575