知识大全 分享一下ExpressQuantumGrid4的cxGrid的一些使用方法和经验

Posted

篇首语:黄沙百战穿金甲,不破楼兰终不还。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 分享一下ExpressQuantumGrid4的cxGrid的一些使用方法和经验相关的知识,希望对你有一定的参考价值。

分享一下ExpressQuantumGrid4的cxGrid的一些使用方法和经验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

使用cxGrid有一些时间了 在这里总结一下使用cxGrid的一些方法 希望给刚开始接触cxGrid的人一些帮助

   简单介绍 cxGrid右下方的cxGrid Level 是表示Grid表的层 cxGrid可以有多层 这相当于集合了PageControl的功能 而cxGrid Level 右边的cxGrid DBTableView 相当于DBGrid一样 右击cxGrid 可以添加cxGrid Level 右击cxGrid Level 可以选择Create View Add level 或者Delete Level Add level可以增加子Level Create View里面可以选择很多不同总类的View 其中

   )DB Table可以和数据库连接的View 更一般的DBGrid类似 它比DBGrid多了比如鼠标中键可以用 可以统计 查询 等等功能

   )DB Banded Table 则可以实现比如

| 说明 | 说明 | | 字段 | 字段 | 字段 | 字段 |

等类似的功能     )DB Card View 则提供了卡片方式的显示数据的功能 这个用在比如人事档案管理比较不错

    )其它不一一赘述    一些使用方法

   )有图片和MEMO的例子   拖入一个cxGrid Table DataSource

  Table 的DatabaseName设为DBDEMOS TableName设为biolife db Active设为True;

  DataSource 的DataSet设为Table

  cxGrid DBTableView 的DataController中的DataSource 设为DataSource ;

  右击cxGrid DBTableView 选择Create All Columns

  双击cxGrid 在弹出的窗口中找到 cxGrid DBTableView Notes和      cxGrid DBTableView Graphic 将它们的Properties属性设为BlobEdit

  运行看看结果

  再将cxGrid DBTableView Graphic的Properties属性设为Image 再将Properties下的Stretch设为True 将cxGrid DBTableView >optionsview >CellAutoHeight 设为True 看看结果

   )如何让 Drag a column here to group by that column 不显示  解决 点击cxGrid 上的cxGrid DBTableView       在cxGrid DBTableView >optionsview >groupbybox:=false即可   注 OptionsView里面有很多属性可能经常要用 比如 ColumnAutoWith Navigator等等 慢慢琢磨吧:)   )GroupPanel上面的英文[Drag a column header to group by that column]怎么可以改成中文?  解决 最简单的方法是 TcxGridTableView OnCustomDrawPartBackground 也可用OnCustomDrawGroupCell

  procedure TForm cxGrid DBTableView CustomDrawPartBackground(Sender: TcxGridTableView; ACanvas: TcxCanvas;AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean);  begin   AViewInfo Text:= 动态设置 GroupBox 的显示内容 ;   ACanvas FillRect(AViewInfo Bounds);  end;

   )如何实现如下功能         +财务部        +原材料仓库        +成品库        +冲压车间        +软件开发部   这个是部门的名称 点击加号就可以将本部门的人员情况显示出来    解决 其实这是一个主从表关系        填好主表的keyfieldnames       填好从表的keyfieldnames       填好从表的 detaikeyfieldNames与masterkeyfieldnames       : 从表的数据源一定要按与主表关联的字段排序   注 其它地方设置了主从表结构那样就显示不出来 比如设置了从表的Table或者Query的mastersource和asterfield就会不能显示数据!如果是两个cxGrid的主从关系 这样设置就很OK了

   )统计功能  解决 cxGrid DBTableView >optionsview >Footer 设为True     cxGrid DBTableView >DataController >Summary设置FooterSummaryItems即可

   )类似PageControl显示  解决 增加一个Level 将cxGrid >RootLevelOptions >DetailTabsPosition设为dtpTop 然后相应的设置cxGrid Level 和cxGrid Level 的Caption值

   )如何设定左边几列 不能滚动?  解决 使用DB Banded Table才可以实现      在cxGrid DBBandedTableView里建立Band Band      Band 的Fixed=tfLeft     Band 的Fixed=tfnone     设置要锁定的字段的BandIndex= 其它为 就OK了    )怎样实现如EXCEL一样的 当前格=G +G +G 这样的功能  解决 举一个简单的例子   label Caption := cxGrid DBTableView DataController Values[ ]                   + cxGrid DBTableView DataController Values[ ]                    + cxGrid DBTableView DataController Values[ ];  所以不同cxGrid DBTableView中的数据都可以给当前格 这样就做到了EXCEL中的当前格=G +G +G 类似的功能    )鼠标右击cxGrid DBBandedTableView 菜单里的Edit Layout什么用 怎么使用?  解决 可以拖动字段 并列的可以拖成有层次感(一层层) 拖动时会显示箭头的 就是说可以拖一个字段放到最上面 就可以使记录按此字段进行分组 点击其中一个字段 上面还会出现一个上升或者下降的小三角形 这个小三角形的作用是在运行阶段 数据就会按照这个字段上升或者下降排序 还有一个Set as Default的作用是保持当前TableView的参数 下此产生新的TableView的时候就会可以和上次保持的参数一样

   )怎样将cxGrid里的数据导入到EXCEL HTML XML和TEXT  解决 这个问题在用了cxGrid以后变得异常简单    uses    cxExportGrid Link;

   procedure TForm Button Click(Sender: TObject);   begin    ExportGrid ToEXCEL( d:\\wang xsl cxGrid True True);    ExportGrid ToTEXT( d:\\wang txt cxGrid True True);    ExportGrid ToXML( d:\\wang xml cxGrid True True);    ExportGrid ToHTML( d:\\wang cxGrid True True);   end;

   )如何使满足条件的数据显示不同的颜色?  解决    var    AYellowStyle: TcxStyle;

   procedure TForm FormCreate(Sender: TObject);   begin    //行颜色    AYellowStyle := TcxStyle Create(Self);    AYellowStyle Color := $ FFFF;    AYellowStyle TextColor := clMaroon;   end;

   procedure TForm cxGrid DBBandedTableView StylesGetContentStyle(    Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;    Item: TcxCustomGridTableItem; out AStyle: TcxStyle);   begin    if ARecord Values[cxGrid DBBandedTableView Lengthcm Index] < then     AStyle := AYellowStyle;   end;

  这里cxGrid DBBandedTableView Lengthcm Index小于 时就显示黄色

  问题 )如何从外边的TXT文件导入到cxGrid?  解决  procedure CustomizeColumns;       procedure LoadData;

   procedure TForm CustomizeColumns;   const    cDistance = ;    cRadius = ;    cPeriod = ;    cPstring = ;   var    I: Integer;   begin    DecimalSeparator := ;    with cxGrid TableView do    for I := to ColumnCount do     if I in [cDistance cRadius] then      Columns[I] DataBinding ValueTypeClass := TcxIntegerValueType      // 列为Integer     else      if I in [cPstring cPeriod] then      Columns[I] DataBinding ValueTypeClass := TcxStringValueType      // 列为String      else       Columns[I] DataBinding ValueTypeClass := TcxFloatValueType;       //其他为Float   end;

   procedure TForm LoadData;   const    AFileName = 资产负债表 txt ;    AHeaderLineCount = ;

   var    ARecords AValues: TStringList;    I: Integer;

    procedure InitRecord(const Str: string);    var     J: Integer;     V: Variant;    begin     AValues CommaText := Str;     for J := to AValues Count do      if AValues Strings[J] <> then     begin     V := AValues Strings[J];     if not VarIsNull(V) then      cxGrid TableView DataController Values[I J] := V;     end;    end;

   begin    if not FileExists(AFileName) then     raise Exception Create( Data file not found );

    ARecords := TStringList Create;    AValues := TStringList Create;

    with ARecords do    try     LoadFromFile(AFileName);     cxGrid TableView BeginUpdate;     cxGrid TableView DataController RecordCount := Count AHeaderLineCount;     for I := to Count (AHeaderLineCount + ) do      InitRecord(Strings[I + AHeaderLineCount]);    finally     cxGrid TableView EndUpdate;     ARecords Free;     AValues Free;    end;   end;

   procedure TForm FormCreate(Sender: TObject);   begin    CustomizeColumns;    LoadData_Zcfz;   end;

  其中 资产负债表 txt 中的数据如下

  资  产  行次  年初数  期末数  负债及所有者权益  行次  年初数  期末数                 流动资产            流动负债          

   )如何改变列的颜色?   var    AFirstColumnStyle: TcxStyle;

    procedure TForm FormCreate(Sender: TObject);    begin     //列颜色     AFirstColumnStyle := TcxStyle Create(Self);     AFirstColumnStyle Color := clAqua;     AFirstColumnStyle TextColor := clBlue;     cxGrid TableView Columns[ ] Styles Content := AFirstColumnStyle;    end;

   )Set as default的用法?  解决 Set as default的用法是为了解决设置参数的方便而做的 比如 连好数据库以后 更改cxGrid DBBandedTableView >OptionsCustomize >ColumnFiltering 设为False (这个设置可以将字段名的下拉单给去掉)更改cxGrid DBBandedTableView >OptionsView >Navigator 设置为True 然后右击cxGrid DBBandedTableView 在弹出的菜单栏里面点击Set as default OK 下次你再产生一个新的cxGrid DBBandedTableView 时这些设置和刚才的一样了 如果需要设置的参数很多的时候 这个Set as default很有用!

   )怎样使鼠标移动时 相应的单元格里的文字变色?  解决    var    FTrackItem: TcxCustomGridTableItem;    FTrackRec: TcxCustomGridRecord;

    procedure TForm cxGrid DBTableView CustomDrawCell(    Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;   AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);  begin   if (AViewInfo GridRecord = FTrackRec) and (AViewInfo Item = FTrackItem) then   begin    ACanvas Font Color := clred; //红色字体    ACanvas Font Style := [fsUnderline];//带下划线   end;  end;

  procedure TForm cxGrid DBTableView MouseMove(Sender: TObject;   Shift: TShiftState; X Y: Integer);  var   AHitTest: TcxCustomGridHitTest;   ATrackItem: TcxCustomGridTableItem;   ATrackRec: TcxCustomGridRecord;  begin   ATrackItem := FTrackItem;   ATrackRec := FTrackRec;

   AHitTest := (Sender as TcxGridSite) GridView ViewInfo GetHitTest(X Y);   if AHitTest is TcxGridRecordCellHitTest then   begin    FTrackItem := TcxGridRecordCellHitTest(AHitTest) Item;    FTrackRec := TcxGridRecordCellHitTest(AHitTest) GridRecord;   end   else   begin    FTrackItem := nil;    FTrackRec := nil;   end;

   if (ATrackItem <> FTrackItem) or (ATrackRec <> FTrackRec) then   begin    // Invalidate old cell    if ATrackRec <> nil then     ATrackRec Invalidate(ATrackItem);    // Invalidate new cell    if FTrackRec <> nil then     FTrackRec Invalidate(FTrackItem);   end;  end;

   )怎样设计多表头的cxGrid?  解决 cxGrid可以解决如下的表头

