Страница 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, которая сохраняется в шаблоне.
Эта коллекция доступна только из кода.
При создании отчета вы можете добавить в эту коллекцию тэг с названием вашего бизнес-объекта и другие данные.

Спасибо.