Вопросы по объекту Picture
"Кому нужны <strike>книжки</strike> отчеты без картинок?" - думала Алиса.
Добрался тут до картинок, и сразу возникло несколько вопросов:
1. Данные передаются в отчет в виде бизнес-объекта, за передачу изображений отвечает свойство с типом Bitmap. Тип этого свойства в шаблоне отчета определяется правильно, но вот BindableControl выставляется в Text. Если руками выставить BindableControl = Picture, вроде работает нормально. Собственно вопрос, какой должен быть тип передаваемых в отчет изображений? И нельзя ли «отфиксить» Bitmap?
2. Хотелось бы, чтобы объект Picture привязанный к данным при получении null значения (т.е. изображение отсутствует) мог бы сжиматься. У меня при получении пустой картинки он выводится с размерами "как есть" в не зависимости от установленного/снятого свойства «Может сжиматься» (может это с типом передаваемого изображения связано...).
3. Высота и ширина объекта Picture задается в Сантиметрах/Дюймах и т.д., а свойства MaxHeigh, MaxWidth... я так и не понял в чем. И вообще, после установки MaxHeigh, MaxWidth значений и попытки изменить мышкой размеры объекта Picture, последний начинает творить чудеса (при установке малых значений обычно «сбегает» с шаблона).
4. Еще хотелка , чтобы режим SizeMode = AutoSize при заданных ограничениях (MaxHeigh, MaxWidth ) работал бы следующим образом: объект Picture при необходимости увеличивает свои размеры, а при достижении одного из ограничений начинал бы работать как SizeMode = Zoom (если ограничения не заданы, то просто как стандартный AutoSize). Т.е. Picture увеличивается до одного из максимальных значений, а затем вписывает в себя изображение, сохраняя соотношение сторон последнего.
Добрался тут до картинок, и сразу возникло несколько вопросов:
1. Данные передаются в отчет в виде бизнес-объекта, за передачу изображений отвечает свойство с типом Bitmap. Тип этого свойства в шаблоне отчета определяется правильно, но вот BindableControl выставляется в Text. Если руками выставить BindableControl = Picture, вроде работает нормально. Собственно вопрос, какой должен быть тип передаваемых в отчет изображений? И нельзя ли «отфиксить» Bitmap?
2. Хотелось бы, чтобы объект Picture привязанный к данным при получении null значения (т.е. изображение отсутствует) мог бы сжиматься. У меня при получении пустой картинки он выводится с размерами "как есть" в не зависимости от установленного/снятого свойства «Может сжиматься» (может это с типом передаваемого изображения связано...).
3. Высота и ширина объекта Picture задается в Сантиметрах/Дюймах и т.д., а свойства MaxHeigh, MaxWidth... я так и не понял в чем. И вообще, после установки MaxHeigh, MaxWidth значений и попытки изменить мышкой размеры объекта Picture, последний начинает творить чудеса (при установке малых значений обычно «сбегает» с шаблона).
4. Еще хотелка , чтобы режим SizeMode = AutoSize при заданных ограничениях (MaxHeigh, MaxWidth ) работал бы следующим образом: объект Picture при необходимости увеличивает свои размеры, а при достижении одного из ограничений начинал бы работать как SizeMode = Zoom (если ограничения не заданы, то просто как стандартный AutoSize). Т.е. Picture увеличивается до одного из максимальных значений, а затем вписывает в себя изображение, сохраняя соотношение сторон последнего.
Комментарии
1. Работает.
2. Не работает. У объекта Picture установлено свойство "Может сжиматься", в источнике данных картинка отсутствует,
Picture выводится с размерами "как есть" и не сжимается.
Пробывал снять/установить свойство отчета "Преобразовывать null значения", ничего не изменилось.
Если подключиться к событию BeforePrint объекта Picture:
private void Picture1_BeforePrint(object sender, EventArgs e)
{
if(((Bitmap)Report.GetColumnValue("Диаграммы.Изображение"))==null)
{
Picture1.Visible = false;
}
else
{
Picture1.Visible = true;
}
}
Picture становится невидимым, а вот бенд на котором он выводится при установленом свойстве "Может сжиматься" не сжимается.
3. Теперь в сантиметрах, но если, скажем, в редакторе свойств выделить значение ширины объекта Picture, нажать Ctrl+c,
а затем по Ctrl+v попытаться вставить в какое-нибудь другое поле... оно не вставляется,
при этом на шаблоне появляется новый экземпляр объекта Picture.
Если сделать копирование - вставку через контекстное меню редактора свойств, то работает нормально.
4. Работает, но только для первой картинки из источника данных, для остальных изображений размер Picture не меняется.
+5. При режиме SizeMode = AutoSize если объект Picture увеличивает свои размеры все объекты находящиеся под ним не сдвигаются вниз,
а выводятся прямо не нем.
пока вроде все...
вот это поправлю.
3) срабатывает команда copy/paste у дизайнера. Подумаю, как исправить.
4) поправлю.
5) это, к сожалению, непоправимо. Разместите объекты на разных дочерних бэндах, либо используйте объект "Таблица".
Если установлены ограничения на размер Picture, то работает, но только для первой картинки из источника (см. п. 4).