| 说明 | 说明 | | 字段 | 字段 | 字段 | 字段 ||  字段    |  字段    ||  字段    | 字段 | 字段 |

  实现这个很简单 你可以直接在上面拖动字段名 拖动时会显示箭头的 放入你想显示的位置就OK了 或者在鼠标右击cxGrid DBBandedTableView 菜单里的Edit Layout里也可以拖放

  但是cxGrid不能实现如下的多表头形式

| 说明 | 说明 | | 说明 | 说明 | 说明 | 说明 || 字段 | 字段 || 字段 | 字段 | 字段 |

  不知道有谁能实现这样的多表头?

   )在主从表结构时 当点开 + 时怎样将焦点聚在相应主表的记录上?  解决    var     HitTest: TcxCustomGridHitTest;

   procedure TColumnsShareDemoMainForm tvProjectsMouseDown(Sender: TObject;    Button: TMouseButton; Shift: TShiftState; X Y: Integer);   begin    // Note that the Sender parameter is a Site    HitTest := (Sender as TcxGridSite) GridView ViewInfo GetHitTest(X Y);    // The point belongs to the [+]/[ ] button area    if HitTest is TcxGridExpandButtonHitTest then     // Move focus to the record     TcxGridExpandButtonHitTest(HitTest) GridRecord Focused := True;    end;

