CxGrid使用方法.doc
《CxGrid使用方法.doc》由会员分享,可在线阅读,更多相关《CxGrid使用方法.doc(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、.cxGrid的使用方法cxGrid功能强大,适合做企业级的复杂查询。非常方便。但是对其用法介绍的并不多,在此总结他人的使用经验和自己的一点小经验,供大家参考。()动态设置显示格式procedure SetDisplayFormat(ACtrlData: TClientDataSet; TbView: TcxGridDBTableView);var i: integer;begin if ACtrlData.RecordCount 0 then begin TNumericField(cxDBViewMaster.DataController.DataSet.Fieldsi).DisplayF
2、ormat := #,#0.000; Continue; end; if Pos(QUANTITY, UpperCase(cxDBViewMaster.DataController.DataSet.Fieldsi.FieldName) 0 then begin TNumericField(cxDBViewMaster.DataController.DataSet.Fieldsi).DisplayFormat := #,#0.000; Continue; end; if Pos(MONEY, UpperCase(cxDBViewMaster.DataController.DataSet.Fiel
3、dsi.FieldName) 0 then begin TNumericField(cxDBViewMaster.DataController.DataSet.Fieldsi).DisplayFormat := #,#0.00; Continue; end; end; end;end;最近在学习使用cxGrid,安装的版本是ExpressQuantumGrid Suite v5.10 我发现这个控件功能虽然强大,但是非常难用。 现在我手头就有几个问题还没解决: 1)主从模式下导出Excel中文会产生乱码,而且从表内容没有导出。 我不知道是不是因为我的字段名包括单引号的原因。 导出代码:Expo
4、rtGrid4ToExcel(FileName, cxGrid); 2)主从模式下通过按钮对从表添加/删除行,代码怎幺写。 附:单表添加/删除行的代码 procedure TFormAccount.cxButtonNewClick(Sender: TObject); begin Self.tvAccount.DataController.Append; Self.tvAccount.Columns0.Focused := True; cxGrid.SetFocus; end; procedure TFormAccount.cxButtonDeleteClick(Sender: TObject)
5、; begin if Self.tvAccount.DataController.RowCount = 0 then Exit; if Application.MessageBox(确认删除当前记录?, 确认删除, MB_YesNo + MB_IconQuestion) = IDNO then Exit; Self.tvAccount.DataController.DeleteFocused; end; 3)动态创建主从结构出错(Compiler没错,运行时出现系统错误0000000018), 我使用了二个ADOStoreProcedure作主从表 代码如下: var Level: TcxGr
6、idLevel; GridView: TcxGridDBTableView; begin Level := cxGrid1.Levels0.Add; GridView := TcxGridDBTableView(cxGrid1.CreateView(TcxGridDBTableView); GridView.DataController.DataSource := Self.dsDetail; GridView.DataController.KeyFieldNames := PurchOrderID;POLineNbr;PromiseDate;ReceiverDate; GridView.Da
7、taController.MasterKeyFieldNames := VendorID; GridView.DataController.DetailKeyFieldNames := VendorID; GridView.DataController.DataModeController.SmartRefresh := True; GridView.OptionsCustomize.ColumnHiding := True; GridView.OptionsCustomize.ColumnsQuickCustomization := True; GridView.OptionsData.De
8、leting := False; GridView.OptionsData.Inserting := False; GridView.OptionsView.Indicator := True; Level.GridView := GridView; GridView := TcxGridDBTableView(cxGrid1.Levels0.GridView); GridView.DataController.KeyFieldNames := VendorID; GridView.OptionsView.GroupByBox := False; /显示主表内容 tvResult.BeginU
9、pdate; tvResult.ClearItems; tvResult.DataController.CreateAllItems; tvResult.EndUpdate; /显示明细表内容 GridView := TcxGridDBTableView(cxGrid1.Levels0.Items0.GridView); GridView.BeginUpdate; GridView.ClearItems; GridView.DataController.CreateAllItems; GridView.DataController.Refresh; GridView.EndUpdate; en
10、d; 此楼回复Re: 小技巧:用代码展开/收缩主从结构 Self.tvDepartment.ViewData.Expand(True); Self.tvDepartment.ViewData.Collaspe(True); 注:tvDepartment为主表对应的TableView此楼回复Re: 你说的这几个问题我也遇到过。 第一个问题是编码的问题,修改了其中关于编码的函数,OK. 第二个问题在cxGrid的社区可以找到解答,但从表必须满足某种条件,例如关键字排序。 第三个问题的解决办法,你可以尝试在动态创建的代码前后加上: grid.beginupdate; . grid.endupdate
11、 来解决。此楼回复Re: 没用过 不要经常使用三方控件此楼回复Re: to tttk(网络芝麻): 第一个问题:如何修改啊,贴出代码 第二个问题:没搜到啊 第三个问题:试一下再说此楼回复Re: 不要经常使用三方控件 = 我感觉不用cxGrid的话,没必要用Delphi了,呵呵此楼回复Re: 楼上这话是不是有点问题?DELPHI能做得事情很多很多,难道非要用CXGRID?CXGRID不是用DELPHI做出来得?此楼回复Re: 没用过.此楼回复Re: 回复人: zxkid(没有人会像我这样.) ( ) 信誉:101 2006-01-06 16:58:00 得分: 0 不要经常使用三方控件 = 我感
12、觉不用cxGrid的话,没必要用Delphi了,呵呵 * 楼主乃天人也!此楼回复Re: 呵呵此楼回复Re: cxGrid比较不错,我也使用过导出到Excel,没有遇到你说的乱码 主从表也没有问题的,其实跟单表操作还不是一回事此楼回复Re: up此楼回复Re: 没用过cxGrid,以后考虑此楼回复Re: 楼主乃天人也! = Delphi下有cxGrid, .NET下有XtraGrid, 它们都是同一公司出的。 迟早都会转到.NET,所以。此楼回复Re: 路过此楼回复Re: 用过,挺好,只会使用最简单的。此楼回复Re: 发一个邮件给我,我把解决乱码后的源代码发一分给你,放到你的项目文件夹下即可。
13、此楼回复Re: 第二个问题:https:/ 谢谢tttk(网络芝麻) 第二个问题:我现在直接让用户用导航条的删除/添加按钮了。根据你给的网址上的内容我知道大概该怎幺写了,有空再试试。 第一个问题:不光是乱码问题,还有从表内容没导出的问题。 只有一个表的话是不会出现乱码的。 第三个问题:还没来得及试。此楼回复Re: 第一个问题:看了一下帮助,原来cxGrid不支持主从表的导出,只能导出主表(顶层表)的内容。晕此楼回复Re: 贴一些小技巧,希望与各位使用cxGrid的朋友共同交流 各位有什幺好个技巧也可以贴出来: 技巧二:在内置右键菜单的后面增加菜单项 首先应在Form上加一个cxGridPopu
14、pMenu控件 以启用右键菜单 UseBuildInPopupMenus设为True procedure TFormItemList.FormCreate(Sender: TObject); var AMenu: TComponent; FMenuItem, FSubMenuItem: TMenuItem; begin AMenu := nil; if cxGridPopupMenu.BuiltInPopupMenus.Count = 0 then Exit; AMenu := cxGridPopupMenu.BuiltInPopupMenus0.PopupMenu; /第一个内置右键菜单(表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cxgrid 使用方法
限制150内