Страница 1 из 1
Как узнать тип BusinessObject из шаблона отчёта ?
Добавлено: 02 фев 2011, 01:24
EmeJIbka
Всем привет.
Подскажите, пожалуйста, есть ли возможность хранить тип Business объекта в самом шаблоне? Хочу сгенерировать тестовые данные и проверить все имеющиеся отчёты.
Спасибо.
Как узнать тип BusinessObject из шаблона отчёта ?
Добавлено: 02 фев 2011, 08:06
Aleksey
Здравствуйте,
Уточните пожалуйста, что вы понимаете под типом Bussines объекта? И что вы хотите проверить в ваших отчетах?
Спасибо.
Как узнать тип BusinessObject из шаблона отчёта ?
Добавлено: 03 фев 2011, 01:15
EmeJIbka
Aleksey писал(а):
Уточните пожалуйста, что вы понимаете под типом Bussines объекта? И что вы хотите проверить в ваших отчетах?
У меня есть объекты разных типов, которые я передаю в отчёт.
Код: Выделить всё
public class MyObject
{
public long ID {get;set;}
///some field
}
public class ReportController
{
...
var arrayOfMyObject = new List;
...
stiReport.RegData(sampleTableName, arrayOfMyObject);
...
stiReport.Print;
}
И вот таких MyObject классов у меня несколько штук. Проблема возникает тогда, когда разработчики решают переименовать/удалить какое-то поле, которое есть в шаблоне. Можно было бы генерировать тестовые данные для всех отчётов, зная типы объектов, с которыми они работают (что бы не писать отдельный тест на каждый отчёт). Но StimulReport не хранит информацию о типах объектов, которые он использует.
Вот кусочек из реального отчёта:
Код: Выделить всё
Карты в архиве
SerNum,Серия_x0020_Номер,System.String
ClientName,ФИО,System.String
ClientBirthday,Дата_x0020_рождения,System.DateTime
ClientAdress,Адрес,System.String
MotiveMove,Причина_x0020_перемещения,System.String
DateMove,Дата_x0020_перемещения,System.DateTime
DateIssue,Дата_x0020_изъятия,System.DateTime
ID,System.Object
_ID,System.Int32
Карты в архиве
Карты_в_архиве
...
Как узнать тип BusinessObject из шаблона отчёта ?
Добавлено: 03 фев 2011, 05:05
Ivan
Здравствуйте.
В шаблоне отчета хранится только та информация, которая необходима для дальнейшего построения отчета.
В случае бизнес-объектов это структура полей и тип полей.
Конкретный тип бизнес-объекта знать не нужно, так как с помощью рефлексии получается необходимое поле независимо от типа объекта.
Как вариант решения проблемы, вы можете использовать коллекцию отчета MetaTags, которая сохраняется в шаблоне.
Эта коллекция доступна только из кода.
При создании отчета вы можете добавить в эту коллекцию тэг с названием вашего бизнес-объекта и другие данные.
Спасибо.