cha138/Article/program/Delphi/201311/8449

相关参考

知识大全 谁百度网盘电影资源多, 分享一下呗 谢谢

谁百度网盘电影资源多,分享一下呗谢谢我们经常喜欢帮助别人你要的资源,我有应该可以帮你搞定的。你想要可以叫我。前提你得采纳我,给百度网盘分享一下呗亲,可以去百度网盘贴吧找找,那里经常有分享的哦,自己转存

知识大全 麻烦分享一下呗!谢啦

请问谁有今年的初级会计考试的课件云盘!麻烦分享一下呗!谢啦!您好,一点通网校回答您的问题:报班,选择网上教学方式,安排灵活,充分利用碎片时间学习,不仅能听课而且能全程辅导答疑,现在面授班很多,良莠不齐

知识大全 谁能分享一下初夜时的感觉

谁能分享一下初夜时的感觉!就一个字,痛谁能分享一下做爱的感觉你是男人吗?我是男人,给你说下感觉吧,进入的时候鸡鸡会被紧紧夹住,里面又软又热又滑,舒服的会本能地往里进入,顶的过程中因为龟沟的摩擦产生强烈

知识大全 谁可以跟我分享一下,谢谢

急求生活大爆炸第一季到第十季百度云资源!谁可以跟我分享一下,谢谢!您好,《生活大爆炸1-10全季》中英双字幕百度云资源在下方,提取时输入正确密码即可。链接::pan.baidu./s/1pLJpajh

