Как сделать разрыв бэнда

Обсуждение Stimulsoft Reports.Silverlight
ilya_com87
Сообщения: 35
Зарегистрирован: 18 фев 2010, 06:24
Откуда: Хабаровск

Как сделать разрыв бэнда

Сообщение ilya_com87 »

Здравствуйте!
Мне необходимо подготовить печатную форму, в которой основные данные идут из одной таблицы, но посередине между ними могут вставляться подчиненные данные из других таблиц. Как-то так:
несколько полей из записи из таблицы 1
запись1 из под.таблицы1
запись2 из под.таблицы1
..............................
записьn из под.таблицы1
другие несколько полей из записи из таблицы 1
запись1 из под.таблицы2
запись2 из под.таблицы2
..............................
записьn из под.таблицы2
еще несколько полей из записи из таблицы 1

Так вот, вся сложность в том как вставить внутрь бэнда подчиненный бэнд, а затем после него продолжить опять данными из первого бэнда???
И еще возможно ли массив записей в источники таблицы представить как-нибудь в текстовом виде, т.е. не
поле1_1 | поле2_1 | поле3_1
поле1_2 | поле2_2 | поле3_2
поле1_3 | поле2_3 | поле3_3
, а
поле1_1 поле2_1 поле3_1; поле1_2 поле2_2 поле3_2;поле1_3 поле2_3 поле3_3

Надеюсь на вашу помощь, т.к нужно это очень срочно!
Заранее спасибо!
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Как сделать разрыв бэнда

Сообщение Aleksey »

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

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

Сообщите, если возникнут какие-либо трудности.
Спасибо.
ilya_com87
Сообщения: 35
Зарегистрирован: 18 фев 2010, 06:24
Откуда: Хабаровск

Re: Как сделать разрыв бэнда

Сообщение ilya_com87 »

Спасибо за ваш ответ!
Не могли бы вы выслать пример как реализовать master-detail отчет с теми требованиями которые я описал? У меня просто не получилось реализовать такой отчет...
По второму вопросу - где нужно написать этот дополнительный код? И не могли бы вы привести пример, если это не сложно...
ilya_com87
Сообщения: 35
Зарегистрирован: 18 фев 2010, 06:24
Откуда: Хабаровск

Re: Как сделать разрыв бэнда

Сообщение ilya_com87 »

C Master-detail разобрался, действительно можно сделать то что мне нужно если сделать несколько копий одного и того же объекта и связать их по ключу...
Но второй вопрос все еще актуален... И еще - как создать отчет в Silverlight используя Business Objects из RIA services? Там очень много объектов и набивать их ручками совсем не хочется...
НУ и последний вопрос, уж извините за наглость :). У меня есть приложение silverlight которой запускается вне браузера. Можно ли сделать так чтобы отчет создавался на стороне сервера а отображался как дочернее окно этого приложения? Т.е можно ли реализовать такую смесь client/server и обычного нативного Silverlight отчета? Дело в том, что компьютеры у конечных пользователей довольно маломощные, а ресурсы на построение отчетов нужны довольно серьезные...
Anton Lozovskiy
Сообщения: 264
Зарегистрирован: 12 ноя 2007, 08:16

Re: Как сделать разрыв бэнда

Сообщение Anton Lozovskiy »

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

>>И еще - как создать отчет в Silverlight используя Business Objects из RIA services? Там очень много объектов и набивать их ручками совсем не хочется...
Вы можете использовать доступный у нас пример WCF, который поставляется в релизной инсталляции. Он доступен с исходным кодом, чтобы вы могли подстроить под себя нужные вам моменты.
Так вот, при загрузке дизайнера, вы можете подписаться на событие загрузки и передать отчет со структурой бизнес объектов. Либо вы можете один раз сохранить структуру вашего словаря с бизнес объектами в файл - зайдя в Панель Словаря -> Действие -> Сохранить словарь как. Потом его там же загружать. Второй вариант более приемлем и быстр, т.к. не нужно будет постоянно вызывать метод RegBusinessObject().
Далее, когда в дизайнере нажимаете кнопку "Предварительный просмотр", отчет посылается на сервер и рендерится, этот момент вы можете обработать и подключить свои бизнес объекты. В примере все это показано, вы сможете легко разобраться.

>>НУ и последний вопрос, уж извините за наглость . У меня есть приложение silverlight которой запускается вне браузера. Можно ли сделать так чтобы отчет создавался на стороне сервера а отображался как дочернее окно этого приложения? Т.е можно ли реализовать такую смесь client/server и обычного нативного Silverlight отчета? Дело в том, что компьютеры у конечных пользователей довольно маломощные, а ресурсы на построение отчетов нужны довольно серьезные...

Все это также можно сделать, используя наш пример WCF.
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Как сделать разрыв бэнда

Сообщение Aleksey »

Здравствуйте,
ilya_com87 писал(а):По второму вопросу - где нужно написать этот дополнительный код? И не могли бы вы привести пример, если это не сложно...
Вы можете добавить данный код в событии BeforePrint страницы либо компонента, в который необходимо вывести данную информацию. Все зависит от структуры отчета. Если возникунут сложности, пришлите ваш отчет для анализа.

Спасибо.
ilya_com87
Сообщения: 35
Зарегистрирован: 18 фев 2010, 06:24
Откуда: Хабаровск

Re: Как сделать разрыв бэнда

Сообщение ilya_com87 »

Здравствуйте! С примером WCF вроде разобрался, но у меня вопрос - как передать значение параметров в отчет?
И насчет преобразование табличных данных в строку - было бы неплохо увидеть хоть какой-нибудь пример или кусок кода, а то непонятно даже с чего начинать...
Спасибо!
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Как сделать разрыв бэнда

Сообщение Aleksey »

Здравсвтуйте,
ilya_com87 писал(а):Здравствуйте! С примером WCF вроде разобрался, но у меня вопрос - как передать значение параметров в отчет?
Не могли бы вы уточнить где вы хотите задать параметры, на клиенте, на сервере?
ilya_com87 писал(а):И насчет преобразование табличных данных в строку - было бы неплохо увидеть хоть какой-нибудь пример или кусок кода, а то непонятно даже с чего начинать...
Вы можете исплользовать следующий код:

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

foreach(DataRow row in Categories.DataTable.Rows)
{
	varResultString += row["CategoryID"].ToString() + row["CategoryName"].ToString() + row["Description"].ToString();
}
Спасибо.
ilya_com87
Сообщения: 35
Зарегистрирован: 18 фев 2010, 06:24
Откуда: Хабаровск

Re: Как сделать разрыв бэнда

Сообщение ilya_com87 »

Параметры задавать в клиентской части. Но ведь отчет рендерится на сервере, значит нужно их как-то передать туда.
Anton Lozovskiy
Сообщения: 264
Зарегистрирован: 12 ноя 2007, 08:16

Re: Как сделать разрыв бэнда

Сообщение Anton Lozovskiy »

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

Так ведь эта функция уже реализована в запросах, при общении клиента и сервера. Вам просто нужно вводить значения в поля в диалоговой панели, нажать кнопку "Submit" и все остальное сделается за вас.

или вы хотите при первом запросе отчета на сервер, обработать это действие и задать какие-либо первоначальные значения ? опишите более подробно.

Спасибо.
Закрыто