由层得到数据表名:

procedure TFB_PatientWaiting.cxgrdbtblvwGrid1DBTableView_MyPatienWaitingDblClick(
Sender: TObject);
var tmp_ifGHD : Boolean;
MyTV: TcxGridDBTableView;
begin
tmp_ifGHD := False;
if cxgrd_Patient.ActiveLevel.Index = then tmp_ifGHD := True;
MyTV := TcxGridDBTableView(cxgrd_Patient.ActiveLevel.GridView);
currentPatientSelect(tmp_ifGHD,(MyTV.DataController.DataSource.DataSet as TClientDataSet));
end;

当前记录的top值:
cxgrid.Controller.FocusedRow.ViewInfo.Bounds.Top 
------------------------------------------------------
用代码进行过滤是提示转换bool异常错误:

用代码cxgrid使用过滤时,使用like等表达式,字段类型必须是string类型,不能其他如integer。否则做like时转换会出现异常。被这个破问题搞晕了;
------------------------------------------------------

cxgrid有几个level,如何知道当前那一层active:

当前激活的是cxgrd_JY.ActiveLevel.Index;

转 cxgrid属性说明

TCXGRID控件:
属性:
ActiveLevel: 当前层
BorderStyle: 窗口风格
Color: 颜色
FocusedView: 当前View;
Font: 字体
LevelTabs: 类似PageControls头设置
  CaptionAlgnment:标题对齐方式
  Images:图标
  Style:风格
Levels:
RootLevelOptions:层选项
  DetailTabsPosition: 类似PageControls头显示位置;
  TabsForEmptyDetails: 如果数据为空是否显示Tabs

TcxGridLevel组件:
属性:
      Active: 读写激活该层;
       Controls: 读写指向TCXGrid;

CanBeVisible: 读取是否能设置可见;
   Count: 读取子层个数;
   Displaycaption: 读取层标题;
   IsMaster: 读取是否cxgrid的最上层;
   Items: 读取层组,例: Items[0]访问第一个层;
   Level: 读取层级数;
  VisibleCount: 读取可见层个数
  VisibleIndex: 读取可见索引个数
  VisibleItems: 读取可见层组,例:VisibleItems[0]访问第一个可见层
  Caption: 读写层标题;
  GridView: 指定或读取该层的Grid显示;
ImageIndex: 读写图标索引
Options: TcxGridLevelOptions选项
       DetailFrameColor: 读或写明细表格颜色
       DetailFramWidth: 读或写明细表格
       DetailTabsPosition: 读或写Tab位置,类似PageControlsTabs
Styles: 样式
Tab: 读或设置tab样式
tabsBackground: 读或设置tab背景样式
Visible: 读或设置是否可见
方法:
  Add: 增加一个Level;
  Levels[i].Add:增加一个子Level;
TcxGridDBBandedTableView组件:
属性:
BackGroundBitmaps:背景图片选项
  Background:背景图
  Bandbackground:带背景图
  Bankheader:带头背景
  Content:细节区背景
  filterBox:过滤区背景
  footer:注脚背景
  group: 组背景
  header:列头背景
  preview:预览区背景
Bands:带列表
DataController: 数据控制
  DataSource:数据源
  DetailKeyFieldNames:主从表时设置细表键字段名
  KeyFieldNames: 主从表时设置关键字段名
  MasterKeyFieldNames:主从表时设置主表键字段名
  Summary:合计组
    FooterSummaryItems:注脚定义
    FooterSummaryItems:组脚定义
FilterBox:过滤框
  CustomizeDialog:是否自定义过滤条件
  Position:过滤框显示位置
  Visible:显示过滤框
NavigatorButtons:导航条设置
  Append:增加按钮设置