分享一下我的去疤痕方法

在我们的日常生活中,身体受了外伤流血之后,伤口表面会形成一些疤痕。这些疤痕如果出现在身体显露的位置,丑陋的痕迹就会影响我们的整体外貌。在现代科技如此发达的今天,已经有很多祛除疤痕的方法,那么常用的去疤

知识大全 人生感悟,人生励志,经典语句,不要太长。有的分享一下。

人生感悟,人生励志,经典语句,不要太长。有的分享一下。学会选择,懂得放弃,人生才能如鱼得水。选择是一种量力而行的睿智与远见,放弃是一种顾全大局的果断和胆识。人生的真谛,便在取舍之间。只有学会选择,才能

知识大全 有哪位有中考历史政治开放性题答题技巧,分享一下

有哪位有中考历史政治开放性题答题技巧,分享一下一、选择题方面:1、注意题干给与的资讯。如:时间、事件、人物、历史线索、政治观点等。针对这些资讯能很好的锁定选择项;2、选择题的每个选项必须都要看完,不能

知识大全 大学生们,你们高中学习的动力是什么?能分享一下吗?

大学生们,你们高中学习的动力是什么?能分享一下吗?我是一个从小学到大学都学习中上的学生,当然不算什么“大神”,但是保持学习动力的经验还是有一些的。年级低一点时,学习的动力就是做完作业,分数考好,家里人

知识大全 谁有企业名字大全集锦分享一下

现在国家对鼓励大学生创新创业加大了帮助力度,所以很多刚毕业的大学生都想要自主创业,自主创业确实是一件很考验人勇气与实力的事情,有着很大的风险、助力,需要能够抗压,不然将会不堪重负,所以各位创业者要慎重

知识大全 谁有SEM百度竞价的资料分享一下,或者有工作经验的私聊Q

谁有SEM百度竞价的资料分享一下,或者有工作经验的私聊Q!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一