Страница 1 из 3
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 08:04
BeraleX
Как добавить в словарь переменную типа DateTime? Использую следующий код.
Report.Dictionary.Variables.Add(new StiVariable("Reports", name, val));
где val - переменная типа DateTime. В дизайнере добавленная переменная отображается типом string.
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 08:38
BeraleX
Добавлю, если получится получить переменную типа DateTime, подскажите как использвать ее при создании запроса в новом источнике данных 9интересует правильный синтаксис выражения) и как получить переменную со значением на один день меньше?
Большое спасибо.
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 09:44
Edward
BeraleX писал(а):Добавлю, если получится получить переменную типа DateTime, подскажите как использвать ее при создании запроса в новом источнике данных 9интересует правильный синтаксис выражения)
При добавлении переменной Вы можете указать её тип двумя способами:
1. Создать переменную с одновременной её инициализацией с определением типа переменной.
Код: Выделить всё
StiReport report = new StiReport();
report.Dictionary.Variables.Add("Reports", "myvar", DateTime.Parse("10.01.2006"));
2. Создать переменную и явно указать её тип.
Код: Выделить всё
StiReport report = new StiReport();
report.Dictionary.Variables.Add("Reports", "myvar", typeof(DateTime));
BeraleX писал(а): и как получить переменную со значением на один день меньше?
Большое спасибо.
Код: Выделить всё
StiReport report = new StiReport();
report.Dictionary.Variables.Add("Reports", "myvar", DateTime.Parse("10.01.2006").AddDays(-1));
Спасибо.
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 09:47
BeraleX
Имелось в виду при создании отчета в дизайнере из этой зарегистрированной переменной для отображения на странице, а не добавление еще одной.
Спасибо за ответ.
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 10:25
Edward
BeraleX писал(а):Имелось в виду при создании отчета в дизайнере из этой зарегистрированной переменной для отображения на странице, а не добавление еще одной.
Спасибо за ответ.
Используйте, пожалуйста, следующий код:
Спасибо.
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 11:39
BeraleX
Использую следующие строки кода:
Код: Выделить всё
string val = "01.08.2006";
val1 = DateTime.Parse(val, null, DateTimeStyles.NoCurrentDateDefault);
Report.Dictionary.Variables.Add(new StiVariable("Reports", name, val1));
MessageBox.Show(val1.ToString());
Получаем сообщение 01.08.2006.
В результате при запуске дизайнера получаем переменную DateTime с именем name и значением 08/01/2006.
При использовании кода
name = name.AddDays(-1);
получаю при просмотре строку 07/01/2006. то есть поменялись местами дни и месяцы. Что делать?
Добавление переменной типа DateTime
Добавлено: 04 сен 2006, 19:37
Vital
Проблема возникает из-за того, что StimulReport.Net сохраняет дату в американском формате. Решена в последних билдах.
Пришлите запрос на support.
Спасибо.
Добавление переменной типа DateTime
Добавлено: 06 сен 2006, 10:01
BeraleX
Сегодня скачал новый билд, но проблема так и осталась не решенной (все без изменений, при добавлении новой переменной формат остался прежним)!?
---------------------------------------------------------------------------------------------------------------------------------
Прошу вашего прошения, добавил заново ссылки на сборки, перекомпилил, все работает. Огромное спасибо.
Добавление переменной типа DateTime
Добавлено: 06 сен 2006, 11:11
BeraleX
Проблема со значением переменной решена, но при попытке использования этой переменной в строке запроса, напрмер при редактировании строки запроса источника данных:
select * from Table (GET_DATA({IDCM}, {FDate},{LDate},{TreeLevel}))
вылезает та же ситуация (значения переменных FDate и LDate как вы говорите в американском формате).
И еще, в хранимую процедуру GET_DATA желательно передавать дату строкой в формате, указанном выше в постах, с обязательными одиночными кавычками в начале и конце( то есть строку типа 'dd.mm.yyyy'). Возможно ли этого добится преобразованием существующей переменной типа DateTime и использованием ее в строке запроса( не хочется специально для этого регистрировать в словаре дополнительно дублирующую строковую переменную, т.к. дат может быть много, т.е. переменных получается в 2 раза больше, а соответственно и путаницы с ними)?
Спасибо за понимание.
Добавление переменной типа DateTime
Добавлено: 08 сен 2006, 05:27
BeraleX
Неужели ничего нельзя сделать?