月报表 - 日期从 1 号一直显示到月末
在官网未搜到合适的解决方案文章,客服帮忙给解决了,特总结出来给大家分享学习下。
普通交叉表,如果日期有数据就显示,如果没有数据就不显示。通过列扩展方式可以实现按当月日期显示日明细。
正常 sql 数据集显示结果:
横向为项目名称,纵向为日期,交叉为金额。
原先的交叉表列名更换为动态列
原先的列显示为 1 号 2 号等可能不连续,通过扩展方式可以动态扩展
to(1,days(@arg1+“-01”))
按传来的月份,如 2025-03,从 1 号一直显示到月末,可以识别大月小月及闰月。Days 为日期所在月份的总天数。
一位数日期与 mysql2 位日期不匹配需要格式化
显示值表达式:if(value()<10,“0”+value()+“日”,value()+“日”)
因为系统默认日期单数是 1 位,如 1-9,而 mysql 转换后的日期是 01-09,所以需要专门对日期进行补位使 10 号前的日期变为 2 位。日期是 1 位数,补 “0”。
金额根据列名称适配显示
ds1.sum(je,dt==disp(C3))
如果列名与当前数据所在日期列相同,则显示金额,否则为空。
动态扩展后效果
扩展后日期虽然没有值但列正常显示
关键点总结:
1.days 函数用法
2. 日期 1 位补“0”转 2 位
3. 数据列与显示格式列匹配则数值显示,disp 函数使用