zoukankan      html  css  js  c++  java
  • cxgrid属性说明,每次用的时候费时费力查找。

    由层得到数据表名:

    procedure TFB_PatientWaiting.cxgrdbtblvwGrid1DBTableView_MyPatienWaitingDblClick(
      Sender: TObject);
    var tmp_ifGHD : Boolean;
    MyTV: TcxGridDBTableView;
    begin
      tmp_ifGHD := False;
      if cxgrd_Patient.ActiveLevel.Index = 0 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 ;可见行数

  • 相关阅读:
    CDH 2、Cloudera Manager的安装
    204 01 Android 零基础入门 03 Java常用工具类 04 Java集合 04 Map集合 01 Map概述
    203 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 07 删除宠物猫信息数据(引入泛型知识点)
    202 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 06 查找宠物猫信息数据
    201 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 05 添加重复的宠物猫信息数据
    200 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 04 添加和显式宠物猫信息
    199 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 03 宠物猫信息管理概述
    198 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 02 案例:在集合中插入字符串
    197 01 Android 零基础入门 03 Java常用工具类 04 Java集合 03 Set集合 01 Set概述
    196 01 Android 零基础入门 03 Java常用工具类 04 Java集合 02 List集合 05 案例:公告的删除和修改
  • 原文地址:https://www.cnblogs.com/usegear/p/5570799.html
Copyright © 2011-2022 走看看