vb 64位系统 不识别控件的 dataformat data,怎么解决?

二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1870)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'win7 64位下 注册MSADODC.OCX(VB6 连接数据库控件错误的解决方法)',
blogAbstract:'64位系统下VB6连接数据库控件找不到怎么办呢?
1、从system32下的MSADODC.OCX和MSADODC.bat复制到sysWOW64文件夹下
2、以Administrator用户登计算机打开sysWOW64双击MSADODC.bat来注册MSADODC.OCX',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:0,
permalink:'blog/static/',
commentCount:2,
mainCommentCount:2,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}当前访客身份:游客 [
全球最大的控件提供商、微软认证的金牌合作伙伴,旗下有ComponentOne、Spread、ActiveReports、Wijmo等系列控件产品,以及支持 HTML5、iOS、Android等的开发工具。 欢迎大家关注【葡萄城控件】...
:APP或网站/微信【注册决定成败】市场调查分析:目...
:围观!!
:引用来自“开源中国匿名会员”的评论 引用来自“...
:引用来自“lee1994522”的评论感谢!请问这个深入...
:感谢!请问这个深入浅出OOP系列还会有后续吗?
:引用来自“葡萄城控件技术团队”的评论 引用来自...
:引用来自“jorneyr”的评论在演示Mac OS X版的时...
:引用来自“CN_fox”的评论代码编辑器点赞~Visual...
今日访问:3
昨日访问:58
本周访问:257
本月访问:1238
所有访问:32576
列表模式: |
在&ActiveReports&中,可以设置报表中不同控件的样式,然后把这些样式保存到一个外部的XML文件当中,供其他报表使用。如果用户希望同一份报表以不用的外观分发,只需要简单地修改样式表单,无需逐个改变每个报表中的单个控件的字体、颜色、尺寸等。
本文中演示的是为年度销量统计表设置不同的皮肤样式,我们供准备了三个皮肤样式,以下是详细操作步骤:
1、创建报表文件
在应用程序中创建一个名为&rptTheme1.rdlx&的&ActiveReports&报表文件,使用的项目模板为&ActiveReports&页面报表,创建完成之后从&VS&的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源
Micorsoft&OleDb&Provider
OLE&DB&提供程序:
Microsoft.Jet.OLEDB.4.0
服务器或文件名称:
Data\NWind_CHS.mdb
3、&添加数据集
在新建的&NWind_CHS&数据源上鼠标右键并选择添加数据集菜单项,添加以下两个数据集:
常规-名称:Sales
查询-查询:
类别.类别名称,订单.货主地区,
(订单明细.数量)&
订单.订单ID&=&订单明细.订单ID)&
订单明细.产品ID&=&产品.产品ID)&
产品.类别ID&=&类别.类别ID&
DATEDIFF(&yyyy&,订单.订购日期,'')&=&0
类别.类别名称,订单.货主地区&
类别.类别名称,订单.货主地区
常规-名称:SaleDetails
查询-查询:
DATEPART(&m&,订单.订购日期)
订购月,类别.类别名称,
(订单明细.数量)&
订单.订单ID&=&订单明细.订单ID)&
订单明细.产品ID&=&产品.产品ID)&
产品.类别ID&=&类别.类别ID&
DATEDIFF(&yyyy&,订单.订购日期,'')&=&0
DATEPART(&m&,订单.订购日期),类别.类别ID,&类别.类别名称
DATEPART(&m&,订单.订购日期),类别.类别ID,&类别.类别名称
4、设计报表界面
4.1、在&GrapeCity&ActiveReports&主题编辑器中创建三个主题样式
Style1.rdlx-theme
Style2.rdlx-theme
Style3.rdlx-theme
创建完成以上主题样式之后,为报表指定一个主题,我们在设计时指定的主题样式为&Style1
4.2、创建年度各地区销量统计表
从&Visual&Studio&工具箱中将&Chart&控件添加到报表设计界面,按照以下列表设置&Chart&控件的属性
图表数据属性对话框:
常规-数据集名称:
系列值-值:
=Sum([销售量])
类别分组:
名称:Chart1_CategoryGroup1分组-表达式:=[类别名称]&标签:=[类别名称]
系列分组:
名称:Chart1_SeriesGroup1分组-表达式:=[货主地区]&标签:=[货主地区]
图表外观属性对话框:
图表类型:折线图子类型:平滑&标题:2011年度各地区销售量统计表&调色板:&=Theme.Colors.Accent1&=Theme.Colors.Accent2&=Theme.Colors.Accent3&=Theme.Colors.Accent4&=Theme.Colors.Accent5
4.3、创建各地区销量图
从&Visual&Studio&工具箱中将&Chart&控件添加到报表设计界面,按照以下列表设置&Chart&控件的属性
图表数据属性对话框:
东北地区销量图
数据集名称:Sales
值:=Sum([销售量])
类别分组:
名称:Chart2_CategoryGroup1表达式:=[类别名称]&标签:=[类别名称]
表达式:=[货主地区]运算符:Equal&值:东北
图表外观属性对话框:
图表类型:分高图表
=Theme.Colors.Accent1=Theme.Colors.Accent2&=Theme.Colors.Accent3&=Theme.Colors.Accent4&=Theme.Colors.Accent5&=Theme.Colors.Accent6&=Theme.Colors.Hyperlink&=Theme.Colors.HyperlinkFollowed
4.4、重复4.3操作,创建华北、华东、华南、西南四个地区的销量图,图表区域在于过滤条件的值不同。
最终的设计结构如下图:
5、在后台代码中动态加载用户指定的主题样式
GrapeCity.ActiveReports.PageReport&report&=new&GrapeCity.ActiveReports.PageReport(new&System.IO.FileInfo(Server.MapPath(&../Reports/&&+&reportname&+&&.rdlx&)));&report.Report.DataSources[0].DataSourceReference&=&&&;&report.Report.DataSources[0].ConnectionProperties.DataProvider&=&&OLEDB&;&report.Report.DataSources[0].ConnectionProperties.ConnectString&=&string.Format(&Provider=Microsoft.Jet.OLEDB.4.0;Data&Source={0};&,&Server.MapPath(&../Data/NWind_CHS.mdb&));&report.Report.Themes.Clear();&report.Report.Themes.Add(Server.MapPath(string.Format(&../Theme/Style{0}.rdlx-theme&,&themeid)));&WebViewer1.Report&=&
6、运行程序
在线演示及源码下载地址:
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(1) | 评论(0) |
投票(0) | 收藏(0)
作为.NET程序员,往往习惯使用一种语言(据我观察,2006年后的程序员习惯用C#,之前的喜欢VB)。而对于另一种语言虽然能读懂但是写起来总是比较费事。尤其面对旧的项目升级或者才考其他网上的开源资源的时候,总会很麻烦。于是诞生了很多VB和C#互转的工具,例如Developerfusion的CsharpToVB工具。不过那是在线版本的,可能受到网络条件限制,反应很慢或者干脆由于禁网无法访问。综上,我准备自己写一个C#和VB的互转工具,方便大家使用。
该工具主要针对文件夹,进行批量转换。它能把SourceDirectory文件夹以及所有子文件夹下的C#和VB文件,按照原有目录结构转换后,保存到TargetDirectory中。其中转换功能基本等同于developerfusion的工具。()比如关键字foreach和#region都可以正确转换。不过目前还有些问题,挂事件和一些资源的引用转换有待完善。先发出来请大家用用,欢迎多提意见~
界面如下:(比较?丝,将就着看吧)
使用的第三方库
该工具中使用的是开源项目 &SharpDevelop& 的库,分别引用了
ICSharpCode.Core.dll
ICSharpCode.NRefactory.dll
ICSharpCode.SharpDevelop.Dom.dll
log4net.dll
Mono.Cecil.dll
该库的用法如下:
using ICSharpCode.SharpDevelop.Dom.NRefactoryR
CodeSnippetConverter converter1 = new CodeSnippetConverter();
converter1.CSharpToVB(code, out errors);
converter1.VBToCSharp(code, out errors);
工具和源码
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(7) | 评论(0) |
投票(0) | 收藏(0)
移动互联时代的到来
随着Web的迅速发展,各种应用和服务层出不穷,现在打开电脑,可能使用最多的程序应该是浏览器了,访问不同的网站,可以满足人们购物,社交,获取新闻资讯,娱乐,等等需求。然而近几年内,移动设备快速崛起,移动互联网慢慢进入人们的生活,预计未来5年内移动设备的使用度会超过桌面计算机。所以需要您的网站不仅要在桌面计算机大尺寸屏幕上可以为用户提供友好的UI和用户体验,同时在小尺寸屏幕上也应该可以提供一致的用户体验。使得用户可以在桌面大屏幕上和移动小屏幕上平滑的切换使用,同时没有任何的不适应感觉。
(移动设备趋势:)
要网站在桌面大尺寸屏幕上和移动小尺寸屏幕上提供一致的用户体验,最直接的方法就是为每种设备及分辨率制作一个网站或者特定的页面,使得移动用户在这些页面里取得平滑友好的用户体验。但是到底有多少不同的移动设备和屏幕分辨率呢?这种方法需要投入多少成本能?
(早先的数据:年市场中的400余种移动设备的统计情况
这份统计结果已经比较早了,随着时间的推移,又有很多移动设备投入市场,为每种设备及分辨率制作一个网站或者特定的页面,这应该是比较大的工作量,是比较耗时耗费资源的。是否可以只做一个网站一套页面,既满足桌面大尺寸屏幕,同时也可以满足各种不同移动设备的小尺寸屏幕。
此外,移动设备的盛行为各大企业创建了一个新的市场机遇,使其能够通过一种新的方式来为客户、合作伙伴和员工交付信息和服务,从而帮助其增加收入,提高业务敏捷性和生产力。要利用此机遇,企业需要开发移动应用程序,以便使其能够在移动设备上良好的运行。他们必须将这些应用程序与后端系统或者其他资源(例如:云)连接起来,以发挥其最大优势。
企业面临着新的挑战,如何能高效地开发&HTML5、混合应用和原生的移动应用,提供端到端的整体生命周期管理与安全防护,&并将它们与企业前后端应用系统和基于云的服务连接起来。最终通过O2O的商业模式,完成客户价值与商业价值的转换。
跨平台开发工具:Worklight
Worklight是一个用于开发管理企业App的平台。App用HTML,CSS和Javascript写成,之后被扩展成桌面的(Windows,Mac,Linux),互联网的(Facebook等),本地移动设备上的(iOS,Android,RIM和Windows&Phone)应用程序。开发者还能把一些流行的Javascript构架如jQuery&Mobile,Sencha和Dojo整合到Worklight中。而且App的本地运行时也能用本地代码来编写和修改。
Worklight为企业提供了众多的功能,例如开发环境,后端集成,Plus&Deployment,运行时和App生命周期管理,也包括分析和资源调配功能。这个平台有一个只可供评估使用的免费版本。
Worklight混合式App被封装在可修改的运行时壳里,这个壳包括一个本地设备API和Javascript之间的转换通道,以及运行时库。Worklight应用了一个“质量可以保证”的PhoneGap库的子库,来获得使用本地功能的权限。
Worklight移动开发与管理解决方案能够帮助您缩短上市的时间,减少开发与管理的成本和复杂性,同时还能够为使用各种各样的移动设备的客户或员工提供优质的用户体验。
跨浏览器HTML5控件集:Wijmo
专门用于创建桌面和移动Web应用程序的HTML5控件集。从交互式图表到强大的表格控件,Wijmo包含了您所需要的一切。Wijmo建立在标准的JavaScript库基础上,就像jQuery&UI和jQuery&Mobile一样。此外,Wijmo还集成了多个框架,包括Knockout、Angular以及BreezeJS。只要您了解jQuery,您就懂得Wijmo。
Wijmo使您的Web应用程序速度更快,运行更顺畅甚至比从前更吸引人。基于行业标准,使用HTML5、jQuery、CSS3和SVG,Wijmo控件使您的应用程序适应今天的Web技术潮流。此外,Wijmo还集成了Knockout、Angular以及BreezeJS。Wijmo支持包括IE6+、Firefox&3+、Safari&3+以及Chrome等这些主流浏览器。
响应式设计融合Worklight和Wijmo
响应式设计来源建筑行业,就是为了解决移动互联网发展为企业带来的挑战。需要快速高效、更节省资源的前提下完成多传统互联网时代设备的支持,同时又要在新兴移动互联网时代的移动设备上给出用户完美的体验&。
响应式设计引入了理念的革新,同时提出多种技术手段适应跨平台信息系统的开发。包括:流体表格(Fluid&Grid)、液态图片(Liquid&Image)以及媒体选择器(CSS3&media&queries)。
通过响应式设计完成用户界面设计,通过Worklight进行系统研发、测试、发布及生命周期管理,同时配以Wijmo丰富的HTML5控件,完成数据收集、分析、可视化展示,进而生成报表,并打印出最终结果。这将为移动互联时代跨平台跨浏览器的企业信息系统提供全方位,近乎完美的解决方案。
最后给出一个跨平台,跨设备,跨浏览器的移动互联时代网站的示例:
PC中的效果
移动设备的效果
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(4) | 评论(0) |
投票(0) | 收藏(0)
用户可以使用ActiveReports参数&(Parameters)集合把数据提供给报表中的文本框或图表,也可以选择数据的一个子集显示到报表的特定区域,或者是把数据从主报表象子报表传递。用户可以通过三种方式获取数据的值:提示用户输入;从主报表取值并传递给子报表;从Windows&form或者Web&form上取值。
1、创建报表文件
在应用程序中创建一个名为&rptOrderDetails.rdlx&的&ActiveReports&报表文件,使用的项目模板为&ActiveReports&页面报表,创建完成之后从&VS&的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,在参数节点中添加以下三个报表参数
名称:ProductID数据类型:Integer&提示用户输入值显示的问题:产品名称:&多值:True
名称:StartDate数据类型:DateTime&提示用户输入值显示的问题:起始日期:
名称:EndDate数据类型:DateTime&提示用户输入值显示的问题:截止日期:
3、打开报表资源管理器,并按照以下信息创建报表数据源
Micorsoft&OleDb&Provider
OLE&DB&提供程序:
Microsoft.Jet.OLEDB.4.0
服务器或文件名称:
Data\NWind_CHS.mdb
4、&添加数据集
在新建的&NWind_CHS&数据源上鼠标右键并选择添加数据集菜单项
4.1、添加数据集参数
名称:Param1值:=[@ProductID]
名称:Param2值:=[@ProductID]
名称:Param3值:=[@StartDate]
名称:Param1值:=[@EndDate]
说明:在添加参数设置值属性时,可以点击下拉列表,并选中&表达式&选项,然后在表达式编辑对话框中设置参数的值
4.2、设置数据集其他属性
常规-名称:OrderDetails
查询-查询:
SELECT 订单.订单ID, 订单.客户ID, 订单.订购日期, 产品.产品名称,订单明细.数量, 订单明细.单价, 订单明细.折扣
from&((&订单innerjoin 订单明细 on 订单.订单ID =&订单明细.订单ID&)innerjoin 产品 on 订单明细.产品ID =&产品.产品ID&)where (订单明细.产品ID in (?) or-1in (?)) andDateDiff(&d&,?,订购日期) &0andDateDiff(&d&,?,订购日期) &0ORDERBY 订单.订单ID;
说明:在以上查询语句&Where&条件中使用了参数查询,参数使用的是&?&占位,?&的出现顺序需要与数据集参数中定义的参数顺序一致。同时,&?&是&Access&中的查询参数设置方式,&SQL&Server&中需要使用以&@&开始的字符串作为参数。
5、设计报表界面
从&Visual&Studio&工具箱中将&Table&控件添加到报表设计界面,并将&OrderDetails&数据集中的字段拖拽到&Table&的相应列中,得到的设计界面如下:
6、运行程序
通过&F5&键运行程序,在参数面板中输入值之后,点击查看报表按钮,将得到以下结果:
7、自定义报表参数面板
ActiveReports&报表处理支持内置的报表参数面板,您还可以提供独立于报表Viewer控件的自定义报表参数面板,类似的实现效果如下:
然后在“运行报表”按钮的Click事件中实现报表参数的设置并运行报表:
protectedvoid btnRun_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&PageReport1.rdlx&)));
report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
WebViewer1.Report = report1;
源码下载地址:
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(2) | 评论(0) |
投票(0) | 收藏(0)
通过 Spread 设计器用户可以快速地对 Spread 控件进行设计。无论用户是正在做一个关于 Spread 控件特性的原型研究,还是对于一个已经存在的 Spread 控件在某些方面进行进一步的定制,Spread 设计器专有的图形界面可节省大量的时间和精力。Spread 设计器允许用户添加数据,同时设置控件属性,而且还包括那些在 Visual Studio 中无法设置的属性。用户可以同时设置运行时和设计时属性,大多数情况下用户可以在应用设置之前预览效果,设置完成后,就可以将所有的设置应用到 Spread 控件。使用 Spread 设计器,控件定制会变得非常简单、快速。
Spread 设计器允许用户将设计的结果保存为文件,并与他人共享。将设计保存为文件后,下一次可以打开进行进一步的修改,也可以打开其他团队成员的设计文件。
开启 Spread 设计器
通过以下步骤用户 可以在 Visual Studio .NET 中开启 Spread 设计器:
1. 鼠标右键点击 Spread 控件,在弹出菜单中选择 Spread 设计器。
2. 在设计表单上选中 Spread 控件,按下 F4 键显示属性窗口。在属性窗口的下方点击 Spread 设计器 命令。
用户也可以在 Visual Studio .NET 之外独立运行 Spread 设计器。 在安装产品后的 Bin 文件夹下面,运行 FarPoint.SpreadDesigner.EXE 应用程序。
当 Spread 设计器独立运行的时候,有一些功能将无法使用。这些功能与 Visual Studio 集成,会读取或者应用一些设置到开发环境,只有在设计器没有作为一个独立的应用程序运行时提供。
Spread设计器的用户界面如下图:
在设计器属性窗口中列出了当前选中对象的属性。用户可以使用对象列表选中指定的对象,也可以通过点击表单、单元格行、单元格列、单元格来选中指定的对象,接下来就可以在属性窗口中编辑选中对象的属性了。
为了帮助用户更好的使用 Spread 设计器,在设计模式下 Spread 设计器并不会应用一些属性。例如如果用户设置表单不显示单元格列的头区域,在设计器中单元格的头区域仍会继续保持可见状态来辅助用户进行下一步的设计。下面的属性列表都是这类属性,为了能够更好的辅助用户设计,在设计模式下这些属性不会生效。
ColumnHeaderVisible
EditModePermanent
HorizontalScrollBarPolicy
RowHeaderVisible
TabStripPolicy
VerticalScrollBarPolicy
当前示例演示如何在 Spread 设计器中创建 Spread 表单。它创建 一个 Spread 表单,用来跟踪仓库中哪些产品卖的好。无论 Spread 控件设计器是以单独应用程序运行,或是从 Visual Studio等开发环境内部启动,这个例子都可以使用。
第一步,我们需要启动 Spread 控件设计器
1. 启动 Spread 控件设计器。
2. 然后,我们需要配置 Spread 表单。
3. 设定 Spread 表单的大小。点击整个 Spread 表单的表角区域选中Spread 表单。 在属性窗口中通过拖动滚动条,用户可以看到 Spread 表单的行数和列数都是500。 点击并编辑这两个属性,将其更改为10。
4. 在单元格行和列的头区域添加有意义的文字。通过点击单元格行的头区域,将该单元格行选中。右键点击该行,在弹出菜单中选择“页眉”。表头编辑器将被打开,改变其宽度为 60,然后点击“应用”按钮。这个时候应用程序会弹出一个提示框询问是否将该设置应用到整个头区域,点击“是”。
5. 右键点击单元格列 A 的标签“A”,在弹出菜单中选择“页眉”,然后在属性窗口中将文本属性更改为“产品”。
6. 接下来,继续在属性窗口中改变单元格列的背景色为黄色,点击“应用”,然后点击“确认“关闭编辑窗口。再次右键点击当前单元格列的头区域,在编辑窗口中将列高更改为 75,点击“应用”。 点击单元格列 B 的标签“B”,采用上面的步骤,将其标签更改为“# 已产出”,右键点击选中的列,在弹出的菜单中选择单元格类型,然后选择number类型,并且将其列宽调整为 75。点击单元格列 C 的标签“C”,采用同样的步骤,将其标签更改为“# 已销售.”,单元格类型更改为数字,列宽调整为75。
7. 点击单元格列 D 的标签“D”,采用同样的步骤,将其标签更改为“价格.”,单元格类型更改为 数字货币,列宽调整为 75。
8. 点击单元格列 E 的标签“E”,采用同样的步骤,将其标签更改为“收入.”,单元格类型更改为数字货币,前景色调整为蓝色。依次将单元格 E1 至 E4 选中,在公式编辑框中输入“=”,然后输入“Cn * Dn”(其中“n”为 E1 至 E4单元格的行索引)。然后在右键菜单中点击“单元格头区域设置”,将头区域的“locked”属性设置为 true,最后设置列宽为 85。
9. 点击单元格列 F 的标签“F”,采用同样的步骤,将其标签更改为“产品状态.”,单元格类型更改为下拉选择框。(右键点击选中的列,选择CellTypes菜单,下拉选择框单元格,然后点击项目标签)。
10. 在项目标签栏,第一行输入“继续生产”,第二行输入 “停止生产.”,点击“应用”按钮,将其列宽调整为 85。 点击单元格行 5 的标签“5”,将其标签更改为“合计”,同样将单元格行 6 的标签更改为 “平均.”。
11. 在“# 已产出”单元格列和“合计”单元格行的相交单元格上输入公式“SUM(B1:B4)”, 在“# 已销售”单元格列和“合计”单元格行的相交单元格上输入公式“SUM(C1:C4)”,这个时候,“0” 会出现在这两个单元格上。 在“收入”单元格列和“合计”单元格行的相交单元格上输入公式“SUM(E1:E4)”。
12. 在“收入”单元格列和“平均”单元格行的相交单元格上输入公式“Average(E1:E4)”,它将会给出一个平均收入。任何一项收入的改变都回影响到平均收入,如果没有使用 Spread 设计器 用户可能会忽略这一点。
13. 将设计应用至 Spread 表单。
14. 直接退出 Spraed 设计器,用户就可以将设计应用到 Spread 控件。这时开发环境中的 Spread 控件已经与刚才在设计器中的完全一样。
15. 现在如果在“# 已销售”和“# 已产出”列的单元格中输入数据,会发现“收入”列的合计单元格会发生变化。也可以改变“价格”列,来观察“收入”列的变化。
16.下一步就是编译用户的应用程序。
17. 为了编译应用程序,在主菜单上点击“编译”,然后移动至“编译文件名称”处。
18. 编译成功后,Visual Studio 会创建一个可执行文件,并将其放置在 Visual Studio 的工程文件夹中。
19. 接下来我们需要保存文件并退出。
点击主工具栏上文件菜单中的保存选项来保存项目。
从 Spread 设计器中将设计结果应用到 Spread 控件后,会在开发环境中生成一些代码,如下图所示:
独立运行Spread设计器
用户可以将 Spread 控件设计器作为一个单独的应用程序,独立于 Visual Studio 单独运行。对于大多数希望共享设计的开发人员来说,运行单独的设计器程序,将设计结果保存为 XML 或者 EXCEL 兼容的文件格式,是非常方便和快捷的。当Spread 设计器以单独应用程序运行的时候,有一些功能将无法使用,因为这些功能 将会同Visual Studio集成,会读取或者应用一些设置到 Visual Studio 中。
独立运行 Spread设计器最简单的方式就是运行在安装目录下的Bin文件夹中的Spread设计器的可执行文件。
用户也可以为 Spread 设计器可执行文件创建一个快捷方式,或与 Windows 操作系统与其他的应用程序协同工作。
附:Spread for Windows Forms快速入门系列文章
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(3) | 评论(0) |
投票(0) | 收藏(0)
开发人员可以对Spread表单中的行和列进行自动排序操作,如根据指定的列,以升序方式自动排序表单中的数据。同时,也可以显示排序指示器。这些操作不会影响数据模型 仅仅涉及数据如何显示。
允许用户自动地对行进行排序
你可以设置表单以允许用户在列首被点击的情况下使用自动排序这一功能。当列首第一次被点击(被选中)时,未排序的图标就会显示。第二次点击时就会显示排序图标并且会将列进行排序。如果用户在相同的列上 连续点击,那么排序的方向就会被反转。这并不影响数据模型,只会影响数据如何显示。下面的图表显示了未排序图标。
使用Column对象的 AllowAutoSort 属性或者SheetView对象的SetColumnAllowAutoSort 方法允许用户点击列首进行自动排序操作。设置列的SortIndicator属性以显示排序指示器。
设置SetColumShowSortIndicator方法或者ShowSortIndicator 属性以显示或隐藏排序指示器。排序指示器在列的头部的显示方式如下图,它显示了升序和降序的排序指示器。
升序指示器
降序指示器
当用户排序数据时,排序之前会发生AutoSortingColumn事件,排序之后会发生AutoSortedColumn事件。
下面的示例显示了对进行前面的30列进行自动排序:
fpSpread1.Sheets[0].Columns[0,29].AllowAutoSort = or fpSpread1.Sheets[0].SetColumnAllowAutoSort(0,30,true);
使用自动排序
在表单中,根据指定的键,使用AutoSortColumn方法对显示区域进行排序操作。 并使用SetColumShowSortIndicator来设置是否显示排序指示器。 AutoSortColumn方法进行的操作与点击指定列的列首操作相同(如果此列的 AllowAutoSort属性已被设为true)。如果同一个列索引成功调用此方法,那么排序的方向就会发生倒置。如果此方法被不同的列索引调用,那么这之前的 已排序的列指示器就会被改回SortIndicator.None(如果有),并且表单以指定的列为键进行排序。 这些操作不会影响数据模型,只会影响数据显示方式。这种方法的几种不同的重载提供了不同的排序方式。
下面的这个示例自动的将第一列进行排序。
fpSpread1.ActiveSheet.SetColumnAllowAutoSort(0, true); fpSpread1.ActiveSheet.SetColumnShowSortIndicator(0, false); fpSpread1.ActiveSheet.AutoSortColumn(0);
对若干行,列,或者一个区域进行排序
根据跟定列的值对整个表单的所有行进行排序是最常见的一种情况。同时Spread也允许你既可以对行或者列进行排序,又可以指定列或行作为关键字进行排列。这种排列对整个表单都有效。
通过使用SortColumns (或 SortRows)方法,以某个或某几个行(或列)作为键,对表单中一定区域内的列或行进行排序。 这些操作不会影响数据模型,仅作用于数据的显示。
你可以只对某一区域内的单元格的数据进行排序,这是相当有用的。举例来讲,当你想要进行根据数量的顺序对许多行进行排序,但不包含最后一行统计数据,上面的 操作就相当有效。这种情况下,你可以在一个单元格区域内对数据进行排序,但是除掉最后一行,最后一行不参与排序。
在某一区域内对数据进行排序的方式有两种。对于绑定数据而言,使用SortRows方法和SortColumns方法, 同时在重载函数中传入指定的参数,这样你就可以指定哪个行区域或哪个列区域进行排序。对于非绑定数据而言,仅仅需要使用 SortRange方法。此方法不适用于绑定数据,因为操作产生的数据移动(并不是对整行整列生效)会影响源数据。
这段代码根据第二列的数据对所有行进行筛选。(因为列索引是以零为基础的,第二列的索引为1),排序指示器已经启动。
fpoint1.ActiveSheet.SortRows(1,true,true);
下面的示例显示了使用预先定义过排序信息列表对第12行到第230行进行排序。
FarPoint.Win.Spread.SortInfo[] sorter = new FarPoint.Win.Spread.SortInfo[1]; sorter[0] = new FarPoint.Win.Spread.SortInfo(0, false, parer.Default); fpoint1.ActiveSheet.SortColumns(12,230,sorter);
附:Spread for Windows Forms快速入门系列文章
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(3) | 评论(0) |
投票(0) | 收藏(0)
在&ActiveReports&中可以动态的显示或者隐藏某区域的数据,通过该功能用户可以根据需要显示或者隐藏所关心的数据,结合数据排序、过滤等功能可以让用户更方便地分析报表数据。
本文中展示的是销售数据分析表实现方法,该报表包含每年销售数据汇总图表,月度销售统计,以及每月销售明细属性。通过年度销售数据可以向下专区到月度销售数据,从月度销售数据可以向下钻取到月度销售明细数据,实现下图如下图:
1、创建报表文件
在应用程序中创建一个名为&rptDrollDown.rdlx&的&ActiveReports&报表文件,使用的项目模板为&ActiveReports&页面报表,创建完成之后从&VS&的报表菜单项中选择转换为连续页面布局(CPL)报表,将固定页面报表转换为连续页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源
Micorsoft&OleDb&Provider
OLE&DB&提供程序:
Microsoft.Jet.OLEDB.4.0
服务器或文件名称:
Data\NWind_CHS.mdb
3、&添加数据集
在新建的&NWind_CHS&数据源上鼠标右键并选择添加数据集菜单项
常规-名称:OrderDetails
查询-查询:
DatePart(&yyyy&,订单.订购日期)
订购年,&DatePart(&m&,订单.订购日期)
订购月,&订单.订单ID,&订单.客户ID,&订单.订购日期,&产品.产品名称,订单明细.数量,&订单明细.单价,&订单明细.折扣,&类别.类别名称
订单.订单ID&=&订单明细.订单ID&)&
订单明细.产品ID&=&产品.产品ID&)&
产品.类别ID&=&类别.类别ID)&
DatePart(&yyyy&,订单.订购日期)
4、设计报表界面
从&Visual&Studio&工具箱中将&BandedList&控件添加到报表设计界面,按照以下列表设置&BandedList&控件的属性:
常规-数据集名称:
OrderDetails
分组-分组1:
名称:BandedList1_Group1表达式:=[订购年]
分组-分组2:
名称:BandedList1_Group2表达式:=[订购月]
在&BandedList1_Header&区域中添加以下控件,并设置相应属性:
TextBox123
默认属性设置
Value:=Fields!订购年.Value&&&&&年销售汇总&
Value:=Sum(Fields!数量.Value&*&Fields!单价.Value&*&(&1&-&Fields!折扣.Value),&BandedList1_Group1&)
在&BandedList1_Group1_Header&区域中添加以下控件,并设置相应属性:
常规-数据集名称:OrderDetails系列值-系列标签:数量&系列值-值:=Sum([数量]&*&[单价]&*&(1&-&[折扣]))&类别分组-名称:Chart1_CategoryGroup1&类别分组-表达式:=[类别名称]&类别分组-标签:=[类别名称]
在&BandedList1_Group2_Header&区域中添加以下控件,并设置相应属性:
默认属性设置
常规-值:=[订购月]&&&&&月销售明细&
交互式排序选项卡的以下属性为文本框添加交互式排序功能:True&排序表达式:=[订购月]&选择数据区域或者分组:BandedList1_Group1&选择数据区域或者分组:BandedList1_Group2
常规-值:=Sum([数量]&*&[单价]&*&(&1&-&[折扣]),&BandedList1_Group2&)
交互式排序选项卡的以下属性为文本框添加交互式排序功能:True&排序表达式=Sum([数量]&*&[单价]&*&(&1&-&[折扣]),&BandedList1_Group2&)&选择数据区域或者分组:BandedList1_Group1&选择数据区域或者分组:BandedList1_Group2
在&BandedList1_Details&区域中添加以下控件,并设置相应属性:
=Fields!订单ID.Value
=Fields!产品名称.Value
=Fields!数量.Value
=Fields!单价.Value
=Fields!折扣.Value
=Fields!数量.Value&*&Fields!单价.Value&*&(&1&-&Fields!折扣.Value&)
完成基本的报表界面设计之后,我们需要为报表添加向下钻取功能,在&ActiveReports&中是通过指定报表元素的Visibility属性来实现向下钻取操作,需要设置的元素如下:
BandedList1_Group2_Header
Visibility.Hidden&=&TrueVisibility.ToggleItem&=&TextBox123
BandedList1_Details
Visibility.Hidden&=&TrueVisibility.ToggleItem&=&TextBox123
5、运行程序
点击向下钻取图标以显示或者隐藏报表明细数据
源码下载地址:
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(7) | 评论(0) |
投票(0) | 收藏(0)
Silverlight 5 在 Silverlight 4基础上做了一些补充和增强
丰富的媒体表现能力
增强的图形展现能力
构造下一代商业应用程序
信任模式的增强
其中,大多数增强来自于在线调查
Silverlight 5 功能介绍
调试XAML中的数据绑定
Visual Studio 性能分析工具
支持 Visual Studio Team Test
构造下一代商业应用程序
数据绑定增强
文本呈现增强
鼠标双击/多击支持
PivotViewer 控件
Postscript 矢量打印支持
遥控器和媒体命令支持
视频回放增强
工作在信任模式下
多窗口支持
无限制的文件访问
全屏模式下的键盘支持
COM 调用支持
P/Invoke 访问非托管代码
3D 图形接口
减少网络延迟
提高 XAML 解析速度
还有很多……
调试XAML中的数据绑定
以前,如果 Binding 不能正常工作了,你必须检查 Visual Studio 的输出窗口,查看失败信息。然后创建一个 ValueConverter 并在 Binding 中使用,检查传入传出的数值。结果发现Path 写错了?一点一点试吧~~
现在,在 XAML 中为 Binding 设一个断点,直接检查本地窗口即可。
Visual Studio性能分析工具
Silverlight 5 提供了包括CPU、内存、线程竞争等等丰富的性能分析工具。
支持Visual Studio Team Test
如下图所示:
支持隐式的 DataTemplate
隐式的 DataTemplate薄板就是为程序中用到的某种数据写一个统一的模板。在ItemsControl中,不同的数据可以使用不同的模板。
数据绑定增强
SL5中提供了ICustomTypeProvider,它能为JSON等数据源制定数据类型。Binding.RelativeSource 支持 Ancestor,而Binding.UpdateSourceTrigger 支持PropertyChanged。Style 的 Setter 支持 Binding。此外,SL5还提供 DataContextChanged 事件以及支持自定义 MarkupExtension的能力。
RichTextBlock控件
RichTextBlock控件适合用来呈现大段的文本。可以进行选择并复制并对文本进行自由的布局,例如排布成多列显示或者做出文本环绕的效果等。
文本呈现增强
SL5支持调整字符间距,支持像素对齐以及OpenType字体,以此来改善用户的阅读体验。
鼠标双击/多击支持
SL5增加ClickCount属性,使用它能够判断鼠标点击次数。在应用程序中支持鼠标三击。需要注意的是,鼠标三击是一个渐进的行为,而且会经过鼠标单击和双击事件。因此在事件顺序上不能有冲突。一个合适的例子是双击选中一段文本,三击选中全部文本。
PivotViewer 控件
从SL5开始,PivotViewer 正式加入 Silverlight SDK。它使用了DeepZoom技术展示数据。
Postscript 矢量打印
Postscript 是打印机可以识别的页面描述语言,但是它需要打印机支持!以前的打印方法是位图打印,速度慢,内存消耗大,而且打印机的分辨率越高,性能越差。因此只适合打印几页内容的文档。
而Postscript 矢量打印的出现则解决了这一问题。打印机分辨率对性能没有影响,可以打印上百页的文档了。
遥控器和媒体命令支持
SL5支持多媒体控制的硬件设备,例如:XBOX 360 遥控器、Media Center 遥控器\笔记本电脑的多媒体按键等等。
其中UIElement.MediaCommand 事件可以处理播放,暂停,停止、前进,后退、音量+/-,频道+/-等等操作。
视频回放增强
SL5支持 H.264 视频回放的硬件解码。支持TrickPlay,包括支持快进/快退以及在 2 倍快进时,利用音频修复技术,还原真实的语调。它还增强了电源控制,能够处理播放视频时禁止屏幕保护程序以及暂停视频时允许计算机进入睡眠状态等。此外,SL5还提供了DRM 增强功能。
最常见的应用程序和游戏中都需要实时音效。在Silverlight 4 时代,为了减少声音的延迟,我们做了大量工作,需要很多技巧。但是现在,Silverlight 5 提供了 XNA 中的 SoundEffect模块,它可以满足用户对实时音效的要求。不过它也有限制,比如声音文件必须是PCM编码(一般为 WAV 文件)。再比如,为了最好的效果,对声音文件的比特率有限制。
Silverlight 5 的信任模式
SL5的信任模式包括:本地应用的信任模式、浏览器应用的信任模式。同时,信任的应用程序可以通过组策略指定。
多窗口支持
在 Silverlight 4 的 OOB 程序中,我们只有一个窗口。虽然可以用 Popup 和 ChildWindow 模拟,但是他们不是真正的窗口,不能移动到主窗口外面。
在 Silverlight 5 的 OOB 程序中,我们可以创建多个操作系统的窗口,可以自定义窗口的形状,而且还支持双屏幕。
其他工作在信任模式下的好处
无限制的文件访问:以前只能访问“我的文档”,现在可以访问所有文件。
全屏模式下的键盘支持:在浏览器中全屏运行,可以接到所有键盘消息
COM 调用支持:可以访问浏览器中的其他 COM 插件
P/Invoke 访问非托管代码:在本地应用中,可以调用 Windows API
3D图形接口
Silverlight 4 的 3D其实是Projection:3D 投影变换。
Silverlight 5 的 3D是基于 XNA 的 3D 引擎,支持贴图、纹理、光照,支持顶点着色器和像素着色器的“真3D”。同时可支持3D 模型导入功能。
“真3D” 能做什么呢?看看下面吧~
Silverlight 5 RC 已经可以下载
Silverlight 5 正式版年底前发布
本课程PPT以及所有Demo下载地址:
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(4) | 评论(0) |
投票(0) | 收藏(0)
ActiveReports&支持多种格式的报表导出,包括PDF、Excel、Word、RTF、HTML、Text、TIFF以及其它图片格式,用户可以将它们应用到Windows&Forms、Web、WPF、Silverlight等应用系统中。
在专业版的&ActiveReports&里,对PDF格式的数据输出又有了增强功能。现在用户可以将不可见的数字签名或者可见的文字图案加入到报表里。通过多种属性对数字签名进行个性化设置,&用数字签名验证报表作者,还可通过Certification&Level&来设定用户访问权限。用时间印章功能建立第三方授权版本。这些新功能完全和Adobe的新安全机制兼容。
本文以客户订单为例演示如何将&ActiveReports&报表导出为各种格式。
1、创建报表文件
在应用程序中创建一个名为&rptInvoice.rdlx&的&ActiveReports&报表文件,使用的项目模板为&ActiveReports&页面报表。
2、打开报表资源管理器,并按照以下信息创建报表数据源
Micorsoft&OleDb&Provider
OLE&DB&提供程序:
Microsoft.Jet.OLEDB.4.0
服务器或文件名称:
Data\NWind_CHS.mdb
3、&添加数据集
在新建的&NWind_CHS&数据源上鼠标右键并选择添加数据集菜单项,添加以下两个数据集:
常规-名称:OrderDetails
查询-查询:
10 订单.订单ID, 订单.客户ID, 订单.订购日期, 产品.产品名称, 订单明细.数量, 订单明细.单价, 订单明细.折扣, 订单.货主城市, 订单.货主地址, 订单.货主名称, 订单.货主邮政编码, 客户.电话
订单.订单ID = 订单明细.订单ID)
订单明细.产品ID = 产品.产品ID)
订单.客户ID = 客户.客户ID
订单.订购日期 ;
4、设计报表界面
4.1、选中报表文件,并设置以下属性:
常规-数据集名称:
OrderDetails
名称:FixedPage1_Group&表达式:=[订单ID]
4.2、从&VS&中将&Table&控件添加到报表设计界面,并按照以下列表设置相应属性:
DataSetname
OrderDetails
19cm*15.75cm
RepeatHeaderOnNewPage
RepeatToFill
Cells[2,1]
Value:=RowNumber(&Table1&)
Cells[2,2]
Value:=Fields!产品名称.Value
Cells[2,3]
Value:=Fields!数量.Value
Cells[2,4]
Value:=Fields!单价.Value
Cells[2,5]
Value:=Fields!数量.Value&*&Fields!单价.Value
合计单元格
Value:=Sum(Fields!数量.Value&*&Fields!单价.Value,&FixedPage1_Group&)
Value:=ReportItems!TextBox38.Value&*&0.17
Value:=ReportItems!TextBox38.Value&+&ReportItems!TextBox42.Value
最终设计界面如下:
5、添加报表导出功能
5.1、Excel导出代码:
protectedvoid btnExcel_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
XlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.X
XlsExport1.Export(_reportRuntime, ms);
Response.ContentType = &application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.xlsx&));
Response.BinaryWrite(ms.ToArray());
Response.End();
5.2、Word导出代码:
protectedvoid btnWord_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
GrapeCity.ActiveReports.Export.Word.Page.Settings s = new GrapeCity.ActiveReports.Export.Word.Page.Settings();
s.UseMhtOutput = true;
_reportRuntime.Render(_renderingExtension, _provider, s);
Response.ContentType = &application/msword&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.doc&));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
_provider.GetPrimaryStream().OpenStream().CopyTo(ms);
Response.BinaryWrite(ms.ToArray());
Response.End();
5.3、常规PDF导出代码:
protectedvoid btnPdf_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
_reportRuntime.Render(_renderingExtension, _provider);
Response.ContentType = &application/pdf&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.pdf&));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
_provider.GetPrimaryStream().OpenStream().CopyTo(ms);
Response.BinaryWrite(ms.ToArray());
Response.End();
5.4、HTML导出代码:
protectedvoid btnHtml_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Html.Page.HtmlRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Html.Page.HtmlRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
GrapeCity.ActiveReports.Export.Html.Page.Settings s = new GrapeCity.ActiveReports.Export.Html.Page.Settings();
s.StyleStream = false;
s.MhtOutput = false;
s.Fragment = false;
s.OutputTOC = true;
s.Mode = GrapeCity.ActiveReports.Export.Html.Page.RenderMode.P
_reportRuntime.Render(_renderingExtension, _provider, s);
Response.ContentType = &text/html&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.html&));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
_provider.GetPrimaryStream().OpenStream().CopyTo(ms);
Response.BinaryWrite(ms.ToArray());
Response.End();
5.5、&Text导出代码:
protectedvoid btnText_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Xml.Section.TextExport txtExport1 = new GrapeCity.ActiveReports.Export.Xml.Section.TextExport();
txtExport1.Encoding = Encoding.U
System.IO.MemoryStream ms = new System.IO.MemoryStream();
txtExport1.Export(_reportRuntime, ms);
Response.ContentType = &text/plain&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.txt&));
Response.BinaryWrite(ms.ToArray());
Response.End();
5.6、CSV导出代码:
protectedvoid btnCSV_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../&) + &Reports/& + report + &.rdlx&));
_reportDef.Report.DataSources[0].DataSourceReference = Server.MapPath(&../Data/NWind_CHS_Access.rdsx&);
GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
GrapeCity.ActiveReports.Export.Xml.Section.TextExport csvExport1 = new GrapeCity.ActiveReports.Export.Xml.Section.TextExport();
csvExport1.Encoding = Encoding.U
csvExport1.TextDelimiter = &\t&;
csvExport1.SuppressEmptyLines = true;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
csvExport1.Export(_reportRuntime, ms);
Response.ContentType = &text/plain&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.csv&));
Response.BinaryWrite(ms.ToArray());
Response.End();
5.7、高级PDF导出代码:
protectedvoid btnExport_Click(object sender, EventArgs e)
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(&../Reports/& + reportname + &.rdlx&)));
report.Report.DataSources[0].DataSourceReference = &&;
report.Report.DataSources[0].ConnectionProperties.DataProvider = &OLEDB&;
report.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format(&Provider=Microsoft.Jet.OLEDB.4.0;Data&Source={0};&, Server.MapPath(&../Data/NWind_CHS.mdb&));
GrapeCity.ActiveReports.Document.PageDocument document = new GrapeCity.ActiveReports.Document.PageDocument(report);
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport pdfExport1 = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
switch (C1Tabs1.Selected)
pdfExport1.Security.Encrypt = true;
pdfExport1.Security.Use128Bit = true;
if (txtPwd.Text.Length & 0)
pdfExport1.Security.UserPassword = txtPwd.T
pdfExport1.Security.Permissions = GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.N
if (chkCopy.Checked)
pdfExport1.Security.Permissions |= GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowC
if (chkEidt1.Checked)
pdfExport1.Security.Permissions |= GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowFillIn;
pdfExport1.Security.Permissions |= GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowModifyA
pdfExport1.Security.Permissions |= GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowModifyC
if (chkPrint.Checked)
pdfExport1.Security.Permissions |= GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowP
//&ImageText&signature.
pdfExport1.Signature.VisibilityType = GrapeCity.ActiveReports.Export.Pdf.Section.Signing.VisibilityType.ImageT
//&Bounds&(Container&of&Text&&&Image).
pdfExport1.Signature.Stamp.Bounds = new RectangleF(0, 0, 4, 1);
//&Text&area.
pdfExport1.Signature.Stamp.TextAlignment = GrapeCity.ActiveReports.Export.Pdf.Section.Signing.Alignment.L
pdfExport1.Signature.Stamp.Font = new Font(&Comic&Sans&MS&, 8, FontStyle.Regular);
//&Note:&Specify&(x,&y)&in&relative&coordinate&from&Bounds&top-left.
pdfExport1.Signature.Stamp.TextRectangle = new RectangleF(1, 0, 3, 1);
//&Image&area.
pdfExport1.Signature.Stamp.Image = System.Drawing.Image.FromFile(Server.MapPath(&../Resources/Grapecity_powertools_bg.png&));
pdfExport1.Signature.Stamp.ImageAlignment = GrapeCity.ActiveReports.Export.Pdf.Section.Signing.Alignment.C
//&Note:&Specify&(x,&y)&in&relative&coordinate&from&Bounds&top-left.
pdfExport1.Signature.Stamp.ImageRectangle = new RectangleF(0, 0, 1, 1);
//&Set&certificate&&&password.
pdfExport1.Signature.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(Server.MapPath(&../Resources/ActiveReports6.pfx&), &123456&);
//&set&the&certifiation&level
if (chkEidt2.Checked)
pdfExport1.Signature.CertificationLevel = GrapeCity.ActiveReports.Export.Pdf.Section.Signing.CertificationLevel.FormFillingA
pdfExport1.Signature.CertificationLevel = GrapeCity.ActiveReports.Export.Pdf.Section.Signing.CertificationLevel.NoChangesA
//Signature&items.
pdfExport1.Signature.Contact = new GrapeCity.ActiveReports.Export.Pdf.Section.Signing.SignatureField&string&(txtEmail.Text, true);
if (chkDate.Checked)
pdfExport1.Signature.SignDate = new GrapeCity.ActiveReports.Export.Pdf.Section.Signing.SignatureField&System.DateTime&(System.DateTime.Now, true);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
pdfExport1.Export(document,ms);
Response.ContentType = &application/pdf&;
Response.AddHeader(&content-disposition&, Server.UrlPathEncode(&filename=客户订单.pdf&));
Response.BinaryWrite(ms.ToArray());
Response.End();
在线演示及源码下载地址:
本文出自 “” 博客,请务必保留此出处
发布于 2年前,
阅读(15) | 评论(0) |
投票(0) | 收藏(0)
之前的文章讨论了不少MultiRow技术细节,相信大家都有点累了,今天轻松轻松,玩玩游戏,看你能玩到多少分。
俄罗斯方块(MultiRow版)1.0游戏界面如下:
左右键控制方向。
上键顺时针旋转。
Shift键逆时针旋转。
下键加速下落。
空格键直接落下方块。
回车键暂停
自定义方块:
与众不同的是,本版本可以自定义“方块”。比如给方块填充背景色,或者换衣服图片。发挥你的创意吧~~&
相信已经迫不及待想试试了吧~& 所以直接上程序和源码!
可执行文件:
特别提示:
由于是MultiRow版的俄罗斯方框,所以你机器上必须安装MultiRow。
希望玩过之后,都出来晒一晒你自定义的俄罗斯方块还有分数~~~
发布于 2年前,
阅读(2) | 评论(0) |
投票(0) | 收藏(0)}

我要回帖

更多关于 icoformat.8bi 64位cc 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信