Enabled:是否禁用该按钮
Visible:是否显示该按钮
ImageIndex:图标ID
       Cancel:取消按钮设置,具体设置同Append;
       ConfirmDelete:删除时是否确认提示
       Delete: 具体设置同Append;
       Edit: 具体设置同Append;
       First: 具体设置同Append;
       Insert: 具体设置同Append;
       Last: 具体设置同Append;
       Next: 具体设置同Append;
       Filter: 具体设置同Append;
       GotoBookmark: 具体设置同Append;
       NextPage: 具体设置同Append;
       Post: 具体设置同Append;
       Prior: 具体设置同Append;
       PriorPage: 具体设置同Append;
       Refresh: 具体设置同Append;
       SaveBookmark: 具体设置同Append;
     OptionsBehavior:行为选项
       AlwaysShowEditor:是否总是显示编辑条
       BandHeaderHints:带头是否显示提示
       CellHints:单元格是否显示提示
       ColumnHeaderHints:列头是否显示提示
       CopyCaptionsToClipboard:是否允许复制标题到剪贴板
       CopyPreviewToClipboard:是否允许复制预览内容到剪贴板
       ExpandMasterRowOnDblClik:是否允许双击行显示明细
       FocusFirstCellOnNewRecord:新增记录时是否焦点指向第一列单元格
       GoToNextCellOnEnter:按回车是否自动跳到下一单元格
       NavigatorHints:是否显示导航条提示
     OptionsCustomize:自定义选项
       BandHiding:是否显示带
       BandMoving:是否允许拖动带
       ColumnFiltering:是否允许列过滤
       ColumnGrouping:是否允许列分组
       ColumnHiding:列头是否隐藏
       ColumnHorzSizing:是否允许调整列宽度
       ColumnMoving:是否允许列拖动
       ColumnSorting:是否允许列排序
       ColumnVertSizing:是否允许调整列高度
       DataRowSizing:是否允许调整数据行高度
       GroupBySorting:是否允许组排序
       GroupRowSizing:是否允许调整组行高度
OptionData: 允许数据操作
     Appending: 是否允许增加
     CancelOnExit: 退出时是否自动取消修改
     Deleting: 是否允许删除
     DeletingConfirmation: 删除是否提示
     Editing :是否允许编辑
     Inserting: 是否允许插入
  OptionsSelection: 单元格操作
     CellMultiSelect:是否允许选择多单元格
     CellSelect: 进入单元格是否选择 
     InvertSelect: 是否允许转换选择
     MultiSelect: 是否允许多行选择
     HideFocusRectOnExit: 移开是否隐藏焦点
     UnselectFocusedRecordOnExit:移开是否允许取消焦点
 OptionsView:表格选项
     BandCaptionsInColumnAlternateCaption:是否允许在列里修改带标题
     BandHeaderHeight: 带头高度
    BandHeaderLineCount: 带头显示行数
    BandHeaders: 是否显示带头
    CellAutoHeight:单元格是否自动高度
    CellTextMaxLineCount: 单元格文本最大行数
    ColumnAutoWidth: 列是否自动宽度
    DataRowHeight: 数据行高度
    Footer:是否允许显示注脚
    FooterAutoHeight: 注脚是否自动适应高度
    FooterMultiSummaries:是否允许多注脚
    GridLineColor:表格行线颜色
    GridLines:显示表格行线类型
    GroupByBox:是否允许拖动列到分组区进行分组
    GroupFooters:显示组脚类型
    Header:是否显示列头
    HeaderAutoHeight:列头是否自动适应高度
    HeaderHeight: 列头高度
    IndicatorWidth:是否显示左边指示条
    IndicatorWidth: 指示条宽度
    Navigator: 是否显示导航条
    NavigatorOffSet: 导航条偏移位置
    ShowColumnFilterButtons: 是否显示列过滤按钮
    ShowEditButtons: 是否显示编辑按钮
Preview:预览选项
  AutoHeight:是否自动适应高度
  Column:要预览的列,只能选一列
  LeftIndent: 左缩进点数
  MaxLineCount:最大显示行数
  RightIndent:右缩进点数
  Visible: 预览是否可见
PopupMenu:弹出菜单
Styles:样式或风格组
  BackGround:背景风格
  Content:明细风格
  Footer:注脚风格
  Group:组风格
  GroupSummary:组合计区风格
  Header:头风格
    Indicator:指示区风格
    Preview:预览区风格
  Selection:选择区风格
  StyleSheet:风格组,选中后自动设置各区风格
   方法或函数:
      CreateColumn: 
参数:无;
功能:新建一列;
返回:返回列类型结果;
      GetColumnByFieldName:
 参数:字段名串;
功能:取得指定字段列;
返回:返回列类型结果;
例:MyTV.GetColumnByFieldName('First').Visible := False;
       CleaarItems:
参数:无;
功能:清除全部显示列;
返回:无
 CreateItem:
参数:无;
功能:建一显示列;
返回:列类型值
StoreToIniFile:导出布局到Ini文件
  StoreToRegistry:导出布局到注册表
  StoreToStream:导出布局到流体
RestoreFromIniFile: 从Ini文件恢复布局
RestoreFromRegistry:从注册表恢复布局
RestoreFromStream:从流体恢复布局
FindItemByID:根据ID号查找列
FindItemByName:根据列名查找列
 FindItemByTag:根据Tag查找列
 IndexofItem:返回列的序号
 CreateViewInfo:建表格
