2016-12-09 3 views
0

У меня есть отчет SSRS 2014 с тремя параметрами: @Period (текст), @FromDate (дата) и @ToDate (дата). Они работают вместе, сначала выбирая значение из раскрывающегося списка Период (январь, февраль, март и т. Д.). В зависимости от того, какой период вы выбираете, параметры @FromDate и @ToDate меняются соответственно, чтобы отразить ваш выбор. Это работает хорошо, но проблема возникает, когда вы выбираете новый период после того, как он уже выбран, поскольку параметры даты не обновляются.SSRS: два каскадных параметра даты не обновляются

Я искал некоторые предложения и обходные пути, но мне еще предстоит найти тот, который имеет дело с двумя зависимыми параметрами даты. Какие-либо предложения?

+0

Вы используете параметр parent (@Period) для заполнения значений по умолчанию или доступных значений? Обратите внимание, что пользовательский интерфейс не изменится, но параметры '@ FromDate' и' @ ToDate' установлены правильно во время выполнения. –

+0

@alejandrozuleta Параметр Period заполняется только доступными значениями, тогда как FromDate и ToDate заполняются только значениями по умолчанию. – Simon

+0

В этом случае вы можете установить оба параметра даты как 'Internal', поэтому ваши параметры будут заполняться только из параметра period, а не из пользовательского интерфейса. Но если вы хотите, чтобы пользователь выбирал даты, вам нужно будет создать два дополнительных параметра, которые будут внутренними, и заполнить их с помощью выражения, чтобы определить, использовать ли значения по умолчанию из параметра @Period или значения из параметров видимой даты. –

ответ

0

Параметры даты, сгенерированные после сгенерации, не могут быть изменены. Он не имеет каскадный объекта и в соответствии с Microsoft, это дизайн (это, как они хотели, чтобы вести себя):

Follow this link please

0

Как уже отмечалось, параметры, которые не имеют доступных значений/значения по умолчанию из каскадных запрос не обновит свои значения по умолчанию.

Решение: Создать одну строку набора данных, который вычисляет ваш DateFrom и даты DateTo, каждый в отдельном столбце и в зависимости от вашего параметра @Period, и назначить набор данных доступных и значений обоих ваших параметров по умолчанию. Недостаток: вы не сможете редактировать значения при запуске отчета, так как поля заполняются набором данных.

0

Это работает по назначению, Microsoft не хочет обновлять параметры каскадной даты, если вы измените параметр, на который они зависят. Однако можно обойти это.

Для двух параметров данных требуется два набора данных, которые возвращают одну строку с требуемыми данными, зависящими от параметра @Period, например.

DECLARE @Dates as TABLE ([Period] INT, [Date] SMALLDATETIME) 

INSERT INTO @Dates VALUES 
(1,DATEADD(s, 86340, DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)))) 
,(2,DATEADD(DAY , 7-DATEPART(WEEKDAY,GETDATE()),DATEADD(MINUTE,- 1,DATEADD(DAY,0,DATEADD(day,DATEDIFF(day,0,GETDATE())+1,0))))) 
,(3,DATEADD(MINUTE,- 1,DATEADD(DAY,0,DATEADD(day,DATEDIFF(day,0,GETDATE()),0)))) 

SELECT 
    [Period] 
    ,[Date] 
FROM 
    @Dates 
WHERE 
    [Period] = @Period 

Набор доступных значений параметра @Period too match и установить значение по умолчанию параметров данных для их matching datasets.

Теперь, когда вы изменяете параметр @Period, он заново запускает набор данных даты, и ваши параметры даты будут по умолчанию для нового результата.

 Смежные вопросы

  • Нет связанных вопросов^_^