cxGrid cxGridTableview 不用数据源 怎么插入从表数据

cxGrid cxGridTableview 不用数据源 怎么插入从表数据,第1张

不用理grid,直接 *** 作dataset

如果你知道是哪个dataset比如adoquery1

直接

close

sql.text:='xxxxx'

open

就完了

如果dataset可能会变化,想写通用的

cxgrid有个child叫TableView(这个东西分好几种,具体看设置)这个是显示数据用的,IDE左边显示组件的treeview里能看到,或者在cxgrid右下角有带下划线的tableview名字可以选择

类似cxGrid1DBTableView1这样

它有个属性是 DataController,它有子属性DataSource,到这里就认识了吧

跟 *** 作其他dataset一样

举个例子:

cxGrid1有个cxGrid1DBTableView1

那就可以直接写

cxGrid1DBTableView1.DataController.DataSource.Dataset.close

cxGrid如果是静态添加列,可以把列的Properties设置为ComboBox,而现在是动态添加,代码如下:vartvC: TcxGridDBColumn

tvLIST:TcxGridDBTableView

for i:=0 to High(ColName) dobegintvC:=tvLIST.CreateColumn

tvC.Name:=ColName[i]

tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString

cxGrid delphi 1 使用TcxEditRepository控件, 增加一个combobox(如名称为cxcbb), 做好设置

2 绑定列 tvC.Properties := cxcbb.Properties

工具栏中拖一个TcxEditRepository控件, 双击, 在d窗中添加combobox(如名称为cxcbb, 设置方法和普通combobox一样)

2 绑定列 tvC.Properties := cxcbb.Properties

我的实例名是cxERCBB1,静态添加了items进行测试,代码:begintvC:=tvLIST.CreateColumn

tvC.Name:=ColName[i]

tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString

tvC.DataBinding.FieldName:=ColName[i]

留邮箱, 我给你个示例

能否顺便问一个问题:

cxGrid绑定ClientDataSet,现在我需要在每次编辑完一个单元格,就对该行内容进行自动更新。例如我在“负责人”字段输入“张三”,当离开该字段时(无论是否离开该行),就自动检索,并在该行的“邮箱”字段填入张三的邮箱。

我用cxGridDBTreeView的onEditChanged,发现不行,在cxGrid的Edit内容提交给ClientDataSet之前就运行了,而代码是从ClientDataSet的字段中取值的,所以取不到值,而且当运行过代码后,cxGridDBTreeView的修改内容也无法提交给ClientDataSet。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11481159.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存