TCXGRID用法指南
假设已设定以下变量
MycxGrid: TcxGrid;
MycxGridLevel: TcxGridLevel;
MyTV: TcxGridDBTableView;
MyDataSource: TDataSource;
方法:
一、 建层和层视图
   MycxGrid := TcxGrid.Create(self);
MycxGridLevel := MycxGrid.Levels.Add; //建层
MyTV:= TcxGridDBTableView(MycxGrid.createview(TcxGridDBTableView));//建视图
MycxGridLevel.Control := MycxGrid;//指定关系
MycxGridLevel.GridView := MyTV;//指定视图
TcxGridDataController(GetDetailDataController(FocusedRecordIndex,   0)).GridView;//得到下层视图
二、设定表格位置和大小
MycxGrid.ParentWindow := self.Handle;
MycxGrid.Top := 0;
MycxGrid.Height := 200;
MycxGrid.Width := 400;
MyTV.Preview.visible := true;
三、 设定数据源及分配全部字段
MyTV.DataController.DataSource := MyDataSource;
MyTV.DataController.DeleteAllItems; //清除全部字段
MyTV.DataController.CreateAllItems; //建全部显示字段
四、 动态增加显示列及列访问
var
  iIndex: integer;
  vCol: TcxGridDBColumn;
  vImgCom: TcxImageComboBoxItem;
  i,j: integer;
for i:= 0 to Mydatasource.dataset.FieldCount -1 do
begin
  vCol := MyTV.CreateColumn;
         vCol.DataBinding.FieldName:=Mydatasource.dataset.Fields[i].FieldName;
  if (i = 1) then
  begin
     vCol.PropertiesClassName := 'TcxImageComboBoxProperties';   ////分区分大小写
     vCol.DataBinding.ValueType := 'String';
     for j := 0 to 5 do
     begin
vImgCom:=TcxImageComboBoxProperties(vCol.Properties).Items.Add;
       vImgCom.Description := IntToStr(j);
       vImgCom.Value := IntToStr(j);
     end;
   end;  
end;
showmessage(MyTV.Columns[0].Caption);//列标题访问
showmessage(MyTV.Columns[0].DataBinding.FieldName);//列字段名访问
MyTV.Columns[0].SortIndex := 0;
MyTV.Columns[0].SortOrder := soAscending; //列升序排序
MyTV.Columns[0].SortIndex := -1;
MyTV.Columns[0].SortOrder := soNone; //取消列排序
MyTV.DataController.Search.Locate(MyTV.GetColumnByFieldName(FieldName).Index, 查找值);// 列值搜索
MyTV.DataController.FocusedRowIndex := MyTV.DataController.FocusedRowIndex - 1;//记录回翻,即Prior;
DBView.DataController.FocusedRowIndex := DBView.DataController.FocusedRowIndex + 1; //记录后翻,即Next;
Aa:=MyTV.datacontroller.values[1,1] ;// 访问第二行第二列的值
MyTV.Columns[0].DataBinding.ValueTypeClass := TcxStringValueType;//设置列字段类型,
其他如整型[TcxIntegerValueType],浮点型[TcxFloatValueType];

//设置列风格:
MyFirstColumnStyle := TcxStyle.Create(Self);
MyFirstColumnStyle.Color := clAqua;
MyFirstColumnStyle.TextColor := clBlue;
MyTV.Columns[1].Styles.Content := MyFirstColumnStyle;

//设置列下拉框选择列表及类型
var
   A:TDataSource:
   B:TcxlookupcomboboxProperties;
       begin
   A:=TDataSource.create(self);
   B:=tcxlookupcomboboxproperties.create(self);
   A.Dataset:=Dic_ry_xb;//此处指定数据源。
   B.listdource:=A;//此处指明字段的listsource属性。
   B.keyfieldnames:='a';    //此处指明字段的关键字段
   B.listfieldnames:='b';   //此处指明字段的返回值。
   B.listcolumns.items[0].caption:='x’;  //此处默认是会建立一个字段,但是显示的表头是name,所以此处让它显示为自己想要的中午显示。
   MYTVc1_sex_code.Properties:=B;  //此处指明是那个字段。
 end;

五、 设置列外观
MyTV.OptionsView.ColumnAutoWidth := true //列自动宽度
MyTV.OptionsView.CellAutoHeight := true //单元自动高度
MyTV.OptionsView.Footer := true //表格合计行显示
MyTV.OptionsView.Header := true // 表格头显示
MyTV.OptionsView.Indicator := true  //显示指示条
MyTV.OptionsView.GroupByBox:=true  //显示分组框
MyTV.Preview := True //显示预览区

