【问题标题】:Report Builder 3.0 optional parameter报表生成器 3.0 可选参数
【发布时间】:2018-05-11 14:36:19
【问题描述】:

是否有机会在报表生成器中使用可选参数?

例如:我有一个带有 3 个参数的查询

@Pa1 date
@Pa2 date
@Pa3 varchar(3)

如果我在没有通知的情况下运行查看报告,那么我收到消息:

为参数@Pa3 选择一个值(例如)

有可能吗?

我尝试使用空字段,但没有数据

select a.legajo,c.nombres,e.Descripcion,CONVERT (char(10), a.fecha, 103) as Fecha,a.hora as ENTRADA,
b.hora as SALIDA,
DATEDIFF(HOUR,a.hora,b.hora) as Horas_trabajadas,
c.hor_x_jor Horas_jornada,
 DATEDIFF(HOUR,a.hora,b.hora) -hor_x_jor as Diferencia
 from fichadas_in a, fichadas_out b, empleados c,sucursales d,Clasificacion e
where a.Legajo=b.Legajo
and a.fecha=b.fecha
and a.fecha between @fecha1 and @fecha2
and d.codigo=@sucursal
and a.legajo=c.legajo
and c.CCO=d.Codigo
and e.Codigo=c.Clasif
Order by a.fecha,legajo 

【问题讨论】:

    标签: sql-server sql-server-2008 reporting-services sql-server-2012 reportbuilder3.0


    【解决方案1】:

    您的参数允许 Null 值或空白值。

    【讨论】:

      【解决方案2】:

      如前所述,您需要选择 ALLOW BLANK VALUES 和 ALLOW NULL VALUE。但您还必须确保您的 SQL 知道如何处理 WHERE 子句中的这些 VALUES。

      AND (
             ((@Pa3 IS NOT NULL AND @Pa3 != '') AND d.codigo = @Pa3)
           OR
             ((@Pa3 IS NULL OR @Pa3 = '') AND d.codigo LIKE '%'))
          )
      

      还有其他方法可以做到这一点,但请确保您考虑到这些价值观/缺乏价值观。

      对于日期范围,我建议在运行 SELECT 语句之前声明另一个计算日期值的变量。如果值为空白、null 或输入,则创建一个计算值的变量。

      变量可能进入@Pa1,然后计算到@fecha1,然后在WHERE子句中你使用@fecha1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多