哪里有格式與數據分開的報表控件(50分)

  • 主题发起人 主题发起人 goddy
  • 开始时间 开始时间
frastreport 呀,很好用的
 
fp 數據與格式沒有分開啊
 
分開對做web 報表大有安處
 
怎么才算是格式与数据分开呢?
 
如表格之類可隨便改,數據可隨便改(數據是純文本或XML),兩者互不影響
 
哦,我看QReport,Fr这些都可以算是这样的,只是因为排版而不能随意罢了.
 
自己做吧!
我以前也尝试过,虽然效果不是特别好(不够通用,受数据库的限制),
但总算做到了数据和界面相分离,呵呵。
不过现在我没时间具体做了,但是还有兴趣研究作法,愿意与大家讨论一下思路。
goddy,你有没有想过自己做呢?
 
to 5rain6sky 我現在用的是別人的呵,不過離開這個公司,web報表不知如何做
所以我想自己做,不過報表這東西實復雜,我一個人恐力不從心
 
是啊,做报表是很头疼的:(
界面倒简单,用QuickRep足够了,充分利用它的各种事件的话,可以强有力地控制报表的外观和行为。
关键是数据的组织和管理,我后来在试图扩充我的报表程序的数据灵活性的时候想到过XML,
但看来看去,觉得XML本身现在还不足以描述我们为了实际地出报表所需要的复杂要求,
换句话说,XML只是提供了数据描述的统一格式,但它无法清晰地描述出数据之间的逻辑关系。
所以我最后的决定是只用XML的形式,在此基础上自己定义一套逻辑表述标识,
达到能用尽量简单的程序处理的效果,实现数据最大程度的自描述,并适于对其做复杂查询。
 
to 5rain6sky,
有实例可以看看吗?
 
我用的是台湾的一家公司的:格式只管长得怎么样,不管逻辑,数据与一逻辑有点关系
逻辑由你的自己控制
应该说:这种报表应是格式,数据与逻辑三者分开的
 
你用QuickRep这么熟练,可否给我一个例子?自带的例子不多,
有无一些是不连数据库的例子??即有几个数据库列表打出来。
 
to CJF:
不好意思,我原来那个没有做成控件,只是在自己的程序里用,也不是很完善。
而且关键是和数据库等运行环境相关的,不能单独拿出来任意地使用。
主要做法就是将报表的格式和数据查询用自定义的数据结构表示,最终都转成字符串存储在数据库里了。
因为当时我还不知道有XML这个东东,所以用的是自己的一套标识符,还有一些特殊字符等。
至于利用XML的改进版本,我在原来的公司正准备做,也写了一个初步的方案出来。
但由于换了单位,工作一多,就把这件事耽搁了,所以现在没什么可以拿得出手的东西。
to goddy:
我认为最难的是逻辑关系的表示,如果这一关节能打通,问题就解决80%了!
其实这个问题类似于自己写一套script语言,实际上一些报表工具里已经是这么做了,
比如对两个字段(报表里的)做一些if判断、大小比较之类的,就是让报表工具解释一段语句,
只是这些语句都比较简单。进一步假想,如果可以把Delphi编程语句完全识别出来,岂不是统杀?
但这么一来,等于是自己要写一个Delphi的编译器来!再者,如果真有这么个东东,
把它嵌到操作系统里,再给用户一个描述的接口,那……还要什么编程工具!还要程序员做什么:)
从这个极端的假想来看,用普通的类程序语句描述逻辑关系的方式是没有意义的,
最终又落入编程语言本身的种种窠臼之中!所以我的观点是从数据之间的各种复杂关系中提取出
最基本、最简单、最关键的因素,同时设计出一套针对这些要素的简单高效的运算,
然后才有可能在这样的前提下进行合理的关系描述。但是再仔细一想,如果此路可行,
必定已经有人在做,搞数据分析研究的这么多人,为什么没听说有了眉目了?难道……唉,想想又有些丧气:(
抛砖之言,希望听到指点迷津的高论!
 
如果搞成这样的话,我想学起来肯定是很麻烦的,就像FR,RB等,他们 也是搞了个编译器出来.
 
to sisha:
Delphi自带的例子里就有不用数据库的——“OnNeedData example”。
主要就是利用QuickRep的OnNeedData事件,这是个非常好使的东东,我一直用它:)
在里面想打什么就打什么,因为数据来源由你自己指定,只要控制好结束就行了。
再结合对QuickRep中的控件的操作,还可以做出诸如变色之类的界面效果。
 

结构:
n n
. .
格式档 . ---->1个数据档<--- . 逻辑
. .
1 1
 
其實其結構如 大富翁論壇
報表格式:XSL
數據:xml 不過數據檔只有一個
邏輯檔:后台Asp
 
我一直在做报表,一个人.面对的是我们公司100多张报表.
我非常头疼.
我下辈子就算不搞计算机了也不再做报表了.
有的报表复杂到牵涉4个数据表,里头的逻辑关系之复杂让我对报表的设计者肃然起敬!
我一直有一肚子的苦水,苦到什么程度呢?
有时候领导拿来一摞子报表,我就想立即掐死他!!!!!!!
简直忍不住!
不知道这里有没有人有同感,会不会表达一下同情.
我已经决定辞职,就为了跟报表说永别.
我现在是在MTS上做三层应用的所谓通用报表.
最终报表是在IE上显示.
我先做了一个报表的描述程序,c/s模式就可以了,对报表的格式和数据来源以及之间的逻辑关系
进行描述.用户可以在这里自己画表头(EXCEL格式)以及表达来源数据之间的逻辑关系,
比如涉及哪些数据库表,查哪些字段,所涉及的表之间怎样关联,按什么字段分类统计,统计哪些字段,什么统计方法
对一张报表描述完了之后,可以产生一个INI文件,也可以把描述信息入数据库.
这个INI文件做成可读性很强的,用户可以直接写的,如果熟悉就不用用报表的描述程序描了.
然后我做了个MTS上的三层应用程序,就是解析INI文件并生成主页内容也就是符合格式设定的带数据的报表.
不知道大家是怎么做报表的,但我不想知道了.我很烦报表啊啊

 
其实数据与报表分开,程序员不用管报表格式,只管逻辑,报表格式可让用户去做,或者
让总台小姐也可做,很简单的!
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部