Создание связей между бизнес объектами

Обсуждение Stimulsoft Reports.NET
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Создание связей между бизнес объектами

Сообщение Anton.Shetsov »

Добрый день.

Скажите, пожалуйста, как организовать связь между двумя бизнес объектами, подобно связи между источниками данных?

К теме приложен шаблон отчета. Допустим мне нужно связать бизнес объект Stocks (по полю ProcessUnitId) с бизнес объектом SelectedProcessUnits (по полю Id). Как это сделать?
Вложения
Report.mrt
(42.46 КБ) 364 скачивания
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Создание связей между бизнес объектами

Сообщение Aleksey »

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

В самом дизайнере связи между бизнес объектами задать нельзя. Вам необходимо это задавать в самой структуре бизнес объекта.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Создание связей между бизнес объектами

Сообщение Anton.Shetsov »

Aleksey писал(а):Здравствуйте,

В самом дизайнере связи между бизнес объектами задать нельзя. Вам необходимо это задавать в самой структуре бизнес объекта.

Спасибо.
Т.е. нужно в коде создать такой бизнес объект, который будет содержать в себе все требуемые поля ?

И еще. Aliase у бизнес объекта всегда должен иметь название "Данные"? Задаю свое название для бизнес объекта, но при отладке вижу, что Aliase все равно называется как "Данные"...

Какую функцию необходимо использовать для сравнения строк и Id с типом guid?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Создание связей между бизнес объектами

Сообщение HighAley »

Здравствуйте, Антон.
Anton.Shetsov писал(а):Т.е. нужно в коде создать такой бизнес объект, который будет содержать в себе все требуемые поля ?
Именно так и следует делать.
Anton.Shetsov писал(а):И еще. Aliase у бизнес объекта всегда должен иметь название "Данные"? Задаю свое название для бизнес объекта, но при отладке вижу, что Aliase все равно называется как "Данные"...
К сожалению мы не можем воспроизвести этот момент. Пришлите, пожалуйста, больше информации. Как его воспроизвести?
Anton.Shetsov писал(а):Какую функцию необходимо использовать для сравнения строк и Id с типом guid?
Уточните, пожалуйста, этот вопрос более подробно.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Создание связей между бизнес объектами

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте, Антон.
Anton.Shetsov писал(а):И еще. Aliase у бизнес объекта всегда должен иметь название "Данные"? Задаю свое название для бизнес объекта, но при отладке вижу, что Aliase все равно называется как "Данные"...
К сожалению мы не можем воспроизвести этот момент. Пришлите, пожалуйста, больше информации. Как его воспроизвести?
в режиме отладки программы в MS VS 2012 при формировании отчета в коде, просматриваю поля объекта отчета, среди которых есть поле BusinessObjectsStore, которое содержит мой бизнес объект с Aliase "Данные"(в прикрепленном рисунке видно).
Aleksey Andreyanov писал(а):
Anton.Shetsov писал(а):Какую функцию необходимо использовать для сравнения строк и Id с типом guid?
Уточните, пожалуйста, этот вопрос более подробно.
Спасибо.
В функции IIF(bool,object,object) в качестве условия bool пытаюсь сравнить Id записи из бизнес объекта с заранее известным мне Id. идентификаторы записей представляют собой поля с типом guid, т.е. например я пишу так Stocks.ProcessUnitId == "", в результате чего получаю ошибку, что сравнивать поля с типом string и guid, таким образом невозможно...
Вложения
BusinessObjectsStore.jpg
BusinessObjectsStore.jpg (69.02 КБ) 5036 просмотров
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Создание связей между бизнес объектами

Сообщение HighAley »

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

Вы можете использовать следующий метод для регистрации бизнес-объектов:

Код: Выделить всё

public void RegBusinessObject(string category, string name, string alias, object value)
В функции IIF(bool,object,object) в качестве условия bool пытаюсь сравнить Id записи из бизнес объекта с заранее известным мне Id. идентификаторы записей представляют собой поля с
типом guid, т.е. например я пишу так Stocks.ProcessUnitId == "", в результате чего получаю ошибку, что сравнивать поля с типом string и guid, таким образом невозможно...
Вы должны использовать выражения С#. Естественно, что вы получите ошибку при сравнении guid со строкой. Используйте приведение типов.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Создание связей между бизнес объектами

Сообщение Anton.Shetsov »

Aleksey Andreyanov писал(а):Здравствуйте.

Вы можете использовать следующий метод для регистрации бизнес-объектов:

Код: Выделить всё

public void RegBusinessObject(string category, string name, string alias, object value)
Можно ли привести пример использования данной функции для реального отчета?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Создание связей между бизнес объектами

Сообщение HighAley »

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

Вот пример кода:

Код: Выделить всё

            stiReport1.Dictionary.BusinessObjects.Clear();
            stiReport1.RegBusinessObject("Data", "Customers", "Customers", customerOrders.Tables["Customers"]);
            stiReport1.Dictionary.SynchronizeBusinessObjects(2);
Сообщите, если вам нужна дополнительная помощь.

Спасибо.
Anton.Shetsov
Сообщения: 102
Зарегистрирован: 03 апр 2013, 20:20

Re: Создание связей между бизнес объектами

Сообщение Anton.Shetsov »

Aleksey писал(а):Здравствуйте,

В самом дизайнере связи между бизнес объектами задать нельзя.
А с чем это связано? В связи с чем нельзя организовывать связи между бизнес объектами?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Создание связей между бизнес объектами

Сообщение HighAley »

Здравствуйте, Антон.

Структура бизнес-объектов отличается от таблиц со связями. Данная структура не имеет таблиц, которые можно связать между собой. По сути бизнес-объекты - это набор объектов, которые уже связаны между собой, причём связи указываются для конкретных объектов, а не для всех сразу.

Если коротко, то структура бизнес-объектов не позволяет создавать связи.

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