文本数据格式如下:
start|唯一流水号|G|13|A|4|B|7|C|7|D|0|E|0|
G|广东省****有限公司客户帐单|
G|**分公司账单|
G|邮编:|000000|
G|地址:|**市**区***大厦**楼|
G|姓名:|******股份有限公司|
G|客户名称:|******股份有限公司|
G|缴费代码:|080000382705|
G|出帐年月:|200503|
G|计费周期:|2005/03/01-2005/03/31|
G|单位:|元|
G|预缴费: 本期余额:|0|
G|上期余额:|0|
G|本期使用:|0|
A|产品汇总帐单|
AH|产品类型|费用|折扣|应收小计|
AB|简易集线通|207.92|-41.62|166.30|
AT|应收合计:|166.30|
B|产品明细|将相同类别的产品明细费用合并显示|
BH1|简易集线通|产品明细|
BH2|1.固定费|2.市话|3.长途|4.其他|
BB|基本月租费|54.00|区内通信费|67.76|传统国内长途|10.85|市话折扣|-25.03|
BB|新业务费|18.00|区间通信费|9.90|||传统长途折扣|-2.19|
BB|||本地移动|47.41|||基本费折扣|-14.40|
BT1|固定费小计:|72.00|市话小计:|125.07|长途小计:|10.85|其它小计:|-41.62|
BT2|应收合计:|166.30|
C|汇总明细|简单列出每个产品的费用|
CH1|简易集线通|汇总明细|
CH2|产品号码|客户名称|固定费|市话费|长途费|折扣|应收小计|
CB|2091676|******股份有限公司|24.00|59.11|3.43|-17.33|69.21|
CB|2091677|******股份有限公司|24.00|52.39|6.79|-16.66|66.52|
CB|2091678|******股份有限公司|24.00|13.57|0.63|-7.63|30.57|
CT|应收合计:|166.30|
end|
数据说明:每条记录均与start为起始,以end结束。其中第一行为总说明,G代表固定,其后的13表示固定项有13条(分别是名称、邮编、地址等13项);A表示A类明细,其后的数字4表示A类明细有4项;
B表示B类明细,以此类推。共有A、B、C、D及E五类明细,如果某类明细后面的数字为0则表示没有该类明细,报表不需要打印该类明细。至于每条记录由那几种明细组成,以及每种明细各有多少项,则都为不确定!
请教各位:该如何设计数据库?又该如何设计报表?或者用什么报表控件更合适呢?
此问题实在是让人太困惑,如果那位大侠乐于帮助解决,必定感激不尽。我愿意顷尽所有(现有1250可用分),即使有困难也欢迎大家一起探讨,谢谢!
start|唯一流水号|G|13|A|4|B|7|C|7|D|0|E|0|
G|广东省****有限公司客户帐单|
G|**分公司账单|
G|邮编:|000000|
G|地址:|**市**区***大厦**楼|
G|姓名:|******股份有限公司|
G|客户名称:|******股份有限公司|
G|缴费代码:|080000382705|
G|出帐年月:|200503|
G|计费周期:|2005/03/01-2005/03/31|
G|单位:|元|
G|预缴费: 本期余额:|0|
G|上期余额:|0|
G|本期使用:|0|
A|产品汇总帐单|
AH|产品类型|费用|折扣|应收小计|
AB|简易集线通|207.92|-41.62|166.30|
AT|应收合计:|166.30|
B|产品明细|将相同类别的产品明细费用合并显示|
BH1|简易集线通|产品明细|
BH2|1.固定费|2.市话|3.长途|4.其他|
BB|基本月租费|54.00|区内通信费|67.76|传统国内长途|10.85|市话折扣|-25.03|
BB|新业务费|18.00|区间通信费|9.90|||传统长途折扣|-2.19|
BB|||本地移动|47.41|||基本费折扣|-14.40|
BT1|固定费小计:|72.00|市话小计:|125.07|长途小计:|10.85|其它小计:|-41.62|
BT2|应收合计:|166.30|
C|汇总明细|简单列出每个产品的费用|
CH1|简易集线通|汇总明细|
CH2|产品号码|客户名称|固定费|市话费|长途费|折扣|应收小计|
CB|2091676|******股份有限公司|24.00|59.11|3.43|-17.33|69.21|
CB|2091677|******股份有限公司|24.00|52.39|6.79|-16.66|66.52|
CB|2091678|******股份有限公司|24.00|13.57|0.63|-7.63|30.57|
CT|应收合计:|166.30|
end|
数据说明:每条记录均与start为起始,以end结束。其中第一行为总说明,G代表固定,其后的13表示固定项有13条(分别是名称、邮编、地址等13项);A表示A类明细,其后的数字4表示A类明细有4项;
B表示B类明细,以此类推。共有A、B、C、D及E五类明细,如果某类明细后面的数字为0则表示没有该类明细,报表不需要打印该类明细。至于每条记录由那几种明细组成,以及每种明细各有多少项,则都为不确定!
请教各位:该如何设计数据库?又该如何设计报表?或者用什么报表控件更合适呢?
此问题实在是让人太困惑,如果那位大侠乐于帮助解决,必定感激不尽。我愿意顷尽所有(现有1250可用分),即使有困难也欢迎大家一起探讨,谢谢!
解决方案 »
- 如何设置webbrowser中使用socks5的代理服务?
- 如果要在窗体显示出来后执行某些操作应该写在什么事件下?
- 怎样把缓冲区中的指定字节数的数据考到另外一个缓冲区中
- 请问,将列表中的数据用逗号显示,怎么写?
- 救命300分求打印问题解法
- 请问:IECache,SHDocVw_TLB, SHDocVw,MSDocW_TLB这几个单元是怎么来的?谢了
- 为什么日期变成1899-12-30?
- 用select *from mytable order by 数量 dsc,要求:排在前6名的数量的记录中“等级”字段依次赋值6,5,4,3,2,1(排名之前此字段为空
- 各路英雄豪杰请问:怎么把一个Delphi的exe文件放在服务器上定时运行?
- 虚拟机安装好了,界面是黑色的
- 较难的问题:怎样给一个动态创建的按钮添加事件?·
- 关于数据录入问题???
这一点你没有说明O -_-?如果只是想把数据放到数据库中,就 TStringList 装进来解析它就可以了。
解析可以自己做嘛,解析出来后在写到相应的表中就 OK到呗。
如果是想把上面的数据以报表的形式显示的话,请问,位置信息在哪里?
比如, 应收合计:放在报表的什么位置?晕O~-_-''?
这一点你没有说明O -_-?
------------------------
谢谢楼上这位朋友提醒!将数据插入到数据库是不成问题的但是,显然将所有数据项(以|分隔的部分)插入到同一数据库也是不可能的?因为我还不知道那种数据库可以支持超过300个字段
我的考虑是将数据库设计成五个表(G、A、B、C、D、E),其中固定表存放固定项(数据中凡是G开头的项),A表存放A类明细,B表存放B类明细。。
如果是这样的话,我不知道有那种报表控件可以支持设计一对报表?郁闷
=====================================================================
如果是想把上面的数据以报表的形式显示的话,请问,位置信息在哪里?
比如, 应收合计:放在报表的什么位置?晕O~-_-''?
---------------------
这个‘应收合计:’是各类明细各自有的。比如A类明细中有‘AT|应收合计:|166.30|’
B类明细中也有“BT2|应收合计:|166.30|”,同样其他各类明细亦各自有合计,相应的在报表中合计也应放在各自的明细列表中。再说明一点:
凡是G开头的就是所有记录都有的固定项目(每条记录均有13项固定项)
凡是A开头的表示A类清单明细,条数由第一行中A后面的数字决定
凡是B开头的表示B类清单明细,条数由第一行中B后面的数字决定
请见第一行:start|唯一流水号|G|13|A|4|B|7|C|7|D|0|E|0|
。。假如D后面的数字是0则表示没有D类明细,报表中也不应打印(甚至不能留空)谢谢!
if A类明细空 then 不打印A类明细 else if B类明细空......
那就几乎一切搞掂了
不知道有什么报表控件能达到这样的目的?
应该不是问题吧,你上面也谈到了,那么即然都放到了表中,我最想不出来有什么不可以实现的。
FastReport 是可以写脚本的,
到于你所提到的:if A类明细空 then 不打印A类明细 else if B类明细空......
我想用一个类去把该判断的东西都判断完,该生成的数据都生成,
在自己行加入到 FastReport 中,应该可行吧。
语法可以看 FastReport 自己带的 帮助文件。
实现你所说的报表应该不是问题,如果想要有现成的组件,去可以解释你上面列出来的文档
我想应该也有,是在你脑子里面吧:)。
应该不是问题吧,你上面也谈到了,那么即然都放到了表中,我最想不出来有什么不可以实现的。
FastReport 是可以写脚本的,
--------------------------------------
FastReport没有用过,不知道如何用首先请教:该报表控件可以如此支持一对多么
(一个固定表G-->对应于A、B、C、D、E)?有这样的主从报表么?第二个问题也很关键,就是当报表里边某个明细清单不存在的时候,该明细是不该打印的,也不被允许占据纸张的空白空间(客户的要求),这样的要求对于FastReport也能实现么?
要是这两个条件都能实现那就OK了
FastReport 是一个很强的报表工具,你要的功能只要在它相应的事件里面写点代码就可以实现,
重要的不是显示报表,是你从文本文件中的数据提取,和数据的存储分类。
一但把数据整理好了,FastReport 可以不连数据源,只要在相应的事件中写入你的数据信息,就可以把数据按你想要的格式显示出来了,至于打印你根本不需要操心。还有别忘了,FastReport 是开源的。
cnmaxu(Max)朋友:我会根据实际情况,另外开帖加分的,谢谢!
欢迎大家给予更多的提点!
你要打出什么东西,是动态的字段就是设计成数据表,静态的就为固定格式,如果为0 visble 为假不显示,打印就看不出来,然后调整打印位置
你要打出什么东西,是动态的字段就是设计成数据表,静态的就为固定格式,如果为0 visble 为假不显示,打印就看不出来,然后调整打印位置
---------------------------------------------
问题是每条记录当中,各类明细的组成不同,有些记录可能有B明细,有些则没有
我的是连续打印哦!!!不是一条一条手工调整的!!!‘动态的字段就是设计成数据表’
这句如何理解?可否说清楚点?
从表Detail:为数据表Atable、Btable、Ctable、Dtable、Etable
select * from ggg,Atable,Btable,Ctable,Dtable,Etable where ggg.id=atable.id or ggg.id=btable.id or ggg.id=ctable.id or ggg.id=dtable.id or ggg.id=etable.id当报表中的从数据为空的时候(比如Btable数据为空),这时报表中Btable对应位置不要显示空白
该如何写啊????
当真是郁闷!!!
1、在form上先显示出来,也便于核对和调试。
主表的内容:
.....
_____________________
明细表1的内容:
.....
_____________________
明细表2的内容:
.....
_____________________
...
...2、把以上的内容按一定的格式导出到excel,通过控制excel的打印功能把它打印出来
谢谢你的回答!我现在所面临的问题就是:
_____________________
明细表1的内容:
.....
_____________________
明细表2的内容:
.....
_____________________假如某条记录出现明细表1的记录为空,则报表中这个位置不能再给明细表1留!!
也就是说这个报表要能实现动态地控制几项明细的打印
怎么办???也不能在那个位置留空白!!!
好困惑啊。
不像A4纸那样一张一张打,而是连续走纸的那种,就是套打
http://community.csdn.net/Expert/topic/3966/3966399.xml?temp=.1558802
不像A4纸那样一张一张打,而是连续走纸的那种,就是套打==============================================================================
不会影响打印,不过当一张报表的记录数据上1000条时,导出的过程可能会慢一点,但肯定不会影响打印