• 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 ;可见行数
  • 相关阅读:
    自定义序列化类注意事项
    HashMap中的modCount
    transient
    30张图带你彻底理解红黑树(转)
    hashcode和hash算法
    线程池
    VS2015 NuGet错误:远程证书无效
    解决前台JS弹框Alert点击确定页面会刷新
    Regex中Replace方法的简单实用
    .ashx 一般处理程序
  • 原文地址:https://www.cnblogs.com/karkash/p/15714781.html
Copyright © 2020-2023  润新知