【报表福利大放送】100余套报表模板免费下
做报表开发和系统搭建,您是否苦于了解Boss们最想看什么报表?如何更好的展示业务数据的关系、趋势及规律?不知道如何将报表设计的更美观?不清楚怎样的图表才更适合业务部门……“葡萄城报表模板库”强势发布,让您变身报表达人!模板库内置100余套报表模板,更凭借强大的设计和管理功能,让您快速了解业务部门的常用报表样式,直观掌握报表设计方法,提高报表开发和系统搭建效率。专业的人力、销售、财务、教育、医疗等报表模板,供您免费使用可根据需要,快速体验数据钻取、排序、过滤等报表功能通过内置的设计器,您可自由修改模板,实时查看效果自动更新,将最新的报表样式及时推送给您……“免费报表库,万元大礼包”正在火热进行中,邀请您和全国用户交流报表经验和使用心得,还有惊喜好礼等您拿!立即下载报表模板库活动页面:http://www.grapecity.com.cn/e...活动对象:使用葡萄城报表模板库的所有用户反馈征集时间:2017年6月26日-2017年7月31日参与方式:扫描如下二维码,关注葡萄城报表官方微信,将您对模板库的
SpreadJS 在 Angular2 中支持绑定哪些属性?
SpreadJS纯前端表格控件是基于HTML5的JavaScript电子表格和网格功能控件,提供了完备的公式引擎、排序、过滤、输入控件、数据可视化、Excel导入/导出等功能,适用于.NET、Java和移动端等各平台在线编辑类Excel功能的表格程序开发。在上一篇文章中,我们了解到SpreadJS已经全面支持了Angular2,并且只需4步就能完成在Angular2中集成SpreadJS。下面我们来介绍SpreadJS在Angular2中支持绑定哪些属性。不同的标签可以绑定的属性不同,我们按照标签来分类进行介绍。以下为主要属性的列表,更详细的属性介绍请点击此处查看。以上就是所支持的属性,需要说明的是在Angular2中SpreadJS最大精度只能进行到列级别的设置,这与Angular2的绑定机制有关,需要特别注意。SpreadJSV10.2版本即将发布,更多更好的功能尽在新版本中,敬请期待!登录SpreadJS官网,了解更多。
C# 的“友元”类实现 Builder 模式
友元是C++中的概念,包含友元函数和友元类。被某个类声明为友元的函数或类可以访问这个类的私有成员。友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。因此,除了C++外很难再看到友元语法特性。提出问题但是友元并非一无是处,在某些时候确实有这样的需求。举例来说,现在我们需要定义一个User类,为了避免User对象在使用过程中属性被修改,需要将它设计成Immutable的。到目前为止还没有什么问题,但接下来问题来了——由于用户信息较多,其属性设计有十数个,为了Immutable全部通过构造方法的参数来设置属性是件让人悲伤的事情。那么一般我们会想到这样几个方案:方案简述方案一,使用参数对象这是JavaScript中常用的做法,使用参数对象,在构造User的时候,通过参数对象提供所有设置好的属性,再由User的构造方法从参数里把这些属性拷贝出来设置给只读成员。那么实现可能像这样:为了简化代码,只定义了Id、Username和Name三个属性。下同。p
矩表 - 现代数据分析中必不可少的报表工具
报表,从来都是商业领域的主角,而随着商业智能(BI),大数据时代的到来,报表更加成为了业务系统的核心组成。因此传统的格式已经无法满足新的需求,最终用户期望在一张报表中看到更多的汇总、分类信息,而往往这些汇总和分类信息是不固定的,比如下面这张报表类似上图中的复杂表头和分类汇总,用传统的报表已经无法完成。矩表(Table+Matrix)就是专为此类报表需求而产生的强大工具,无论你是文档类报表,Excel类报表,中国式复杂报表,不限制行数和列数的报表...都会迎刃而解!什么是矩表(Tablix)矩表是数据汇总统计的数据控件。矩表由矩阵(Matrix)控件演化而来,矩阵可将存储的原始Detail数据,通过【行分组】(即垂直显示字段值)和【列分组】(即水平显示字段值),将数据二维的展示出来,然后计算每一行或列的合计;也可以将字段值作为行号或列标,在每个行列交汇处计算出各自的数量,然后计算小计和总计。如下图传统矩阵的缺点:行分组单层次,无法支持多层级数据分析而矩阵只能将数据通过简单的二维表展示,以及简单的求和汇总统计,但对于多层级的行分组却
每日一题:三 墨西哥人浪
描述:人浪(称为英语世界中的北美洲的墨西哥浪潮)是一个例子,节奏韵律在座无虚席的体育场时,连续组观众简要地站立,喊了,举起他们的双臂。在伸展到完全高度后,观众返回到通常的座位位置。结果是一个站在人群中的站立观众的浪潮,尽管个人观众从不离开座位。在许多大的体育场里,人群都坐在一个围绕着运动场的相连的赛道上,因此海浪能够在赛场上连续波动;在不连续的座位安排,海浪可以穿过人群来回反射。当座位间隙变窄时,波浪有时会通过。在竞技场的任何给定时间,通常只能产生一个波峰,虽然同时产生了反旋转波。任务:你的任务是创建一个函数把一个字符串到墨西哥人浪。您将传递一个字符串,并且必须将该字符串返回到一个大写字母为站着的人的数组中。规则:1总是会输入只有小写字符串的数组,但也许是中间包含空格。2如果字符字符串中的空格然后越过它,就好像它是一个空的座位。简单例子:wave("hello")=>["Hello","hEllo","heLlo","helLo","hellO"]祝君好运!我会在晚上的时候,给出具体的例子!只是比较
【又见C#】C# 6 新特性
新特性(原文地址)自动完成属性的增强自动完成属性在C#3都已经出来了,如果需要把一个属性设置成只读的,我们会这样写publicstringName{get;privateset;}。但这样只能保证对外是只读的,在类的内部还是可以修改的。在C#6这样实现:publicstringName{get;}publicClassName(stringname){this.Name=name;}只允许你在类的构造函数中赋值,这就实现了真正意义的只读PS:请注意只读和常量的区别字符串格式化publicStringFullName=>$"{FirstName}{MiddleName}{LastName}"这类似于ES6中的模板字符串,FirstName/MiddleName/LastName皆为属性名PS:$与后面的双引号之间没有空格,连在一起Markdown的语法不支持,故分开只导入静态成员usingstaticYourClass导入指定类中的静态成员。当你只
【又见C#】C# 7 新特性
新特性(原文地址)out参数if(!int.TryParse(input,outvarresult)){Console.Write(result);}在C#7之前:varresult=0;if(!int.TryParse(input,outresult)){Console.Write(result);}元组匿名元组:varsex=('male','female');命名元组:varsex=(male:1,female:0);分组赋值:(stringmale,stringfamale)=(1,0);--顺序对应分组赋值的命名元组:(stringmale,stringfamale)=(male:1,female:0);--名称对应当需要一组属性的时候,不需要再专门为此定义一个struct或class。在C#4中有一个元组概念,在那个版本是一个泛型类,类似于数组结构,一维最多8个元素,但是可以嵌套,所以理论上元素个数可以达
是什么优化让 .NET Core 性能飙升?
.NETCore(开放源代码,跨平台,x-copy可部署等)有许多令人兴奋的方面,其中最值得称赞的就是其性能了。感谢所有社区开发人员对.NETCore做出的贡献,其中的许多改进也将在接下来的几个版本中引入.NETFramework。本文主要介绍.NETCore中的一些性能改进,特别是.NETCore2.0中的,重点介绍各个核心库的一些示例。集合集合是任何应用程序的基石,同时.NET库中也有大量集合。.NET库中的一些改进是为了消除开销,例如简化操作以便更好的实现内联,减少指令数量等。例如,下面的这个使用Q<T>的例子:usingSystem;usingSystem.Diagnostics;usingSystem.Collections.Generic;publicclassTest{publicstaticvoidMain(){while(true){varq=newQueue<int>();varsw=Sto
用队列求解迷宫最短路径及其应用(围住神经猫)
问题给定一个M×N的迷宫图,求一条从指定入口到出口的最短路径.假设迷宫图如图所示(M=8,N=8)对于图中的每个方块,空白表示通道,阴影表示墙。所求路径必须是简单路径,即在求得路径上不能重复出现同一通道块。为了算法方便,在迷宫外围加了一道围墙。对应迷宫数组为:vargameMap=[M+2][N+2]int{{1,1,1,1,1,1,1,1,1,1},{1,0,0,1,0,0,0,1,0,1},{1,0,0,1,0,0,0,1,0,1},{1,0,0,0,0,1,1,0,0,1},{1,0,1,1,1,0,0,0,0,1},{1,0,0,0,1,0,0,0,0,1},{1,0,1,0,0,0,1,0,0,1},{1,0,1,1,1,0,1,1,
使用Asp.net core webAPI + Swagger搭建web服务的步骤以及问题点
在下从毕业到现在一直都是用微软的技术栈去开发东西。asp.netcore发布也有一段时间了,一直没有去系统的关注一下,最近得闲准备用core的webapi做点东西,也遇上了一些小问题,就把这些东西都记录下来。1.创建工程:这就没什么可说了,创建工程这个用VS再简单不过了,我选的是Api的选项。core创建web工程会把entityframework直接放到依赖项当中,这个也不必细说。2.配置swaggerui启动工程之后,还是bootstrap的界面,api方法描述也只是描述不能交互,这点还是挺不方便的。好在swagger也是可以应用在.net上的。如何配置swaggerhttps://docs.microsoft.com/en...微软的这篇文章记述的也是很明白了,大家按图索骥即可。有个细节需要注意一下就是当大家配置好之后有可能会出现这种500的错误,就是加载api描述json失败,遇到这种情况,第一反应是要到console里面去找信息,反正我遇到的情况就是controller当中方法共用了一个api地址导致识别api错误。
Windows UI自动化测试的XPATH实现 - WPATH
从事Windows桌面应用自动化测试也有一些年了,现在谈这个话题并不流行。因为除了企业级应用,很少有公司会只选择Windows桌面作为目标用户平台,一般都会考虑跨平台的浏览器解决方案,桌面应用的地位渐渐下降,这是事实。当年初入测试行业时就被外包公司看上了,在微软的圈子里一待就是4年,时间真快。不得不说,一个大学刚毕业的毛头小子看到微软里各种技术和工具真像极了刘姥姥进大观园,那时候还没有iPhone,也没有Android,微软一统天下。本文主要介绍一下我对WindowsUI自动化的一些看法以及WPATH的实现和应用,如果你还在从事Windows桌面应用的自动化测试,应该能有一些帮助。为何发明WPATHWindowsUI自动化,顾名思义就是在Windows平台实现软件的界面自动化,比如自动打开Excel填入一些数据,输入公式,获取结果。正经的用途就是软件自动化测试,避免重复的手工操作;不正经的用途就是写外挂,各种投机取巧的工具等等。最简单粗暴的实现方案就是录制回放,优点很明显,简单快速;缺点也一样明显,不可靠因素太多。主要的代表就是
葡萄城报表V11 SP2新版本震撼发布!
葡萄城报表正式发布v11.2版本,强势推出国内首创的基于HTML5的在线报表设计器,从此报表设计告别桌面应用程序,随时随地修改报表,真正跨平台操作,从而使任何报表用户更快速的响应报表业务变化!在线报表设计器/Web报表设计器全在线设计,无需安装客户端设计器,能与B/S系统直接集成采用OFFICE的操作体验,易于学习,无论软件开发者,还是最终用户都能很快上手使用选项设置窗格替代传统的属性窗口,简单轻松配置报表元素行为内置报表主题与元素样式,无需专业美工,也能创建外观精美的报表数据钻取功能增强以往在设置钻取报表时,钻取的目标报表是固定的,现在钻取的目标报表名称也能通过表达式动态切换。比如,我们通过柱形图分析每个产品线的销售业绩,那么我们在指定钻取连接时,可以根据产品线加载不同的目标报表模板,也就是说每个产品线可以有不同的销售明细报表,这样可以让数据分析更加灵活自如。单元格自动合并中国式复杂报表的布局,因为数据的动态性和结构性,导致其布局往往是无规律,且在设计时无法预测的,常见的单元格合并通常不仅希望在每一列的数据
asp.net web api use json web token
https://stackoverflow.com/que...安装nuget包System.IdentityModel.Tokens.JwtInstall-PackageSystem.IdentityModel.Tokens.JwtJwtManager工具类publicstaticclassJwtManager{publicstaticreadonlystringSecret=System.Configuration.ConfigurationManager.AppSettings["TokenSecret"];publicstaticstringGenerateToken(stringusername,intexpireMinutes=20){varsymmetricKey=Convert.FromBase64String(Secret);vartokenHandler=newJwtSecurityTokenH
《JavaScript Web应用开发》作者Nicolas:恰巧,爱好变职业(图灵访谈)
本文仅用于学习和交流目的,不得用于商业目的。非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/art...访谈嘉宾:NicolasBevacqua,阿根廷人,是一位富有激情的JavaScript工程师,热衷于打造健壮的构建流程和清晰的应用架构。喜欢谈论关于JavaScript、性能、可维护代码和开放互联网的所有内容,曾多次在技术大会上发表web性能、ES6方面的知识分享。2017年6月24日,Nicolas作为重量级嘉宾参加了“腾讯web前端大会”,分享《JavaScript的未来编写方式》并参加图书签售活动。访谈实录:什么时候开始编程的?大概10岁的时候,我上过一些学习Flash的课,也做些网站但纯属是为了乐趣。到了高中的时候,我开始做一些更有趣的项目,比如玩一款多人在线的角色扮演游戏——网络创世纪。运行自己开发的服务器,实现游戏的特征。这段时间里,我学会了C#。大概做了两年的时候,一个朋友告诉我“嘿,人们是愿意花钱让你做这些事情的。”这对于我来说太酷啦!是的,我想,这就是
《JSON必知必会》学习笔记(一)
什么是JSONJSON全称是JavascriptObjectNotation(对象表示法),是一种在不同平台间传递数据的文本格式(数据交换格式)。常见的数据交换格式有XML、JSON两种,我们主要研究JSON。数据交换格式十分重要,开发人员需要使用它们来实现不同系统之间的数据交换。JSON基于Javascript对象字面量,但是独立于任何编程语言,真正重要的是表示法本身,所以在学习JSON之前不必先学习Javascript。当然,有Javascript基础那是再好不过了。JSON语法JSON中使用键值对的数据结构,示例如下:{"name":"dawei","age":22,"isMan":true}名称始终需要加上双引号,多个键值对使用逗号隔开。以下两种表示方式都是错误的:{name:"dawei"}这是Javascript对象而不是JSON{'name':'dawei'}这也是Javascript对象,因为在Javascript对象中允许使用单引号代替双引号。JSON数
将数据库事务从dao层提升到service层
原文地址学习后端语言的时候,都会涉及到数据库的相关操作,不同语言在操作数据库方面有不同的驱动程序,比如java的JDBC,C#的ADO.NET。当进行数据的新增,更新以及删除的时候,经常需要开启数据库事务。比如ADO.NET是这样使用:SqlConnectioncon=newSqlconnection("数据库连接语句");con.Open();vartrans=con.BeginTransaction();try{SqlCommandcom=newSqlCommand(trans);//处理插入或更新逻辑trans.Commit();}catch(ex){trans.Rollback();//如果前面有异常则事务回滚}finally{con.Close();}很多教程都将事务写在数据访问层(dao层),但是更多时候我们需要的是业务逻辑层(service层)级别的事务控制。比如我们有一个学生表,一个班级表。学生表存有对应的班级字段,学生与班级
ComponentOne 2017 V2版本正式发布
新版本,新体验,ComponentOne2017V2让您惊喜无限!日前,全球控件行业领导者葡萄城宣布,.NET全功能控件套包ComponentOne发布2017V2版本。这是继2017V1版本全面支持VisualStudio2017以来,ComponentOne本年度的第二次重要更新,新版本新增FlexViewer、PDF文档、TreeMap等新组件,并对FlexReport、FlexGrid、ComboBox等控件做了全面增强。点击此处马上了解新特性,立即体验新功能吧。PDFDocumentSource在WinForms,UWP,和WPF平台中发布PDFDocumentSource是一种PDF组件,用于读取,打印和导出PDF文档。它也是在FlexViewer中加载和查看PDF的关键组件。FlexViewer是一个跨平台查看器,可以加载FlexReport,C1Report,PDF和SSRS文档等报告和文档类型。PDFDocumentSource的几个特性:只需要几行代码就能轻松加载和查看PDF。
通过edge.js调用C# 动态链接库 dll,我踩踩坑什么的
使用edge.js调用.dll文件第二次补充:edgejs按我个人理解,是一个允许通过Node去调用C#的一个库。因为最近的项目需要才接触的。使用npminit初始化项目,安装依赖edge,npminstall-gdedge.C#代码,经过编译之后生成了print.dll文件usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceprint{publicclassPrint{publicasyncTask<object>getPrinter(Objectinput){String[]printers=(String[])input;StringPrinter="";
如何实现报表设计中的高精度报表套打?
在许多行业中票据具有严格的行业规范,格式是无法修改的,一旦格式有所改动,票据数据就会失效无效。因此通常情况下,我们会在预先设计好格式的报表的打印版中,手动填写数据信息,如常见的各类账本,报销单等填写数据。单张票据手动填写是没有任何问题的,而随着办公自动化,大量数据都需要电子化处理,不仅高效还便于保存,不易出错。在票据成为常规办公操作时,手动填写不仅无法满足而且非常低效,又因为票据的格式是无法修改的,传统的报表工具通常是用测量的方法确定数据区域的位置,来设计报表。如此一来,制作一张票据打印的报表不仅费时费力,而且很难确保票据的有效性,更是无法满足未来出现的新票据格式的要求。套打报表的出现解决了这一难题,简化了电子票据制作打印的功能。套打报表套打也被称作定位打印,即在一张预设格式的票据上,零误差打印上需要填写的数据内容。预设票据纸张可以理解为,在报表制作过程中,为报表设置为特定的报表背景(票据电子版),然后根据此背景设置需要填写的数据项及匹配的数据控件。因此打印时只打印数据,而整个背景不会输出到打印机中。套打报表也可以通俗的理解为“套格式打印”
ASP.NET MVC 插件化开发简化方案
Web管理系统可以庞大到不可想像的地方,如果想就在一个Asp.NetMVC项目中完成开发,这个工程将会变得非常庞大,协作起来也会比较困难。为了解决这个问题,Asp.NetMVC引入了Areas的概念,将模块划分到Area中去——然而Area仍然是主项目的一部分,多人协作的时候仍然很容易造成.csproj项目文件的冲突。对于这类系统,比较好的解决办法是采用SOA的方式,把一个大的Web系统划分成若干微服务,通过一个含授权中心的Web集散框架组织起来。不过这里我要讲的是另一种方法,插件化的开发方案。完整的插件化开发会涉及到插件管理的方方面面,甚至还包括插件的热插拔处理——当然这些都是可以做到的——但今天我要说的是一个简化方案,只是将业务模块当作插件在单独的项目中开发,而后在发布的时候仍然以Area的形式集成到主Web项目当中。严格的说,这并不是插件化,而只是模块化,但它是插件化的第一步。第1个实验第一个实验的目的是为了把Area剥离出来作为单独的项目开发。所以先使用同样版本的.NET