• 使用Reporting Services时遇到的小问题


    同事忙不开了交过来的一个小问题,以前我也没有做过Reporting Services相关的。

    大概看了一下,是数据集那边的查询代码接收不到报表参数,而且不是单纯地接收不到,具体情况如下。。

    命令类型是Text,配置了几个报表参数,如果是以下这个形式就执行成功:

    if(@TimeType=1)
    begin
      --查询
    end
    
    else if (@TimeType = 2)
    begin
      --查询
    end

    但是如果我在这前面加上一系列的判断+赋值,就像这样

    if(@Year is not null and @quarter is not null)
    begin
     if(@quarter =1)
     begin
        set @startDate =convert(datetime, @Year+'-1-1')
        set @EndDate=convert(datetime, @Year+'-3-31')
     end
     else if(@quarter =2)
     begin
        set @startDate =convert(datetime, @Year+'-4-1')
        set @EndDate =convert(datetime, @Year+'-6-30')
     end
     else if(@quarter =3)
     begin
        set @startDate =convert(datetime, @Year+'-7-1')
        set @EndDate =convert(datetime, @Year+'-9-30')
     end
     else if(@quarter =4)
     begin
        set @startDate =convert(datetime, @Year+'-10-1')
        set @EndDate =convert(datetime, @Year+'-12-31')
     end
     else if(@quarter =5)
     begin
        set @startDate =convert(datetime, @Year+'-1-1')
        set @EndDate =convert(datetime, @Year+'-6-30')
     end
     else if(@quarter =6)
     begin
        set @startDate =convert(datetime, @Year+'-7-1')
        set @EndDate =convert(datetime, @Year+'-12-31')
     end
     else if(@quarter =7)
     begin
        set @startDate =convert(datetime, @Year+'-1-1')
        set @EndDate =convert(datetime, @Year+'-12-31')
     end
        
    end
    
    if(@TimeType=1)
    begin
      --查询
    end
    
    else if (@TimeType = 2)
    
    begin
      --查询
    end

    在预览的时候就会提示

    “本地报表处理期间出错。处理报表时出错。XXX,必须声明标量变量@Year,必须声明标量变量@quarterxxxxxxxx”

    翻来覆去地看了下,也没有弄清楚,扒开了xml文档看到查询是写在CommandText节点下的,但是也没看到什么切入点。

    后来就把上面那一大串判断全部改成case when方式写到查询语句里面,也就是说只存在一个查询语句,运行没问题了。

    但是还是不知道是什么问题报这个错,难道在Text的命令方式下,只能写单条的select语句?不能像一个MSSQL里面正常的查询那样去写?

    在MSDN上粗略找了一下,也没有找到说这方面的文档,暂且记录一下吧。

  • 相关阅读:
    常用的ROS命令
    matlab练习程序(旋转矩阵、欧拉角、四元数互转)
    matlab练习程序(求向量间的旋转矩阵与四元数)
    matlab练习程序(点云表面法向量)
    matlab练习程序(点云下采样)
    matlab练习程序(局部加权线性回归)
    matlab练习程序(加权最小二乘)
    C#编程(五十七)----------位数组
    C#编程(五十六)----------可观察的集合ObservableCollection
    C#编程(五十五)----------HashSet和SortedSet
  • 原文地址:https://www.cnblogs.com/v5wa/p/3152819.html
Copyright © 2020-2023  润新知