Как узнать тип BusinessObject из шаблона отчёта ?

Обсуждение Stimulsoft Reports.Net
Ответить
EmeJIbka
Сообщения: 70
Зарегистрирован: 22 сен 2008, 10:07

Как узнать тип BusinessObject из шаблона отчёта ?

Сообщение EmeJIbka » 01 фев 2011, 22:24

Всем привет.

Подскажите, пожалуйста, есть ли возможность хранить тип Business объекта в самом шаблоне? Хочу сгенерировать тестовые данные и проверить все имеющиеся отчёты.
Спасибо.
Aleksey
Сообщения: 2289
Зарегистрирован: 22 апр 2010, 02:57

Как узнать тип BusinessObject из шаблона отчёта ?

Сообщение Aleksey » 02 фев 2011, 05:06

Здравствуйте,

Уточните пожалуйста, что вы понимаете под типом Bussines объекта? И что вы хотите проверить в ваших отчетах?

Спасибо.
EmeJIbka
Сообщения: 70
Зарегистрирован: 22 сен 2008, 10:07

Как узнать тип BusinessObject из шаблона отчёта ?

Сообщение EmeJIbka » 02 фев 2011, 22:15

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
        
        
        Карты в архиве
        Карты_в_архиве
      
    
...
Ivan
Сообщения: 624
Зарегистрирован: 10 авг 2006, 01:40

Как узнать тип BusinessObject из шаблона отчёта ?

Сообщение Ivan » 03 фев 2011, 02:05

Здравствуйте.

В шаблоне отчета хранится только та информация, которая необходима для дальнейшего построения отчета.
В случае бизнес-объектов это структура полей и тип полей.
Конкретный тип бизнес-объекта знать не нужно, так как с помощью рефлексии получается необходимое поле независимо от типа объекта.

Как вариант решения проблемы, вы можете использовать коллекцию отчета MetaTags, которая сохраняется в шаблоне.
Эта коллекция доступна только из кода.
При создании отчета вы можете добавить в эту коллекцию тэг с названием вашего бизнес-объекта и другие данные.

Спасибо.
Ответить