【问题标题】:SSRS: Call a dataset from a textbox with a parameterSSRS:从带有参数的文本框中调用数据集
【发布时间】:2016-04-05 14:50:09
【问题描述】:

我有一个数据集,它是一个查询,它有一个 where 子句,比如 'where field1 like @parameter1' parameter1 是一个字符串,定义为 dataset1 中的参数。我有各种文本框,它们使用 =First(Fields!field_xx, "Dataset1") 之类的表达式调用数据集。对于每个文本框,我喜欢在调用“dataset1”时为@parameter1 指定一个不同的值。如何修改每个文本框中的表达式,以便使用 @parameter1 的硬编码值从每个文本框中调用“dataset1”

查询:

SELECT     TOP (1) job.job_id, job.originating_server, job.name, job.enabled, job.description, job.start_step_id, job.category_id, job.owner_sid, job.notify_level_eventlog, 
                      job.notify_level_email, job.notify_level_netsend, job.notify_level_page, job.notify_email_operator_id, job.notify_netsend_operator_id, job.notify_page_operator_id, 
                      job.delete_level, job.date_created, job.date_modified, job.version_number, job.originating_server_id, job.master_server, activity.session_id, activity.job_id AS Expr1, 
                      activity.run_requested_date, activity.run_requested_source, activity.queued_date, activity.start_execution_date, activity.last_executed_step_id, 
                      activity.last_executed_step_date, activity.stop_execution_date, activity.job_history_id, activity.next_scheduled_run_date, steps.step_name
FROM         sysjobs_view AS job INNER JOIN
                      sysjobactivity AS activity ON job.job_id = activity.job_id INNER JOIN
                      sysjobsteps AS steps ON activity.last_executed_step_id = steps.step_id AND activity.job_id = steps.job_id
WHERE     (job.name LIKE 'Actual Job Name')
ORDER BY activity.start_execution_date DESC

【问题讨论】:

    标签: ssrs-2008


    【解决方案1】:

    不能在同一个报表执行中调用具有不同参数的数据集。报表的每次执行和呈现只获取每个数据集一次。

    这意味着您必须以某种方式构建数据集,以便它返回您需要的所有数据,以填充每个文本框。

    根据您的数据模型,您可能希望向数据集添加更多列,或返回多行数据。如果您有多行,则可以在表达式中使用Lookup 函数,以过滤掉每个单独文本框中的行。

    也许,如果您详细说明您的报告应该是什么样子,以及您要获取的数据的结构是什么,就可以更好地回答如何使用单个数据集解决您的问题。

    【讨论】:

    • 我添加了我为每个数据集复制一百次的实际查询:)
    • 您应该让查询返回单个数据集中的多行,每个作业一行,然后使用上述查找功能在每个文本框中过滤掉您需要的行。或者更好:使用 TABLIX - 这样,您只需创建一个文本框 :-)
    • 我建议您创建一个新问题并用 [sql] 和 [sql-server] 标记它 - 有人会很快帮助您从该查询中获得您想要的。
    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2014-12-02
    • 2016-04-05
    相关资源
    最近更新 更多