通过对Developer Express Inc cxGrid系列组件基类的修改,使我收获很多。
基本可以说能够完全掌握Grid类型控件、报表类型控件的编写原理。
通过上面的Demo主要目的是想了解一下您认为还有什么更好的建议,希望您能提出来。
这样对我本人也是一种考验,也是一个再次学习的过程。
谢谢!
本次主要做了以下改动:
一、修改了哪些部分,及修改原因和目的
1、在cxGridPopupMenuConsts单元中所做的修改
增加了以下常量:
cxSGridShowColumnFiltering
cxSGridShowNavigator
cxSGridShowGroupRowHide
cxSGridShowGroupRowLabelHide
cxSGridShowGroupColumnHide
cxSGridShowGroupColumnFilterTextHide
cxSGridShowColumnIndent
目的是:增加TcxGridPopupMenu组件的菜单项
2、对CxGrid做了适当的修改
增加了以下属性:
cxGrid1DBTableView1.OptionsCustomize.GroupRowHide 设置是否显示分组行的属性
cxGrid1DBTableView1.OptionsCustomize.GroupRowLabelHide 设置是否显示分组行的(+/-)号属性
cxGrid1DBTableView1.OptionsCustomize.GroupColumnHide 设置是否显示分组字段的属性
cxGrid1DBTableView1.OptionsCustomize.GroupColumnFilterTextHide 设置是否显示分组字段筛选内容的属性
TcxGridDBColumn.IsIndent 设置该字段是否缩排
目的是:对上次的需求做出相应的动作
3、对TcxGridPopupMenu做了适当修改
增加了以下属性:
集合类型的属性:MenuItemsVisible
有如下明细项目:ColumnAscVisible, ColumnDescVisible, ClearSortingVisible, GroupByThisFieldVisible,
ThisGroupItemVisible, GroupByBoxVisible, RemoveColumnVisible, FieldChooserVisible,
FooterVisible, GroupFooterVisible, ColumnFilteringVisible, NavigatorVisible,
GroupRowHideVisible, GroupRowLabelHideVisible, GroupColumnHideVisible,
GroupColumnFilterTextHideVisible, ColumnIndentVisible, BestFitVisible,
BestFitAllColumnsVisible, AlignLeftVisible, AlignRightVisible, AlignCenterVisible
明细项目的中文含义如下:
升序、降序、取消排序、加入分组汇总、取消分组汇总、分组面板、对齐方式、左对齐
右对齐、居中、隐藏、查看隐藏列、最佳列宽、最佳列宽(所有列)、汇总栏分组汇总栏
字段筛选、数据导航条、是否隐藏分组行、是否显示分组行 (+/-) 号、是否隐藏分组字段
是否隐藏分组字段的筛选内容、字段是否缩排
目的是:控制弹出式菜单项是否显示
4、对dxPScxGridLnk做了适当修改
没有增加新的属性,只是做了代码的适当修改,目的是让cxGrid中缩排的字段在打印时也会自动缩排
注:但需要你在客户端程序的UI部分做一些滚动的事情,这样打印时就自动全部缩排了。
5、在TdxGridReportLinkOptionsView 类中所做的修改
增加了以下属性:
GroupRowHide
SortBmpHide
目的是:在报表中增加控制项
1、控制分组行是否打印
2、排序图标是否打印
第二次修改:
11/24 QuantumGrid 会议纪录: (cxGrid二期修改依据)
1.预览画面的设定条件不能和查询界面重复,查询有的预览就不要有了,预览有得查询就不要有
2.小计字段:数字应该右对齐,小计要能支持打印
3.预览标题处打印分组分页条件值,可以和前端选项条件值排在一起,也可以分行打印
一、修改了哪些部分,及修改原因和目的
1、在 dxPScxGridLnk 单元中所做的修改
删除了是"否打印分组栏"的选项.
目的是:这样避免了和cxGrid上"是否打印分组栏"重复
2、对CxGrid做了适当的修改
增加了以下属性:
cxGrid1DBTableView1.OptionsCustomize.ConditionCaptionO 设置打印筛选条件字符串1
cxGrid1DBTableView1.OptionsCustomize.ConditionCaptionT 设置打印筛选条件字符串2
cxGrid1DBTableView1.OptionsCustomize.ConditionCaptionS 设置打印筛选条件字符串3
(注:只有当赋了值之后才会打印出来,不赋值就不会打印,赋空也不会打印)
目的是:对上次的需求做出相应的动作
3、对dxPScxGridLnk 单元做了适当修改
修改了方法:TdxGridTableViewFormatter.DoInitializeGroupFooterItem
目的是:打印汇总统计时,报表上分组汇总的值自动右对齐
4、对cxGridTableView 单元做了适当修改
增加了以下属性:ValueAlignment : Talignment;
目的是:cxGrid上面的汇总ROW上面的值自动右对齐
{注:当然也可以控制左边对齐或居中}
5、在 dxPScxGridLnk 单元中所做的修改
增加了以下类:
TdxGridViewConditionOProducer
TdxGridViewConditionTProducer
TdxGridViewConditionSProducer
目的是:保证在改变需要打印的Level.Caption的时候不会改变 筛选条件字符串
{为什么会改变Level.Caption的打印内容呢?因为我们需要在分组分页的时候在这里打印分组的具体信息}
6、在 dxPSCore 单元中所做的修改
修改了以下属性:
property RenderInf TdxPSReportRenderInfo read GetRenderInfo; 原来是保护属性
现在更改为 Public 属性
目的是:在OnCustomDrawLeveCaption事件中可以获取 什么时候分组,换页之后的起始行和结束行