CListUI-列表控件
发布时间:2024.07.19
CListUI控件界面如下:
列表控件可分三部分,最上面一行是表头,表头可以插入很多列;中间部分是表体,里面可以插入很多行数据,这些行可以垂直滚动;最下面一行是表尾,一般是合计行。
通过InsertColumn函数在列表里插入列,如下:
[list InsertColumn:@"销售员" key:@"vkgrp" width:VKGRP_LABEL_WIDTH alignment:NSTextAlignmentCenter sumtype:ListUISumTypeNone];
第一个参数就是列标题,会显示在表头;
第二个参数key用于访问该列使用,一般使用数据库字段名,一个列表里的key不可重复;
第三个参数代表该列的宽度;
第四个参数代表列标题的对齐方式;
第五个参数指定合计类型,只有该列为数值型时才有用,就是把这一列的值合计到表尾时的数据类型,包括数量和金额两种类型。
表尾
通过 GetFooter得到表尾对象:
footer=[list GetFooter];
通过函数AddColumnWithCaption向表尾插入列:
[footer AddColumnWithCaption:@"" from:3 to:3 name:@"menge" textAlign:NSTextAlignmentCenter];
第一个参数是表尾项标题;
第二、三个参数从表头列索引的起始值和结束值,也就是把这两个索引之间的表头项宽度合并成表尾项的宽度,注意,起始索引要紧连着上一个结束索引,否则会有错位。
第四个参数name用于访问该表尾项,不可重复,比如[list SetSumItemText:@"menge" text:@"125"]设置表尾项menge的文本值为125.
第五个参数表示表尾项的文本对齐方式。
数据结构及行分组
表体中每行的数据使用CItemData封装,它其实就是个键值对,键对应于列的key,也就是InsertColumn中的key,值就是显示在每行中的文本;
通过InsertItem向列表中插入一行数据,数据会被自动显示出来。
可以看到,数据可以分组显示,比如按日期,一天的数据分一组。通过GroupBy函数进行分组:
-(void)GroupBy:(NSString*)sKey sort:(BOOL)bAsc
sKey对应InsertColumn中的key,bAsc代表升序还是降序。
可以在如下代理函数中修改分组的显示数据:
-(NSString *)CList:(CListUI *)CList sectionHeaderViewTitleWithDataGroupItem:(CItemDataGroupItem *)data andKey:(NSString *)key section:(NSInteger)section
CItemDataGroupItem 代表一个分组的相关数据。
导出到EXCEL
函数ExportToExcel可以将列表中的数据导出到Excel文件
上一篇:CPhls-配货单列表
下一篇:framework制作要点