有一个这样的财务问题:凭证编号*|日     期*|事             由*|金     额|余     额|
                    接上年度结存     20000.00 //此处添加虚拟行
0501001  2005.1.10  收上缴款         520.00    20520.00
0501002  2005.2.02  购置办公用品     -260      20260.00
其中*的列为数据库必填字段。
不考虑用TStringGrid实现

解决方案 »

  1.   

    用clientdataset?可否说详细点?由于余额是计算字段,同时数据库中可能会有几十万条记录,用clientdataset会不会影响速度?
      

  2.   

    几十万条别说用ClientDataset就算你用普通的DataSet也是比较大的开销。你把几十万条数据Load过来对用户有什么意义呢?用户能够判断分别的就是那么几条。
    如果你要现实一个空白行,可以考虑在后台查询之后
    Union 一个查询,获得一条空记录。比如
    Select  ID,Name,Money FORM Table1
    union
    SELECT  NULL,NULL,NULL FROM DUAL
    或者用楼上提到的内存表。在或者,用第三方的控件比如Dev的Grid或Delphi自带的StringGrid
    我感觉还是Union最直接实用!
      

  3.   

    可以在窗体上放一个CLIENTDATESET,在设计时期创建好需要的字段。如果需要增加一行,直接用 Grid.DataSource.DataSet.Append;就行了。我是这么用的。
      

  4.   

    由于要把结果放于fastreport中打印,看来还得用clientdataset