本人想在.NET平台下(c#)做一报表设计器,不知各位高手有何方案?我看过网上长江支流兄的金质打印通,确实很好,只可惜提供了网格打印功能,现在客户要求软件提供自绘报表,要求能画直线,文本框,不知如何解决?

解决方案 »

  1.   

    可以试一下,Sql Server 自带的Reporting Service
      

  2.   

    SharpDevelop项目里面带有一个Report Generater,开源的,可以画线呀什么的,但是看起来绑定在SharpDevelop IDE上面。我想应该可以把这一部分独立出来吧,或者你剪裁一下这个IDE也可以。
      

  3.   

    SharpDevelop项目里面带有一个Report Generater,当然如果你得水平足够高得话,你可以自己做一个这样得控件
      

  4.   

    www.codeproject.com 上面有一个这样的例子,
    好像叫什么DrawTool,你自己搜索一下
    改装一下即可,我就是这样做的,现在在我的项目中用的很好。
      

  5.   

    sea_in_yellow(黄色的海)老兄,,能发给我吗?
      

  6.   

    http://community.csdn.net/Expert/topic/4789/4789524.xml?temp=.1197168
      

  7.   

    偶用ActiveReport for .net 1.x感觉马马虎虎
      

  8.   

    我把我做的思路说一下:统一一个接口,如IGoldPrinterElement,至少有一个Draw(Graphacis g)方法。虽然楼主现在只要画线和文本框,如果统一一个接口,这样,无论以后扩展多少个图形元素,只需要实现这个接口即可,再加一个实现此接口的确基类GoldPrinterElement和集合GoldPrinterElementCollection。你做一个控件如GoldPrinterGraphicsControl,,申明一个GoldPrinterElementCollection并实例化,这样,在你的控件上(菜单或有图形样式的图片按钮都可)执行一命令,则增加一个继承于GoldPrinterElement的实例如点、线、矩形、圆、椭圆、标签、文本框、表格等,并把它加到GoldPrinterElementCollection中,在控件GoldPrinterGraphicsControl的OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement并调用它的Draw(e.Graphacis)即可。
    还有,楼主如果觉得速度慢,请启用图形的二级缓存。实际原理就是把图形画到内存中的Image,然后再把这个Image画到绘图表面上设计器原理:在控件GoldPrinterGraphicsControl的OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement并调用它的Draw(e.Graphacis)
    为了交互便于拖动设计
    在控件上有鼠标移动事件,这样有热点的图形可以加边框,如果鼠标是按下并移动的,图形就可移动拖拽,所有这些,实际上就是OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement,如果是当前图形,只需重绘这个图形区,并调用它的Draw(e.Graphacis)速度就快了。原理就是这样,我相信楼主会搞出来。
    效果可以看一看 www.AnyReport.Net