Страница 1 из 1
передача параметров в репорт (для начинающих)
Добавлено: 10 сен 2007, 06:42
Leshiy
Добрый день. Надо построить отчёт по записям в таблице, одно поле которой - дата. Как можно передать эту дату в репорт?
передача параметров в репорт (для начинающих)
Добавлено: 10 сен 2007, 14:48
Edward
Переменную типа DateTime в
скомпилированном отчете можно заполнить следующим образом:
Но если у Вас есть таблица с данными, то зарегистрируйте её в словаре:
после чего Вы сможете построить отчет. Формат даты выбирается в текстовом компоненте (в контекстном меню Формат).
Если ответ не совсем в точку, уточните, пожалуйста, вопрос поподробнее.
Спасибо.
передача параметров в репорт (для начинающих)
Добавлено: 11 сен 2007, 05:21
Leshiy
Есть таблица, которая лежит в датасете. По этому датасету будет строиться отчёт.
В таблице существует поле типа DateTime, которое соответствует дате внесения строки в таблицу.
Перед построением отчёта пользователь выбирает дату, и отчёт должен строиться по тем записям таблицы, у которых поле DataTime совпадает с датой, которую ввёл пользователь.
передача параметров в репорт (для начинающих)
Добавлено: 11 сен 2007, 06:28
Pavel
Для того чтобы отфильтровать записи таблицы вы можете использовать фильтры у датабэнда. Задайте новый фильтр(двойной клик по датабэнду - вкладка "Фильтры" - "Добавить фильтр"), тип поля: "Выражение", и введите условие, например: DataSourceName.Date == NeedfulDate, где NeedfulDate это переменная, которую вы должны определить в Словаре(Словарь - кнопка "Новый элемент" или правый клик - "Новая переменная"). Введите название переменной, тип и значение по умолчанию. После этого, датабэнд будет фильтроваться по значению этой переменной. Задать значение переменной можно из вашего приложения:
Код: Выделить всё
report.Dictionary.Variables["NeedfulDate"].Value = "09/11/2007"
. Можно также создать форму прямо в отчете и выставлять параметры при помощи встроенного DateTimePicker.
Спасибо.
передача параметров в репорт (для начинающих)
Добавлено: 11 сен 2007, 06:47
Leshiy
Спасибо!
передача параметров в репорт (для начинающих)
Добавлено: 12 сен 2007, 11:21
Leshiy
Ещё раз спасибо, всё получилось. Но появился новый вопрос: репорт у меня генерируется по событию кнопки:
stiReport1.RegData(dsContract_Op_loc);
stiReport1.Dictionary.Variables["l_DateReport"].Value = dateTimePicker1.Value.Date.ToString("MM/dd/yyyy");
stiReport1.Show();
Так вот, если я закрываю сгенерированый отчёт, меняю дату и снова генерирую отчёт - то переменная типа DateTime в репорте своё значение не меняет, а оставляет прежним.
передача параметров в репорт (для начинающих)
Добавлено: 14 сен 2007, 08:24
Pavel
В данном случае перед присвоением переменной вы можете добавить строчку:
Можно также обращаться к переменной напрямую:
Код: Выделить всё
stiReport1["l_DateReport"] = dateTimePicker1.Value.Date.ToString("MM/dd/yyyy");
Спасибо.
передача параметров в репорт (для начинающих)
Добавлено: 18 сен 2007, 09:30
Leshiy
Спасибо.
Pavel писал(а):В данном случае перед присвоением переменной вы можете добавить строчку:
Перед компиляцией репорта, переменным уже надо иметь значения, а в даном случае присваиваем значения после компиляции. Правильно я понял?
Pavel писал(а):
Можно также обращаться к переменной напрямую:
Код: Выделить всё
stiReport1["l_DateReport"] = dateTimePicker1.Value.Date.ToString("MM/dd/yyyy");
Если ничего не менять кроме этой строки, то имеем ошибку: Field 'l_DateReport'not found
передача параметров в репорт (для начинающих)
Добавлено: 20 сен 2007, 14:04
Edward
Leshiy писал(а):Спасибо.
Pavel писал(а):В данном случае перед присвоением переменной вы можете добавить строчку:
Перед компиляцией репорта, переменным уже надо иметь значения, а в даном случае присваиваем значения после компиляции. Правильно я понял?
Да, Вы правильно поняли. Значения проинициализированых переменных можно изменить только после компиляции.
Leshiy писал(а):
Pavel писал(а):
Можно также обращаться к переменной напрямую:
Код: Выделить всё
stiReport1["l_DateReport"] = dateTimePicker1.Value.Date.ToString("MM/dd/yyyy");
Если ничего не менять кроме этой строки, то имеем ошибку: Field 'l_DateReport'not found
Да, совершенно верно, обращение к переменной
возможно только в скомпилированном отчете.
Спасибо.