项目是ACCESS数据库,GridView捆绑数据源是动态变化的,不能在里直接定义列,并声明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语句错误,说为选择列不包含在分组列中,这与其它的函数不同,除聚合函数外。
本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。