六、 设置表格样式
  var MyStyleSheet:TcxGridTableViewStyleSheet;
    MyStyle :TcxStyle;
begin
   MyStyleSheet := TcxGridTableViewStyleSheet.Create();
   MyStyle := TcxStyle.Create(self);
   MyStyle.Color := clBlack;
   MyStyle.TextColor := clWrite;
   MyTV.Styles.Background := MyStyle; //设置背景样式
   MyStyleSheet.AddStyles(MyStyle);//分配样式
   cxStyleRepository.CreateStyleSheet(MyStyleSheet);
   MyTV.Styles.StyleSheet := cxStyleRepository; //分配样式
End;
七、 设置Preview列
  前提条件是设置footer=true;
  MyTV.Preview.column := MyTVField1;//设置预览列
  MyTV.Preview.MaxLineCount := 4;//设置预览列最大显示行数
  MyTV.Preview.LeftIndent :=150; //显示左缩进
MyTV.Preview.RightIndent :=150;//显示右缩进
八、 Footer设置
  Var ASummary: TcxDataSummary;
     MyFooterItems :TcxDataFooterSummaryItems;
  Acolumn :TcxGridDBColumn;
  ASummary := MyTV.DataController.Summary;  //提取Footer;
  MyFooterItems := ASummary.FooterSummaryItems; //提取FooterItems;
 //增加FooterItems
  With TcxGridDBTaleSummaryItem(MyFooterItems.add) do
Begin
try
  Try
