| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			SSRS интервал дат
			 
			
			Можно ли как-то в параметрах SSRS отчета задавать диапазон дат, как в аксапте, например 01.05.2010..09.05.2010 ?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно. 
		
		
		
		
		
		
			В стандартных SSRS отчетах в AX2009 насколько мне помнится как правило есть два параметра (fromDate, toDate), затем есть третий параметор (hidden) в котором сохраняеться и формируеться строка (from..to) и уже этот параметор используеться в квери. Там вроде еще можно фильтр в отчет добавить и к ниму параметры привязать. 
				__________________ 
		
		
		
		
		
			Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/  
			Последний раз редактировалось sukhanchik; 18.05.2010 в 09:44. Причина: Орфографические ошибки  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: greench (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да именно вариант с наложением fromDate и toDate на фильтр я в данный момент использую, но он вызывает у меня сомнения в производительности. Нужно проверить запросы, которые идут к серверу.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вариант с фильтром не интересен, т.к. в итоге получается что из базы выбираются все данные, а затем фильтруются. Производительность таких отчетов со временем будет очень сильно падать. 
		
		
		
		
		
		
		
	Можно ли использовать выражения в Value параметра? Или тыкнете носом в каком отчете реализован механизм формирования строки параметра из значений других параметров.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Вариант с фильтром не интересен, т.к. в итоге получается что из базы выбираются все данные, а затем фильтруются. Производительность таких отчетов со временем будет очень сильно падать.
		
	 
1. Создаете DataMethod (BusinessLogic) String AxDateTimeRange (DateTime From, DateTime To) { String axRangeStr = ...;// создаете корректно строку "From..To" или как вам надо return axRangeStr; } 2. Дальше ассоцируете data method к параметру отчета и прячете его. Для переменных метода - параметры сами появяться. 3. Должно работать Цитата: 
	
		
			Можно ли использовать выражения в Value параметра?
		
	 
				__________________ 
		
		
		
		
	Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/  
			 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Дальше ассоцируете data method к параметру отчета
		
	 
Есть конечно несколько вариантов обхода проблемы с интервалом дат, но они несколько через "одно место". Писать кучу кода в элементарном отчете - немного ставит под сомнение использование SSRS.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Чтобы можно было задавать в параметре отчёта SSRS диапазон дат (например, 01.02.2011..04.02.2011, 05.02.2011) как в AX нужно зайти в свойства параметра, который подхватился из Query и поменять тип с System.DateTime на System.String.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			greench, что-то действительно сложно как-то всё у Вас  
		
		
		
		
		
		
			![]() Во-первых, Вы какой SSRS-отчёт делаете, стандартный или с Dynamics AX extensions? (судя по тому, что используете дата-методы, второй, но всё же неплохо уточнить). Во-вторых, как Вы достаёте данные для отчёта? Бизнес-логикой (через дата-метод) или с помощью Query? Решения достаточно простые в обоих случаях, но Вы всё же уточните, какой именно Вам нужен, ок? 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ага! Я, кажется, догадался, что Вы пытаетесь сделать. 
		
		
		
		
		
		
			У Вас отчёт на основании Query из AX, так? В принципе, есть несколько вариантов, как в него добавить диапазон дат 1) Предложение Eloy. То есть, поменять тип параметра на System.String. В принципе, все критерии для Query в итоге именно в String и конвертируются. Недостаток этого варианта: пользователи не смогут пользоваться календарем для ввода дат. 2) Предложение Ievgenii (если честно, не уверен, что сработает). Создать дата-метод с параметрами fromDate и toDate. Вернуть из него DataTable со сформированным range. Подвязать к этому дата-методу Data source, который потом использовать как источник значений для параметра query. Думаю, что работать это не будет, так как даже если возможное значение у параметра всего одно, его всё равно кто-то должен выбрать, а параметр этот, насколько я понял, предлагается сделать Internal. 3) Раз уж всё равно связываемся с дата-методами, то напишите вот такой вот простой дата-метод и используйте его вместо Query в качестве источника данных для Вашего дата-сета (на примере Query LedgerTrans): X++: [DataMethod(), AxSessionPermission(SecurityAction.Assert)] public static DataTable DataMethod(DateTime fromDate, DateTime toDate) { Dictionary<string, object> rangeValues = new Dictionary<string, object>(); rangeValues.Add( "LedgerTrans.TransDate", // формат должен быть <tableName>[.<occurrence>].<rangeName> // (см. http://msdn.microsoft.com/en-us/library/cc641466.aspx) String.Format("{0}..{1}", fromDate.ToShortDateString(), toDate.ToShortDateString())); return AxQuery.ExecuteQuery("select * from LedgerTrans", rangeValues); } Исправил объявление rangeValues. 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ещё один вариант - воспользоваться методом FIMCommonHelper.GetParameterDataTable из библиотеки SharedComponents.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| Теги | 
| ssrs, диапазон дат | 
| 
	
	 | 
	
		
  |