DBGridEh使用介绍
- 格式:docx
- 大小:25.18 KB
- 文档页数:7
dbgrideh列计算在DBGrid组件中进行列计算是一个很常见的需求。
列计算可以用于对一个或多个列的数据进行计算并显示计算结果。
下面我将介绍如何在DBGrid组件中进行列计算,包括几个常见的列计算操作。
1.简单的列计算:首先,我们需要在DBGrid中添加一个新的列,用于显示计算结果。
可以通过DBGrid的Columns属性添加一个新的列。
然后,我们需要在列计算时,将需要计算的列的数值累加到一个变量中,然后将计算结果赋值给新的列。
示例代码如下:```delphivari: Integer;total: Integer;begintotal := 0;for i := 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 do begintotal := total +DBGrid1.DataSource.DataSet.FieldByName('Value').AsInteger;DBGrid1.DataSource.DataSet.Next;end;DBGrid1.Columns[4].Footer.Value := total;end;```上述代码中,我们假设需要对'DBGrid1'组件中的名为'Value'的列进行求和计算,并将结果显示在第4列的Footer中。
2.复杂的列计算:在实际应用中,有时候需要进行更复杂的列计算,比如对多个列进行计算并显示结果。
为了实现这个功能,我们可以通过创建一个计算字段来存储计算结果,并将其添加到DBGrid中显示。
示例代码如下:```delphivari: Integer;result: Integer;beginDBGrid1.DataSource.DataSet.FieldDefs.Add('Result', ftInteger, 0, False);DBGrid1.DataSource.DataSet.CreateDataSet;for i := 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 dobeginresult :=DBGrid1.DataSource.DataSet.FieldByName('Value1').AsInteger + DBGrid1.DataSource.DataSet.FieldByName('Value2').AsInteger;DBGrid1.DataSource.DataSet.FieldByName('Result').AsInteger := result;DBGrid1.DataSource.DataSet.Next;end;DBGrid1.Columns[4].FieldName := 'Result';end;```上述代码中,我们假设需要对'DBGrid1'组件中的名为'Value1'和'Value2'的两个列进行计算,并将结果显示在名为'Result'的计算字段中。
DELPHI 表格控件DBGridEh属性设置详解----白波九道-----Allowedoperations[alopInsertEh,alopUpdateE h,alopDeleteEh,alopAppen dEh]允许操作类型:插入、更新、删除、追加Allowedselections[gstRecordBookmarks,gst Rectangle,gstColumns,gst All] gstRecordBookmarks:书签选中行 gstRectangle :区域选择 gstColumns :列选择 gstAll :所有AutoFitColWidths以自动重置列宽来设置网格的宽度等于客户区宽度AlwaysShowEditBu tton列显示下拉编辑按钮 AutoDropDown 自动下拉框DblClickNextVal 双击单元格为下一个值,数值为加1,列表下下一个 DropDownShowTitl es下拉框显示标题 DropDownSizing 下拉框可否手动调整大小 EndEllipsis 列内容显示不全的显示省略号 [Footer].Tooltips 底栏是否显示提示 HighLightRequired Layout内容位置 Alignment 标题对齐方式 Color 标题颜色EndEllipsis 标题过长用省略号结束 Orientation 标题文字方向 TitleButton 是否显示标题按钮 TitleTooltips 标题是否显示提示 ColumnDefValuesEh (列缺省值)Tooltips是否显示提示Columns[index]/Columns[ColumnName] 列对象,可用索引和名称调用 ColumnsOptimizeWidth根据内容自动调整列宽 Constraints 控件尺寸约束规定 ContraColCount 右侧锁定列 Ctl3D 3d 风格显示 Cursor显示鼠标指针样式 Active 激活数据分组 Color汇总行颜色DefaultStateExpand ed 默认显示是否为为全展开 Font 汇总行字体显示选项DataGrouping(数据分组设置) 表格中显示如EXCEL 中的分类汇总效果须加 MemT ableEh DataSetDriverEh,GroupLevels分组的级数如先按国别分组再按城市分GroupPanelVisible是否显示顶部的分组图示面板 ParentColor 使用父件颜色设置 Uses 添加EhLibMTE ParentFont 使用父件字体设置 AutoEdit自动提交表格修改到数据源 Dataset 数据集选项 Enabled 启用数据源 Datasoure (数据源设置) Tag 数据源标记(LongInt)DefaultDrawing 使用缺省的方式绘制表格,如为FALSE 须 OnDrawDataCell 事件中提供自己的例程 DrawGraphicDataDrawMemoText显示文本式备注字段EditActions[geaCutEh,geaCopyEh,gea PasteEh,geaDeleteEh,geaS electAllEh] 编辑属性,设置是否可以剪切、复制、粘贴、删除、选择 sebshowOnlyforCur Celleh只在当前单元格显示 sebshowOnlyforCur Roweh只在当前行显示 sebshowOnlyWhen GridActiveEh 当表格激活时显示EditButtonShowOptio ns(编辑按钮显示选项)sebshowOnlyWhen DataEditingEh当单元格进入编辑状态时显示 EvenRowColor 偶数行颜色FixedColor 固定区域颜色(如表头列头) Flat 平面显示效果(标题行渐变色须启用) Font 字体设置选项 FooterColor 底栏颜色 FooterFont 底栏字体设置 FooterRowCount 底栏行数 FrozenCols左侧冻结列数 ExtScrollBarSmoothStep True 平滑滚动/False 按列滚动 Tracking True 跟踪显示/Fasle 松开后显示 HorzScrollBar (水平滚动条设置) Visible 是否显示 Imemode 输入法模式选项 ImeName输入法 gioShowRowIndicatorEh 显示行指针 gioShowRecNoEh 显示行号 IndicatorOption (行首指示选项)gioShowRowselCheckbox esEh显示行选择框 IndicatorTitle (行道指示标题)DropdownMenupmNoVisibleCols/ PopupMenu1表头下拉菜单样式ShowDropdownSign显示下拉箭头图案 TitleButton 按钮是否启用 UseGlobalMenu用全局菜单 Left左端位置 MinAutoFitWidth 自适应宽度最小值 Name 控件名称 OddRowColor奇数行颜色 dgEdit能否编辑,dgAlwaysShowEditor 总是显示编辑项,选中时单击单元格直接进入编辑状态,否则双击进入编辑状态 dgTitles 显示列标题 dgIndicator 显示行首指针dgColumnResize 可否调整列宽 dgColLines 显示列线 dgRowLines 显示行线dgTabs 接收TAB 键移动到下一单元格 dgRowSelect整行选择 dgAlwaysShowSelection 显示选择区域 dgConfirmDelete 删除时确认 dgCancelOnExitOptions(表格通用选项)dgMultiSelect 可多行选择dghFixed3D 固定区(表头列头)3D 效果(渐变色须启用) dghFrozen3D 冷区3D 效果 dghFooter3D 栏底3D 效果 dghData3D数据区3D 效果 dghResizeWholeRightPartdghHighlightFocus 高光选择焦点dghClearSelection 移到下一个单元时是否清除已选记录 dghFitRowHeightToText 按文本适应行高 dghAutoSortMarking 自动排序 dghMultiSortMarking 多级排序 dghEnterAsTab 回车键作为TAB dghTraceColSizing 移动列宽时动态显示内容dghIncSearch允许在数据网格中进行增量搜索 Ctrl+F - 开始增量搜索。
Delphi表格控件DBGridEh应⽤实例3-编辑功能3. 编辑功能1) 多选TDBGridEh 允许在选定的区域上进⾏选择记录,列以及矩形区域等操作:允许多选会影响下⾯这些属性:Options 选项中的dgMultiSelect 属性- 设置是否允许多选。
Options 选项中的dghClearSelection 属性- 设置在⽤户移到下⼀个单元时是否清除已选记录。
Options 选项中的EdITActions属性-设置⽤户可以在已选记录上执⾏哪些操作(⽐如,拷贝,剪切,删除,粘贴,全选等)。
Options 选项中的AllowedSelections 属性-设置允许选定记录的类型(⽐如,⾏,列,矩形区域等)。
Options 选项中的Selection 属性-设置⼀个当前的多选状态,已选记录,列或矩形区域以及存取它们的属性和函数。
2) ⽂本多⾏显⽰Column.WordWrap 为True可以使数据⾏中⽂本多⾏显⽰。
如果⾏⾼>⽂本⾏,它就换⾏。
3) 显⽰备注字段设置DrawMemoText to True来显⽰⽂本式的备注字段。
.4) 如何让dbgrideh1显⽰数据时只显⽰两位⼩数DBGrideh1.Columns[0].DisplayFormat := '#.#0';5) 获得当前DBGridEh表中单元格的序号DBGridEh1.SelectedIndex6) 怎样在dbgridEh和Edit中显⽰⾦额的千分号1、dbrigeh.columns[0].DisplayFormat := ,0.002、2、adoquery1.fields[0].DisplayFormat := #,##0.003、都可以4、在保存之前,记得把','号全部replace 掉,5、tmpEdit.Text := StringReplace(tmpEdit.Text, ',', '', [rfReplaceAll]);6、tmpEdit.Text := StringReplace(tmpEdit.Text, ',', '', [rfReplaceAll]);7、在out 时调⽤函数⾃动加千分号8、tmpEdit.Text := FloatFormat(tmpEdit.Text);9、输出整型的10、function TTblRecordEditFrame.IntFormat(intValue: string): string;11、begin12、//13、if intValue = '' then14、Result := ''15、else17、intValue := StringReplace(intValue, ',', '', [rfReplaceAll]);18、intValue := StringReplace(intValue, ',', '', [rfReplaceAll]);19、Result := formatfloat('#,###,##0', StrToFloat(intValue));20、end;21、end;22、//格式化浮点数,加千分号,删除后边的023、function TTblRecordEditFrame.FloatFormat(floatValue: string): string;24、var25、decPart, intPart: string;26、i, j: Integer;27、numFormat: string;28、begin29、//30、if floatValue = '' then31、Result := ''32、else33、begin34、floatValue := StringReplace(floatValue, ',', '', [rfReplaceAll]);35、floatValue := StringReplace(floatValue, ',', '', [rfReplaceAll]);36、i := pos('.', floatValue);37、if i > 0 then //有⼩数点38、begin39、intPart := Copy(floatValue, 1, i - 1);40、decPart := copy(floatValue, i + 1, Length(floatValue));41、//从后边开始清除042、for j := Length(decPart) downto 1 do43、begin44、if decPart[j] = '0'45、then Delete(decPart, j, 1)46、else47、Break;48、end;49、end50、else //⽆⼩数点52、intPart := floatValue;53、decPart := '';54、end;55、if decPart <> '' then56、numformat := '#,###,##0.' + StringOfChar('0', Length(decPart))57、else58、numFormat := '#,###,##0';59、Result := formatfloat(numFormat, StrToFloat(intPart + '.' + decpart));60、end;7) 请问怎么才能使DBGridEh不滚动就能提交数据?可以在关闭窗⼝时,判断⼀下数据集状态,然后⾃动保存。
4. 统计功能1) 页脚合计1、设置DBGRIDEH属性的FooterRowCount 值为1;2、设置DBGRIDEH 属性的SumList的Active值为true;3、设置你要求和的该列的Footer的ValueType类型为fvtSum;4、运行OK!在DataSet 打开时写: DBGridEh1.Columns[0].Footer.Value :=IntToStr DBGridEh1.DataSource.DataSet.RecordCount);使用TDBSumList 组件2) 定制表格底部(footer)区域的汇总统计行DBGridEh 组件可以在表格底部显示汇总行,如记录数合计、列字段累加和等信息。
在FooterRowCount中设置底部显示的行数;然后在Footers 编辑器中添加一个或多个显示列,显示列可以是字段值累加和、记录数合计、字段值或静态文件等集合类型,可以在设计时在ValueType属性中设置,也可在运行时通过设置Footers[i].ValueType 指定其类型。
其含义见下表:切记设置DBGridEh.SumList.Active 为True,才会进行汇总统计运算。
需注意的是,如显示类型为不是当前列的累加和,则需在fieldname属性中指定汇总列,其它类型则无此要求。
3) TDBSumList说明你可以使用TDBSumList在可视动态变化数据集中进行记录统计。
在你想查看的数据集中设置相关的数据字段,然后写SumListChanged 事件来指定在TDBSumList 发生改变后所要做的操作。
TDBSumList 的SumCollection 属性上一个TDBSum 对象容器。
每个TDBSum 对象是一个可以指定集合值的元件。
FieldName 和GroupOperation 决定了集合值的类型,SumValue 控制当前的集合值。
TDBSumList 被埋藏于DBGridEh 组件中,因此所的下面有关TDBGridEh.SumList 的说明与TDBGirdEh的TDBGridEh.SumList 属性的说明是一样的。
DBGridEh V6.2使用实测说明说明v6.2版本看起来想在属性结构上进行大的调整,但处于兼容性的考虑,低版本的属性也进行必要的保留,因此出现了较多功能相同、属性名称类似但在属性设置面板中分组位置不一样的情况较多。
1.属性1.1.Align1.2.AllowedOperations:允许的DML操作(alopInsertEh、alopUpdateEh、alopDelete、alopAppendEh)只可进行表格输入控制,通过数据源或其它代码操作可以绕过DBGridEh的控制,设置alopUpdateEh=True、alopInsertEh=Flse,可以限制操作者只能修改数据而不能新增数据,不必要将ReadOnly设置为True1.3.AllowedSelections:(gstRecordBookmarks、gstRectangle、gstColumns、gstAll)1.4.Anchors1.5.AutoFitColumnWidths:自动适应列宽(能实现功能但效果不理想)AutoFitColumnWidths=FalseAutoFitColumnWidths=True1.6.BackgroundData:设置背景图片(图片边界用红色线条特殊标识)1.6.1.ExcludeFooter:(页脚汇总栏对数据区域的影响)Visible=True、Picture=…, ExcludeFooter=True(图片底部不会被Footer遮住)Visible=True、Picture=…, ExcludeFooter=False(图片底部被Footer遮住)1.6.2.ExcludeIndicator(左侧行标栏对数据区域的影响)<OptionsEh.dghShowRecNo=True>,Visible=True、Picture=…, ExcludeIndicator=FalseVisible=True、Picture=…, ExcludeIndicator=True1.6.3.ExclueTitleVisible=True、Picture=…, ExclueTitle=FalseVisible=True、Picture=…, ExclueTitle=True1.6.4.HorzMargin:水平偏移量Visible=True、Picture=…, HorzMargin=-100Visible=True、Picture=…, HorzMargin=+1001.6.5.Picture:设置背景图片1.6.6.Placement:放置位置(左上..右下等九个局域、平铺、拉升、裁剪等)Visible=True、Picture=…, Placement= ipTopCenterEh1.6.7.VerMargin:垂直偏移量1.6.8.VisibleVisible=True、Picture=…, 3个Exclue=True(图片全显示)1.7.BidiMode1.8.Border:边框设置1.9.BorderStyle:设置边框样式,与Border.Style同效BorderStyle= bsSingleBorderStyle= bsNone1.10.Color:数据区背景色Color= $00FFDDDD1.11.ColumnDefValues:Column列默认的相同属性设置,若Column单独设置且不一样时,以Column列的个性设置为准。
DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)经常有用户要求数据导出,对此,我们一直用最原始的办法,打开查询,读取每个字段的数据,逐条的的写入文件。
如下:procedure TForm10.prExpData(pMode:Byte);VarpFPath:String;pFName:String; //Exp Name of prefixpFObject:string;pMyFile:TextFile;pStr:string;i:integer;beginpFObject:='c:\Exp_Sample.csv';AssignFile(pMyFile,pFObject);ReWrite(pMyFile);with DM.QR_ENJBTR_250 do beginCLOSE;open;//写入标题for i:=0 to DM.QR_ENJBTR_250.FieldCount-1 do beginpStr:=pStr+DM.QR_ENJBTR_250.FieldDefs.Items[i].Name+',';end;WriteLn(pMyFile,pStr);//写入内容while not EOF do beginpStr:='';For i:=0 to FieldCount-1 do beginpstr:=pStr+Fields.Fields[i].AsString+',';end;//copy(pStr,1,Length(pStr)-1);WriteLn(pMyFile,pStr);Next;end;end; //With end;xMsg:='--->成功导出PurPart明细表:'+pFObject; cpWriteLog(x_pLogFile,xMsg,1); // V2033 AddCloseFile(pMyFile);end;后来发现,其实DBGridEh控件提供了一个过程:SaveDBGridEhToExportFile,提供了很好的导出功能,可以方便的将查询出的数据导出为txt,csv,html等格式的文件。
【页脚合计】1、设置DBGRIDEH属性的FooterRowCount值为1;2、设置DBGRIDEH属性的SumList的Active值为true;3、设置你要求和的该列的Footer的ValueType类型为fvtSum; 设置你想要显示记录数的字段(假定i)属性:DBGridEh1.Columns[i].Footer.ValueType:=fvtCount(1)、排序属性设置:ColumnDefValues->Title->TitleButton设置为TrueOptionEh->dbhAutoSortMarking设置为True支持多重排序:OptionEh->MultiSortMarking 设置为True3、多行选择删除:(1)、属性设置:Options中的dgRowSelect和dgMultiSelect属性置为true1.//多行删除2.for (int i=0;i<DBGrid1->SelectedRows->Count; i++)3.{4. DBGrid1->DataSource->DataSet->Bookmark=DBGrid1->SelectedRows->Items[i];5. DBGrid1->DataSource->DataSet->Delete();6.}【数据行高度】使用 RowHeight 和 RowLines 属性来指定数据行高。
完整的数据行高 = 行线高度+行高。
设置 RowSizingAllowed 为 True 以允许可以在运行是使用鼠标来改变行高。
在columns属性中,单击…打开对话框,选中某一列,在其属性中将wordwrap设为true,设置Column.WordWrap为True可以使数据行中文本多行显示。
如果行高>文本行,它就换行。
【显示备注字段】设置 DrawMemoText 为True来显示文本式的备注字段。
DBGridEh 的使用2009-02-27 13:311 序言2 DBGridEh(增强型表格组件)功能详解3 应用实例3.1 定制标题行3.1.1 制作复杂标题行3.1.2 标题行显示图片3.1.3 自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序3.2 定制表格底部(footer)区域的汇总统计行3.3 定制表格数据单元外观3.3.1 根据不同字段值显示相应的小图片3.3.2 显示检查框(checkbox)外观3.3.3 显示单、多列下拉列表3.3.4 显示日历下拉列表3.3.5 3D或平面外观效果3.3.6 锁定多列不滚动3.4 导入/导出数据3.5 将存在的DBGrid组件转换为DBGridEh组件4 后记返回目录1 序言DBGRIDEH 是Enlib 3.0组件包中的组件之一。
Enlib 3.0组件包是一位俄国人为增强Borland系列开发工具功能而开发的第三方组件,它具有界面友好、功能强大、开发效率高、、快速制作预览/打印简单中国式报表等特点。
因此,一推出即受到广大Borland程序员的青睐。
目前这个版本支持Borland Delphi versions 4,5,6&7 和 Borland C++ Builder versions 4 & 5 ,可极大地提高数据库应用系统客户端的性能。
许多商品软件如《速达2000》等都使用了该组件。
下面本人将使用该组件在实际系统开发过程中的经验总结如下。
Enlib3.0组件包中最重要而且功能最强大的莫过于dbgrideh组件,本文介绍的所有实例均在Delphi 7开发环境下调试通过。
返回目录2 DBGridEh(增强型表格组件)功能详解DBGridEh组件无论在外观上还是功能上都非常类似Borland开发工具中现有的dbgrid组件,它除了提供dbgrid组件的全部功能外,还增加了下列新功能:任意选择多行、列或矩形区域的数据.为多列标题设定共同的父标题行.表格底部(Footer)区显示求和、计数和其它统计信息.自动调整组件宽度与客户区域等宽.设置标题行、数据行的高度.超长的标题行、数据行文本自动折行处理.标题行可作为按钮使用,并可选择是否显示排序标志符(▽降序△升序).点击列标题可对当前列自动排序而无需编写代码.能够自动设置删除超长文本显示不下的多余部分,并以省略号(…)代替.自动搜索字段(Lookup)数据单元格以单、多列字段下拉列表形式显示.自动搜索字段(Lookup)数据单元格可进行增量搜索.可锁定任意列数在屏幕水平方向不滚动.日期时间控件DateTime picker 可支持TDateField and TDateTimeField两种日期格式.根据字段不同值显示关联的ImageList 对象图片组中的图片.隐藏任意列.显示3D风格的数据区、表尾区和锁定滚动列,制作3D外观表格.显示Memo类型字段值.除BOOLEAN型数据外,其它数据类型也可以检查框( checkbox )形式显示数据.使用专门的函数和过程来存取以reg或ini文件格式保存的表格布局(包含各数据列表、数据列访问顺序、列宽、索引标识、行高等信息)文件。
dbgrideh统计行数统计行数是一种常见的数据分析技术,用于计算给定数据集中的行数。
它在数据管理和分析领域被广泛应用,具有很高的实用性和重要性。
本文将介绍如何使用DBGrid组件进行行数统计,并提供一些相关参考内容。
DBGrid是一个强大的数据显示和编辑控件,可以在Delphi等开发环境中使用。
它可以与数据库进行连接,显示和修改表格数据。
在DBGrid的基础上,我们可以编写代码来实现行数统计功能。
要统计DBGrid中的行数,我们可以使用RecordCount属性。
该属性返回数据集中的记录数,即行数。
我们可以在代码中使用该属性来获取行数,并将结果显示在界面上。
以下是一个简单的示例代码,演示了如何统计DBGrid中的行数:```delphivarRowCount: Integer;beginRowCount := DBGrid1.DataSource.DataSet.RecordCount;// 将行数显示在Label组件上Label1.Caption := 'Total rows: ' + IntToStr(RowCount);end;```在上述代码中,我们首先使用RecordCount属性获取数据集的行数,并将结果存储在RowCount变量中。
然后,我们将行数显示在界面上,可以使用一个Label组件来实现。
除了使用RecordCount属性外,我们还可以使用其他方法来实现行数统计。
例如,我们可以使用SQL查询来获取行数。
以下是一个使用SQL查询统计行数的示例代码:```delphivarRowCount: Integer;beginwith DBGrid1.DataSource.DataSet dobegin// 执行SQL查询获取行数SQL.Text := 'SELECT COUNT(*) FROM table_name';Open;RowCount := Fields[0].AsInteger;Close;end;// 将行数显示在Label组件上Label1.Caption := 'Total rows: ' + IntToStr(RowCount);end;```在上述代码中,我们使用SQL查询语句`SELECT COUNT(*) FROM table_name`来获取行数,并将结果存储在RowCount变量中。
DBGridEh使用介绍TDBGridEh 允许在多列上创建标题,例如:设置 eMultiTitle 属性为 True 并且填充字段的标签或列标题的标题,可以使用下面的规则:字段标签中的文本部分或列标题必须由几部分组成,并且用 "|" 分割,几个列的每一个通用部分都设置为相同。
其它字段或标题必须在相应的部分包含同样的文本。
例如:Field1.DisplayLabel := 'Title1|SubTitle1';Field2.DisplayLabel := 'Title1|SubTitle2';或DBGridEh.Columns[0].Title.Caption := 'Title1|SubTitle1';DBGridEh.Columns[1].Title.Caption := 'Title1|SubTitle2';按钮式标题设置Column.Title.TitleButton 为 True可以强制标题单元为按钮式。
写OnTitleBtnClick事件来控制用户单击标题单元时的操作。
在标题中显示位图To show bitmap in titles instead of caption use TitleImages property of TDBGridEh and ImageIndex property of TColumnTitleEh.自动用位置标识排序标题.TDBGridEh allows to show special sortmarking bitmaps (small triangles) in the right part of title cell. In order to automatically marking title by sortmarking bitmaps add dghAutoSortMarking to OptionsEh property. Add dghMultiSortMarking too in order to allow sortmarking several columns simultaneously. SetColumn.Title.TitleButton to true for titles which will have possibility to change sortmarkers at run time. At runtime clicking on title will change sortmarking. Holding Ctrl key allows to mark several columns simultaneously. After user change sormarking grid call OnSortMarkingChanged event. You can write this event to change sorting and reopen in dataset. Use SortMarkedColumns property to access to sortmarked columns.标题属性的默认值使用TDBGridEh.ColumnDefValues.Title来设置标题属性的默认值。
定制网格页脚页脚以及统计值TDBGridEh allows to show special row (footer) or rows at bottom part. Use FooterRowCount property to specify the number of footer rows in the grid. Use Footer or Footers property of TColumnEh object to specify information which need to show in footer cells. Footers property useful then you have more then one footer rows.Footers is a collection of TColumnFooterEh objects where information from i-th aliment of collection will be show in i-th cell of footer column. In footer cell, it is possible to show: Sum value for specified field, record count, value of a specified field or static text. Use property Footer.ValueType orFooters[i].ValueType to specify which type of value will be show in footer cell. If ValueType = fvtStaticText, then set the property Value to specify text which need to show. If ValueType = fvtFieldValue, then you need to set property FieldName to specify field, value of which need to show. To force grid to calculate total values need to activate SumList (DBGridEh.SumList.Active := True). Set ValueType to fvtSum and grid must to show sum value of the column field in the footer cell, you can also specify Column.Footer.FieldName to calculate total value of the other field. Set ValueType to fvtCount to force grid to show count of records in the footer cell.定制网格数据单元在数据单元中显示字段值为图形。
TDBGridEh allows to show bitmaps from TImageList component depending on field values. To show bitmaps depending on field values need: Fill list of field values to Column.KeyList property (every value in separate line) and set Column.ImageList property to ImageList control that has the bitmap in according index. Set Column.NotInKeyListIndex to index of bitmap that will be shown if field's value does not correspond to any value in KeyList (for instance you can set index of image for Null field value). At run time you are not allowed to edit bitmap in column cell. Use blank key and mouse click to set next value from Column.KeyList to the field; Shift-blank key and Shift-Mouse click to set previous value from Column.KeyList. Set Column.DblClickNextval to True have allows to change value on mouse double click.检查框式的逻辑及非逻辑值Grid automatically shows checkboxes for boolean field. To show checkboxes for non boolean fields fill first line of Column.KeyList property that corresponds to the checked state of the checkbox, second line - non checked state, and set Column.Checkboxes ptoperty to True. Line of KeyList can represent more than one value in a semicolon-delimited list of items.数据行高度使用 RowHeight 和 RowLines 属性来指定数据行高。
完整的数据行高 = 行线高度+行高。
设置 RowSizingAllowed 为 True 以允许可以在运行是使用鼠标来改变行高。
设置Column.WordWrap为True可以使数据行中文本多行显示。
如果行高>文本行,它就换行。
显示备注字段设置 DrawMemoText to True来显示文本式的备注字段。
.定制单元格字体及颜色TDBGridEh 中的 Font 和 Color 属性描述了数据网格中绘制单元格的字体和颜色。
TColumnEh 中的 Font 和 Color 属性描述了指定列中绘制单元格的字体和颜色。
事件定制单元格字体及颜色有几个事件可以让你能够在绘制单元格前定制单元格字体和颜色。
你可以写TDBGridEh的OnDrawColumnCellEvent事件句柄来在控制在网格单元中绘制数据。
你可以使用Canvas属性的方法来绘制单元格。
但是如果你只想改变字体或颜色的属性,我建议你使用下面的事件。
你可以写TDBGridEh的OnGetCellParams事件来控制在绘制数据单元以前所指定的操作。