Ⅰ delphi10 cxgrid控件怎么啦出来
1.
去掉cxgrid中抬头的box,在tableview1的ptionsview的groupbybox=false
2.
在GRID footer 中加入sum(列),tableview1的optionsview的footer=ture
然后在cxGRid1的customize中的summary 的footer.add需要合计的列kind= skSum
3.
去掉cxgrid中的过滤下拉箭头选择tableview1.optionscustomize.columnfiltering=fasle
4.
cxGrid1DBTableView1 的OptionView中属性GroupFooters设为gfAlwaysVisible并设置需要求和的列,在summary.defaultfor Groups 下add加入需要合计的字段,column下显示fieldname为统计字段,format为格式,kind为统计方法,position 为位子 spfooter 在分组的下面,spgroup在分组的上面
或用cxGridPopupMenu1,在运行时可对任意数字类型列求和,方法是只需设置cxGridPopupMenu1的属性Grid为cxGrid1DBTableView1的cxGrid,
即可实现您所需功能
5.
DEVExpress里的cxGrid默认的数值格式带¥,怎么去掉啊!
双击Cxgrid,选择colmnum改变类型options.properties.Memo,在displayformat中进行设置
6.
在网格最后一行的最后一格回车自动增加一条记录,并跳到新记录的第一格
设置cxGrid1DBTableView1的OptionsBehavior的FocusFirsCellOnNewRecord
与GoToNextCellOnEnter为True,FocusCellOnCycle设为True
7.网格中通过Tab跳转,设置cxGrid1DBTableView1的OptionsBehavior的FocusCellOnTab为True
8.设置是否能够在网格中编辑数据,设置cxGrid1DBTableView1的OptionsData的Appending设为True,Deleting为True,Editing为True
9.设置是否能选中网格,设置cxGrid1DBTableView1的OptionsSelection的CellSelect为True
10.设置是否能够反选,设置cxGrid1DBTableView1的OptionsSelection的InsertSelect为True
11. 设置行高:在cxGridDBTableView1.OptionsView.DataRowHeight
12. 改变字体在
cxStyleRepository双击它,在里面添加GridTableViewStyleSheetD
evExpre
然后改变Style标签里面的cxStyle的字体就可以控制cxGrid的字体了
Ⅱ 如何在delphi里cxgrid单击某一个单元格弹出树形结构
如果是特定列的话, 选中列, 属性properties选中PopupEdit, PopupEdit下的PopupEdit选中你要弹出的控件即可
如果是特定单元格
拉一个TcxEditRepository控件, 新建一个TcxEditRepositoryPopupItem, PopupEdit选中你要弹出的控件
选中你要显示弹窗的列,在GetProperties事件中判断是否要显示弹窗,
if 判断条件=Ture then
AProperties := ppicxdtrpstry1PopupItem1.Properties;
Ⅲ delphi中cxgrid cheackbox 多选
在 Properties 的 OnEditValueChanged 事件写代码:
将当前行的主键值记录下来
Qry过滤,Filter := 'Check字段 =True'
将过滤出来的记录Check字段 全部修改为 False
根据第1步记录的主键值,定位回修改的那行,并将其Check字段 修改为 True
大致代码如下
var
tmpKey:string;
begin
ifnotqry.FieldByName('Check字段').AsBooleanthen
Exit;
tmpKey:=qry.FieldByName('key字段').AsString;
qry.DisableControls;
try
qry.Filtered:=False;
qry.Filter:='Check字段=True';
qry.Filtered:=True;
whilenotqry.IsEmptythen
begin
qry.Edit;
qry.FieldByName('Check字段').Value:=False;
qry.Post;
end;
qry.Locate('key字段',tmpKey,[]);
qry.Edit;
qry.FieldByName('Check字段').Value:=True;
qry.Post;
finally
qry.EnableControls;
end;
end;
Ⅳ delphi代码问题
procere llp_ui_work.(
Sender: TObject);
begin
if Not qry1.Active then Exit ; //如果数据集控件没有打开,退出
if qry1.IsEmpty then Exit ;//如果数据集没有数据,退出
if Not btn1.Visible then //如果btn按钮不可见,那么
begin //开始
Application.MessageBox('无法取入数据',
'提示',MB_OK+mb_iconinformation) ; //提示
Exit ; //退出
end;
qry2.Filtered := False ; //先关闭过滤器
qry2.Filter := 'xuhao = '+qry1.FieldByName('xuhao').AsString ; //过滤的条件为xuhao=qry1数据集里 xuhao字段的值
qry2.Filtered := True ; //打开过滤器,打开会,就只查询到符合过滤器条件的内容
ShowCustomerDetail(qry2.FieldByName('xuhao').AsInteger); //这个是一个过程,看不到代码,楼主自行研究吧
end;
Ⅳ delphi中加个下拉滚动条,如果。现在是第九第十下面的显示不出来。请问如何加滚动条
这个要看你的选用的容器控件来定。有的容器控件是不支持滚动条,比如:你的第九、十等都是放在TPanel里面的,而TPanel是不支持滚动条的。
据我的经验,如果某个界面可能超出屏幕范围,通常采用的的TScrollBox控件,这个控件支持AutoScroll属性,可以自动根据里面子控件的界面大小而显现滚动条,并且也可以手动进行设置。
Ⅵ 怎样判断cxGrid里的LookupComboBox选中了哪一行
cxGrid里的LookupComboBox与TcxLookupComboBox不一样的,你试一下就知道了.特别是获取用户选择了他们下拉框的哪一行,虽然他们都有相关的属性和方法,但结果不一样.
Ⅶ exportgrid4toexcel怎么将2个cxgrid导出一个xls文件中
点击导出按钮后,你只要把前台的分页参数,业务过滤参数传到后台 然后后台重新查询数据,填充到excel里
Ⅷ 怎样使大量数据在Grid控件中显示时,不占用太多时间
我一个access数据库,1万多条记录,查询时ADOQuery后的数据通过DataSource控件全部显示在DevExpress 的 cxGrid控件中,每次查询需要耗时5秒钟才能响应用户操作。 请问能否提供方法使Grid快速相应?就像access中或SQL SERVER中打开大量数据的表时,显示完部分数据后,其它数据后台更新,快速响应操作你把数据分页显示,速度就上去了。。。对,我就是想要这样,但如何分页显示呢?关注这个帖子帮你顶下~ 我也想知道cxGrid我没用过,不过我用DBGrid显示Access数据库中一个四万多条记录的表,也就两三秒而已。能说说怎样处理的吗?最好还是优化一下数据(查询语句)。。对於不需显示的橍位尽量不要, 其实不管怎么好的数据网格控件。。在数据量很大的时候。。都会有相对慢的问题。。因为显示屏的大小是有限的,所以每屏显示个30条记录就差不多了。 程序中处理上一页、和下一页。程序中能让用户设置每屏显示的记录数。必须自己写程序控制每页的显示数量吗?数据网格控件自己不带有以上功能吗? 就像SQL SERVER或ACCESS那样,有大量数据时,首先先是一页,接着就能响应用户操作,同时后台继续在数据网格控件中添加其他没有显示的数据请帮忙大家都不清楚吗关一下 。。。大家给个面子好不好求助dbGrid 跟StringGrid (你的cxGrid应该是StringGrid)有本质的区别, dbGrid仅仅需要显示的就是行数区域的,也可以说dbGrid有分页的作用。 stringGrid没有, 你可以 load 时候 用Application.processmessage我用的DevExpress的Grid控件,他本身是数据感知的,通过DataSource控件获得数据集,但我没有找到他的分页功能呢? 请帮忙cxGrid我没用过,不过我用DBGrid显示Access数据库中一个9万多条记录的表,也就两三秒而已。 CPU: P-M1.4 内存:256M 硬盘还是4200转的我也是笔记本,咱们差不多,关键是不仅仅查询,而且还经过一些SQL运算,所以耽误时间了,我看主要是数据表格控件的速度不够,不加数据表格,单独查询,很快就完成了关注一下 对于用户选择商品信息的情况,大家是怎么处理的?商品信息表大概有几万条记录。cxGrid本身还对数据记录进行转换处理的,它有自己的数据记录格式,所以速度上有所损失。 不可否认,cxGrid的功能是强大的,其查询、过滤、分组等功能能让你不用写一行代码。 SQL Server的企业管理器以及DB2的iSeries等类似客户端在每次查询时并不接收所有的返回记录,它们在接收一定数目的记录后就暂停接收,在客户需要时再进行接收剩余的部分记录。这是客户端做到的。楼主是不是搞错了? 参考DBGrids.pas源码(TCustomDBGrid.DrawCell),DBGrid显示数据是显示多少行就读多少行的数据,不是将整个数据集读进内存,所以即使有一亿条数据,它也不会花什么时间来显示,花时间的是连接数据库的数据集部件和数据库程序,DBGrid也不保存不显示的数据。 StringGrid跟DBGrid有明显区别,DBGrid的数据源来自数据集,StringGrid的数据源来自内存,所以StringGrid显示之前要将数据放入内存,楼主的想法只有对StringGrid才有意义,不过也不用在后台取数,只要监视StringGrid的TopLeftRow,仿效DBGrid读入当前一页的数据即可。 至于cxGrid等表格不是显示慢,而是因为要完成各种功能,势必要历遍整个数据库一次甚至多次,所以比较慢,没有好办法。 因为cxGrid在读入数据后要对所有字段和所有纪录进行一次映射,慢是无可避免的了。如果表格中有Lookup字段就更是慢上加慢没办法了吗?只能换DBGrid控件了吗?dbgrideh也不错郁闷,难道要更换数据表格控件?系统已经完成了,使用维护中才发现大量数据显示慢的问题,要全部更换控件可不是一件简单事啊为了用户的利益,换控件吧明天结帖,看看还有没有一线生机没有希望了吗?放弃cxgrid的一些功能可以加快速度,我不会随便用cxgrid,因为dxgrid升级成cxgrid之后,之前写的程序就报废了,万一以后来了exgrid,fxgrid怎么办,此其一,cxgrid很多花俏的东西,你搞编程的会用,但连电脑也不怎么懂的用户会用吗?有些功能有用吗?别说在中国,我想老外也不一定使用,此其二,cxgrid很多鼠标操作的功能,作为屏幕展示确实很吸引人,但是真正处理事务,这些功能除了花时间没有什么意义,此其三,cxgrid控件很特别,不与其它兼容,连自己的dxgrid也不兼容,很容易被吊死在这棵树上,要换控件几乎要重写整个程序,思路都要变了,此其四,所以没有什么特殊用途,任它的功能再强大,也得慎重考虑,避免后悔。是啊,cxGrid确实不少弊端,换数据表格控件不是不行,但有原因:系统已经完成,使用了很长时间了,更改控件可能引入Bug,此其一;数据表格中许多要用到主从,甚至三层关系,不用cxGrid也要使用别的第三方控件,一样存在兼容性问题,此其二;三、我比较信任DevExpress的研发能力,认为一定有解决方法,此其三;我也不想就这样放弃,还在尝试别的方法,此其四。 嘿嘿,效仿楼上,勿怪。 也许多线程可以,我晚上试试,看SQL SERVER和ACCESS显示数据记录时,感觉是用了多线程的样子……楼主,泼泼冷水,一旦在数据库使用多线程,你将会遇到前所未有的困难------数据集控件的线程安全问题,举个例子,有多个线程同时使用一套数据控件 a:=DataSet.FieldByName( *** ).AsString. b:=DataSet.FieldByName( *** ).AsString. 连续执行这两句,b有时等于a,有时又不相等,还会读数出错,甚至报告致命错误,把程序当掉,因为数据控件已经被其它线程修改,或者删除,或者两个线程同时读数,使用Synchronize,可以解决问题,但这就是变相回到单线程,甚至比单线程执行还慢,结果从这个井出来,又落入另一个井,并且越跌越深,经验之谈,信不信你可以试试。最简单的方法就是减少每次读取的数据了,好像一下子读入几万笔数据没有太大必要。1: .DisableControls 2:go 3: .EnableControls今天没时间了,琐碎的事太多,没办法静下心来写代码,感谢 kinneng 老兄的不吝指教,用天下无贼里的那就话: “我想试试”。拖一天再结帖吧确实没有找到好的解决办法,看来在以后的程序中只能分页显示了。
Ⅸ cxgrid 是否能做到在结果中过滤,如何做
ado 中recordset可以过滤
Ⅹ delphi中如何设置DBGridEH第一列为下拉列,并使其控制表格筛选
按如下图设置就好了