dxDBGrid使用集锦(delphi) 下载本文

内容发布更新时间 : 2024/5/4 14:34:40星期一 下面是文章的全部内容请认真阅读。

dxDBGrid使用集锦 [转贴 2007-03-26 17:26:15]

一、如何设定可以多列自动排序?

只能使用分组:如按a1,a2,a3,a4排序 先按a1分组,再a2,再a3 然后设置a4的排列(升/降) 二、如何设定左边几列,不能滚动? 建立Band0,Band1 Band0的Fixed=tfLeft Band1的Fixed=tfnone

设置要锁定的字段的BandIndex=0,其它为1 三、如何访问,显示字段的对象,控制其可视与不可视? 参看自带例程RunTimeCustomizing.dpr

四、既然不能用readonly,那我用edgoEditing属性对吗? 要想ReadOnly=True.我用edgoRowSelected=True;

------------------------------------------------------------------------------- DXDBGRID有没有属性(如SORT等)可以实现:点击DXDBGRID的 某个字段标题,就按这个标题排序?如果有,怎么用? 呵呵。 楼上的。 你这样对待DXGRID 啊。 太痛苦了。

DXGRID 设计排序和统计的关键前提是先指定 DXGRID 的KEY FIELD字段 然后设置它的 edgoAnsi Sort属性 为TRUE 就可以了.随便点任意字段都可以排序,如果还需要显示合计的话。 需要将edgoLoadAllRecords 设置为 True.

不过需要注意 如果你做的是C/S编程,这意味着要从服务器上把所有符合条件的记录 全部取回本地

------------------------------------------------------------------------------ 整理ExpressQuantumGrid控件心得如下:

针对TdxDBGrid仅仅设置一些属性,就可以到达很好的效果:

前提:先设置DataSource、ADODataSet、以及TdxDBGrid的属性后,设置ADODataSet的Active=true;然后才能在TdxDBGrid中的鼠标右键->

column-> Add all Fields; 注意:一定要设置TdxDBGrid控件的属性keyField、并设置OptionsDB中edgoLoadAllRecord=true 。

1、显示脚注栏: 设置属性showSummeryFooter=true即可。

2、显示某一列的汇总值(或总个数): 设置summaryFooterType,为cstSum(或cstAvg)、并设置summaryFormat,即可。

3、设置Filter:在TdxDBGrid属性中Filter组中Active=true。 4、设置Sort:在OptionsBehavior中设置 :edgoAutoSort=true。

5、设置汉字提示:在column中->SummaryFormat中输入样式,如:(数量=0.00) 6、summary样式,一共分为三种:

(1)summary:用于行的总体说明GroupNode类型。 (2)summaryFooter:在整个Grid的底部footer处显示。

(3)summaryRowFooter:在每个行的底部显示信息。(行,是几条记录形成的小组)。

------------------------------------------------------------------------------ 在DELPHI的标准控件中很容易的用

grid.columns.add就可以加如一个列,但在DX控件中却不支持。 WHY????????????????????/

来自:sun77wind, 时间:2002-1-31 15:53:00, ID:898563 WHY?

不知道,反正他就是不支持。我也在研究这个东东,怎么,交流交流? 来自:sun77wind, 时间:2002-2-1 11:23:00, ID:900250 我找到了

dxDBGrid1.CreateColumn(TdxDBGridMaskColumn);//TdxDBGridMaskColumn,列类型 dxDBGrid1.Columns[4].FieldName := 'City';//4列索引,City字段名称 出现

来自:glbboy, 时间:2002-2-1 13:15:00, ID:900595 我就顺道问问,怎么让汇总的列自动跟着前面输入的变化。 在keyup事件中,dbgShare.Fields[4].AsFloat:=

dbgShare.Fields[1].AsFloat* dbgShare.Fields[2].AsFloat* dbgShare.Fields[3].AsFloat;

这样的话等输完它又变回去了,如果用Post先提交,那样的话整个输入又获得了焦点,继续输的时候又把输好的给覆盖了,总之很不爽,大家可以试试。而在其他事件中,又不是实时变化。

来自:sun77wind, 时间:2002-2-1 16:23:00, ID:901144 你怎么不用计算字段呢?

来自:glbboy, 时间:2002-2-1 18:27:00, ID:901471

在DBGRID事件BeforeScroll、ColExit两个事件中都加如下代码实现了汇总。 qryShare.Edit;

qryShare.Fields[4].AsCurrency:=qryShare.Fields[1].AsCurrency* qryShare.Fields[2].AsCurrency*qryShare.Fields[3].AsCurrency;