DbGrid问题:(100分)

  • 主题发起人 主题发起人 cbdiy
  • 开始时间 开始时间
C

cbdiy

Unregistered / Unconfirmed
GUEST, unregistred user!
采用的是Windows2000,Delphi6.0
DbGrid控件在没有绑定的情况下,
能否显示多行?且返回行数?这样便入在DbGrid中输入多条记录。
请教各位大虾,
本人初访此论谈,如有赐教,愿给200分。
 
不可以这样做,要想实现这个目的,介意你用一个内存表,在RX等都有这个第三方控件
用他来实现就可以了
 
你说的第三方控件在哪里有下载?
 
如果想用第三方控件可以用ClientDataSet
 
不好意思,打少了个字:
如果不想用第三方控件可以用ClientDataSet
 
多层表头的DBGrid
李立新 王宁 张玉麟
TclientDataSet控件是在Delphi中设计多层分布式数据库程序的核心控件,在Delphi3中它最早出现,在Delphi4和Delphi5中得到了进一步加强。TclientDataSet控件具有强大的功能,无论是单层、两层C/S和多层结构都可以使用TclientDataSet控件。从borland公司的公布的资料看,它的功能还将得到不断增强,本文主要介绍利用TclientDataSet控件的特色功能——抽象字段类型配合TDBGRID控件实现复杂题头。
在设计数据库录入界面时,经常需要实现如图1所示的复杂题头,这通常需要利用第三方控件或进行特殊处理才能实现。而在Delphi中利用TClientDataSe的ADT(抽象字段类型)配合TDbgrid控件,可以非常容易地实现这种题头。
图1
下面就以一个员工的工资信息表来说明具体步骤。
假设某单位的工资信息表的结构如图2所示。
图2
首先生成一个新的Application,在窗体上添加一个TClientDataSet构件和TDataSource构件,其name属性分别为ClientDataSet1和DataSource1,并把DataSource1的DataSource属性设置为ClientDataSet1上;添加一个TDBGRID和TdbNavigator控件,命名为DBGRID1和DbNavigator1,其Datasource1属性设置为ClientDataSet1。
然后建立TclientDataSet的字段定义。这里只介绍如何定义抽象字段:将基本信息和工资作为两个抽象字段,如图3所示,将两个字段分别命名为INFO和Salary。
图3
然后依次建立INFO字段和SALARY的子字段,单击对象观察器的ChildDefs,进入子字段编辑器,依次输入该字段的子字段。然后调用TclientDataSet的快捷菜单(鼠标点击TclientDataSet控件,然后右击鼠标)CreateDataSet建立CDS数据表,并保存文件。最后建立TClientDataSet的永久字段,TclientDataSet的快捷菜单,选择ADD All Fields。
图4
至此有关ClientDataSet的设置完毕。
在设置完ClientDataSet之后,需要设置DBGRID的显示属性。主要就是设置Colums的有关属性(略)。编译运行即可出现如图2所示的运行界面。然后添加一个Tdbnavigator控件,将其DataSource属性设置为Datasource1。这些与普通的基于BDE的数据库应用是一样的,不多叙述。
TclientDataSet还具有其它特色功能,有兴趣的程序员还可以进一步发掘。
 
你在数据库中用一个临时表不行吗?
 
专门建一个字段,你要多少行就在该字段里输入多少个数据,然后建立
固定字段,将它Visible设为False不就可以了。
 
是显示数据库记录吗?那就用TClientDataSet吧。它的Data可以赋Variant值。
如果是显示一般的记录,不如用StringGrid或是ListView.
 
tdataset.create;
 
将DBGRID连到一个query控件,在query中写一条无法查到任何记录的语句,将requestlive和catchrefresh属性设为true
,就可以多条输入了,在输入完毕后选dbnavigator的post,最后用query1.applyupdate更新就可以了
 
接受答案了.
 

Similar threads

后退
顶部