1、场景:FastReport.NET V2017版本的DateTime可能是非空的,导致后台通过DataTable传递空值的DateTime列,到FastReport缺显示“0001-01-01 00:00:00”这类的结果。2、思路: 1)使用FastReport的Year、IIf函数结合,当后台返回空值时,界面也显示空值 2)后台返回处理过的string字段,供FastReport绑定
工具/原料
FastReport.NET V2017
方法/步骤
1
【方式一】FastReport的Year函数,判断当前日期的年是否小于指定年份,比如小于1900,即当做无效年份处理: Year([数据源.日期字段]) < 1900
2
【方式一】FastReport的FormatDateTime函数,格式化日期为指定格式: FormatDateTime([数据源.日期字段],'yyyy-MM-dd HH:mm:ss')
3
【方式一】结合IIf、Year、FormatDateTime格式化日期字段的完成格式如下: [IIf((Year([数据源.日期字段]) < 1900),'',FormatDateTime([数据源.日期字段],'yyyy-MM-dd HH:mm:ss'))]
4
【方式二】后台实体字段日期转换为string类型,如果日期为空值,就给string赋值为空,如果日期是有效日期,就给日期格式化显示的格式
5
【方式二】修改FastReport模板的SQL语句,将日期字段类型改为字符串类型,或者直接修改FastReport的数据源字段类型为字符串
6
【方式二】在绑定字段的时候,按照字符串类型绑定,不需要格式化,因为后台已经格式化好了
7
运行效果,如果日期为空,打印显示就是空白的。如果日期值有效,就显示对应日期值
注意事项
1
上述格式中的各种中括号、小括号、逗号、双引号都不要缺少
2
只需要替换上述格式中的 “数据源.日期字段” 为具体值
下一篇:儿媳妇不愿生孩子怎么办?