Beginupdate;
Column := TcxGridDBColumn(MyTV.VisibleColumns[0]; //Footer显示列位置
AColumn := TcxGridDBColumn(MyTV.VisibleColumns[0];
If assigned(AColumn) then
  FieldName := AColumn.dataBinding.FieldName; //Footer计算字段
Kind := TcxSummaryKind(skSum); 
 //skNone=无.skSum=合计;skMax=取最大值,
//skCount=//记录数,skAverage=平均数
  Finally
    Endupdate;
  End;
Except
  Showmessage(‘error’);
MyFooterItems.Items[MyFooterItems.Count-1].Free;//报错释放刚加入的
End;
End;
//删除FooterItems
MyFooterItems := TcxGridDBTableSummaryItem(MyFooterItems[0]);
If MyFooterItems.FieldByName<>’’ then
For i:= 0 to MyTV.VisibleColumnCount -1 do
Begin
  AColumn := TcxGridDBColumn(MyTV.VisibleColumns[i]);
  If AColumn.DataBinding.FieldName = MyFooterItems.FieldName then
    Break;
 End;
If Assigned(MyFooterItems.Column) then
  MyFooterItems.Items[0].Free;
九、 建Band
Var MyBand : TcxGridBand;
MyBandViewInfo: TcxGridbandViewInfo;
MyBand := MyTV.Bands.Add;
MyBand.Caption : =’新建带’;
MyBandViewInfo:= MyTV.ViewInfo.HeaderViewInfo.BandsViewInfo[MyBand.visibleIndex];
MyTV.Controller.LeftPos := MyBandViewInfo.Bounds.right;
十、 主从表明细嵌套关联设置
  MyTV.DetailKeyFieldNames := mastered; //主表关键列
  MyTV.KeyFieldNames := ID; //子表对应关键列
  MasterKeyFieldNames := ID;//子表自己的关键列
  子表ADOQUERY的indexFieldNames := mastered;
十一、组设置
  MyTV.DataController.Groups.FullExpand;//组展开
MyTV.DataController.Groups.Collapse;//组收缩
十二、记录操作
MyTV.Datacontroller.Append;//增加记录
MyTV.Datacontroller.Insert;//插入记录
MyTV.Datacontroller.Values[0.1]:=’a’;//单元格赋值
MyTV.Datacontroller.Cancel;//取消修改
MyTV.Datacontroller.Post;//提交保存
MyTV.Datacontroller.DeleteFocused;//删除当前记录
    MyTV.Controller.Controller.FocusedRow.IsFirst ;//是否第一行 
MyTV.Controller.Controller.FocusedRow.IsLast  ;//是否最后行
MyTV.DataController.Options.FocusTopRowAfterSorting :=True;//排序后指向第一行
MyTV.ViewInfo.VisibleRecordCount ;可见行数

cxgrid属性说明,每次用的时候费时费力查找。的更多相关文章

  1. 转 cxgrid属性说明

    TCXGRID控件:属性:ActiveLevel: 当前层BorderStyle: 窗口风格Color: 颜色FocusedView: 当前View;Font: 字体LevelTabs: 类似Page ...

  2. Java你不知道的那些事儿—Java隐藏特性(上)

    每种语言都很强大,不管你是像我一样的初学者还是有过N年项目经验的大神,总会有你不知道的东西.就其语言本身而言,比如Java,也许你用Java开发了好几年,对其可以说是烂熟于心,但你能保证Java所有的 ...

  3. Java你不知道的那些事儿—Java隐藏特性

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3460373.html 每 种语言都很强大,不管你是像我一样的初学者还是有过N年项目经验的大神,总会有你不知道的 ...

  4. QTP自传之对象

    对象在手,测试我有 大家别误会,这里说的对象可不是值指男女朋友,而是对被测控件的识别.经过昨天的录制,大家一定很奇怪为什么我可以做到精确的回放操作,这都要归功于对象,下面就隆重的介绍我在对象识别方面的 ...

  5. centos7 部署dns服务器

    =============================================== 2017/12/6_第2次修改                       ccb_warlock 20 ...

  6. python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解

     1.前言 Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和心得记录下来,也为正在为了该问题 ...

  7. 自由缩放属性resize

    为了增强用户体验,CSS3增加了很多新的属性,其中resize就是一个重要的属性,它允许用户通过拖动的方式来修改元素的尺寸来改变元素的大小.到目前为止,可以使用overflow属性的任何容器元素. 在 ...

  8. WPF入门教程系列十二——依赖属性(二)

    二. 依赖属性的优先级 由于WPF 允许我们可以在多个地方设置依赖属性的值,所以我们就必须要用一个标准来保证值的优先级别.比如下面的例子中,我们在三个地方设置了按钮的背景颜色,那么哪一个设置才会是最终 ...

  9. 【Swift学习】Swift编程之旅---属性(十四)

    属性关联特定类.结构或枚举的值,存储属性将存储常量和变量作为实例的一部分,计算属性用于计算一个值,而不进行存储.计算属性可以用于类.结构体和枚举里,存储属性只能用于类和结构体.存储属性和计算属性通常用 ...

随机推荐

  1. xamarin android 汉字转拼音

    使用微软的 ChnCharInfo.dll,这个库不仅能在 windows 下完美运行,竟单独在android下也可以完美运行,直接引用即可.当然是使用 visual studio 开发安卓啦,具体用 ...

  2. innobackupex一些常用备份选项

    指定数据库备份[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password ...

  3. PHP数组和XML相互转换的函数

    //数组转xml function ArrToXml($arr) { if(!is_array($arr) || count($arr) == 0) return ''; $xml = "& ...

  4. python 数字以及字符串(方法总结,有的可能理解错误)

    数字类型(int): 在python 2中,数字类型可以分为整形,长整形,浮点型,以及复数.在python3中都是整形和长整形都称之为整形,且python3中没有限制. 1.int方法使用,用于转换字 ...

  5. MPU9250九轴陀螺仪--连接MPU9250

    树莓派连接MPU9250九轴加速度传感器1,配线方法 树莓派侧 MPU9250侧 3.3V VCC (SDA)GPIO2 SDA (SCL)GPIO3 SCL GND GND 2,I2C有效在树莓派里 ...

  6. c++ map 注意事项

    1.  往map里面插入元素: 下标方式[]:    map[key] = value; 调用insert:       map.insert(make_pair(key, value)); 下标方式 ...

  7. docker18.09.5 Dockerfile文件编写

    Dockerfile命令详解(超全版本)  https://www.cnblogs.com/dazhoushuoceshi/p/7066041.html 案例1 dockerfile文件内容: FRO ...

  8. dubbo 用来做什么

    1.各个独立app之间的通信问题怎么解决? 2.怎么做到统一调度.协调处理. 3.如果计费模块是并发最大的模块,但是其他模块并发不是很大.则需要对计费进行负载均衡,怎么实现?

  9. OPPO R6007在哪里打开usb调试模式的完美流程

    当我们使用Pc接通安卓手机的时候,如果手机没有开启USB开发者调试模式,Pc则无法成功读到我们的手机,遇到此种情况我们需要想方设法将手机的USB开发者调试模式打开,以下内容我们讲解OPPO R6007 ...

  10. [UE4]Grab抓取

    一.关键函数:AttachToCompoent,将要抓取的物品附加到角色手上,让物品跟随手移动,开起来就像是抓取在手里了. 二.取消模拟物理.在开启模拟物理的情况下,AttachToCompoent是 ...