U8C服务小锦囊-企业报表-日期动态表设置一、适应常见:在应用iufo报表中,有客户希望可以按所选关键字月份展示该月份的所有的日期,以出具日期动态表。二、解决方案:1、后台增加日历表请在数据库中执行如下脚本(后台插入日历表Calendar)CREATETABLE[dbo].[Calendar]([time_id][int]IDENTITY(1,1)NOTNULLprimarykey,[the_date][datetime]NULL,[the_day][nvarchar](15)NULL,[the_month][nvarchar](15)NULL,[the_year][smallint]NULL,[day_of_month][smallint]NULL,[week_of_year][smallint]NULL,[month_of_year][smallint]NULL,[quarter][nvarchar](2)NULL,[fiscal_period][nvarchar](20)NULL)DECLARE@WeekStringvarchar(12),@dDateSMALLDATETIME,@sMonthvarchar(20),@iYearsmallint,@iDayOfMonthsmallint,@iWeekOfYearsmallint,@iMonthOfYearsmallint,@sQuartervarchar(2),@sSQLvarchar(100),@adddaysintSELECT@adddays=1--日期增量(可以自由设定)SELECT@dDate='01/01/1989'--开始日期WHILE@dDate<'12/31/2030'--结束日期BEGINSELECT@WeekString=DATENAME(dw,@dDate)SELECT@sMonth=DATENAME(mm,@dDate)SELECT@iYear=DATENAME(yy,@dDate)SELECT@iDayOfMonth=DATENAME(dd,@dDate)SELECT@iWeekOfYear=DATENAME(week,@dDate)SELECT@iMonthOfYear=DATEPART(month,@dDate)SELECT@sQuarter='Q'+CAST(DATENAME(quarter,@dDate)asvarchar(1))INSERTINTOCalendar(the_date,the_day,the_month,the_year,day_of_month,week_of_year,month_of_year,quarter)VALUES(@dDate,@WeekString,@sMonth,@iYear,@iDayOfMonth,@iWeekOfYear,@iMonthOfYear,@sQuarter)SELECT@dDate=@dDate+@adddaysENDGO2、设置查询引擎新增查询引擎选择手工sql设计selectconvert(char(10),the_date,120)as'date',convert(char(7),the_date,120)asmonthfromCalendar保存之后可以预览相关效果3、设置表样报表关键字设置:单位、月设置动态表,动态区关键字设置:日提取指标引入查询引擎数据---查询---创建选择设置好的查询引擎---日期选择需要的字段,映射表关键字(date映射日,month映射月)设置排序保存表样后,设置完成设置任务、分配任务等步骤:略。4、计算结果计算报表时系统就会自动取出相应月份的日期三、注意事项(或常见问题):无。