您的位置:资讯频道 > 技术文档 > 控件开发基础

GridView控件自动生成列中字符串格式化的处理分析(ACCESS)

来源:博客   作者:atnarcissus   时间:2008-03-26  点击:232 次
项目是ACCESS数据库,GridView捆绑数据源是动态变化的,不能在<columns>里直接定义列,并声明formatstring属性的内容。但显示的数据涉及日期和货币格式,客户要求必须以行业的格式显示(日期:YYYY-MM/货币:¥000,000.0000)。

本来以为很简单的问题,找到列的集合,然后按索引制定该列的formatstring属性就可以了,结果发现根本就是错的。自动生成的列是不在列的集合里的(有待再研究),最起码无法显式设置 。

禁用自动生成列,因为数据源随时变化,不可能在显示层直接直接声明列。只好试着在业务层编程方式添加列,但发现datacolumn是不行的,无法设置需要的属性。

只好回到数据层,想通过遍历后格式化字符的形式把DataView中的数据直接格式化好后再绑定到控件。写了个遍历程序,找了半天没有找到如何格式化成{yyyy-mm}等格式的方法。而且觉得这样数据层太过繁琐,代码不整洁,放弃。

就剩下数据库了,因为用的ACCESS数据库,真的没什么信心。因为它我用的不多,翻遍函数表,找到format函数。

format(expression,'yyyy-mm') format(expression,' ¥##,##0.0000')

问题初步解决。

但发现新问题,我用的是汇总数据,发现sum(format())无效,思索后改为:format(sum(datafiled)),捆绑格式成功,问题解决!

format()函数不会造成group by语句错误,说为选择列不包含在分组列中,这与其它的函数不同,除聚合函数外。