Страница 1 из 2
Как сделать разрыв бэнда
Добавлено: 05 ноя 2012, 15:17
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
Надеюсь на вашу помощь, т.к нужно это очень срочно!
Заранее спасибо!
Re: Как сделать разрыв бэнда
Добавлено: 05 ноя 2012, 16:33
Aleksey
Здравствуйте,
По первой части вопроса, если есть связь между основной и подчиненной таблицами, то вы можете использовать мастер-детаил отчет.
По второй части, к сожалению, простого стандартного решения для данной задачи нет. Как вариант, вы можете в событии использовать дополнительный код, в котором пробегать по всей таблице и формировать необходимую "объединенную" строку, которую затем и выводить.
Сообщите, если возникнут какие-либо трудности.
Спасибо.
Re: Как сделать разрыв бэнда
Добавлено: 05 ноя 2012, 18:41
ilya_com87
Спасибо за ваш ответ!
Не могли бы вы выслать пример как реализовать master-detail отчет с теми требованиями которые я описал? У меня просто не получилось реализовать такой отчет...
По второму вопросу - где нужно написать этот дополнительный код? И не могли бы вы привести пример, если это не сложно...
Re: Как сделать разрыв бэнда
Добавлено: 06 ноя 2012, 04:37
ilya_com87
C Master-detail разобрался, действительно можно сделать то что мне нужно если сделать несколько копий одного и того же объекта и связать их по ключу...
Но второй вопрос все еще актуален... И еще - как создать отчет в Silverlight используя Business Objects из RIA services? Там очень много объектов и набивать их ручками совсем не хочется...
НУ и последний вопрос, уж извините за наглость
. У меня есть приложение silverlight которой запускается вне браузера. Можно ли сделать так чтобы отчет создавался на стороне сервера а отображался как дочернее окно этого приложения? Т.е можно ли реализовать такую смесь client/server и обычного нативного Silverlight отчета? Дело в том, что компьютеры у конечных пользователей довольно маломощные, а ресурсы на построение отчетов нужны довольно серьезные...
Re: Как сделать разрыв бэнда
Добавлено: 06 ноя 2012, 09:49
Anton Lozovskiy
Здравствуйте,
>>И еще - как создать отчет в Silverlight используя Business Objects из RIA services? Там очень много объектов и набивать их ручками совсем не хочется...
Вы можете использовать доступный у нас пример WCF, который поставляется в релизной инсталляции. Он доступен с исходным кодом, чтобы вы могли подстроить под себя нужные вам моменты.
Так вот, при загрузке дизайнера, вы можете подписаться на событие загрузки и передать отчет со структурой бизнес объектов. Либо вы можете один раз сохранить структуру вашего словаря с бизнес объектами в файл - зайдя в Панель Словаря -> Действие -> Сохранить словарь как. Потом его там же загружать. Второй вариант более приемлем и быстр, т.к. не нужно будет постоянно вызывать метод RegBusinessObject().
Далее, когда в дизайнере нажимаете кнопку "Предварительный просмотр", отчет посылается на сервер и рендерится, этот момент вы можете обработать и подключить свои бизнес объекты. В примере все это показано, вы сможете легко разобраться.
>>НУ и последний вопрос, уж извините за наглость . У меня есть приложение silverlight которой запускается вне браузера. Можно ли сделать так чтобы отчет создавался на стороне сервера а отображался как дочернее окно этого приложения? Т.е можно ли реализовать такую смесь client/server и обычного нативного Silverlight отчета? Дело в том, что компьютеры у конечных пользователей довольно маломощные, а ресурсы на построение отчетов нужны довольно серьезные...
Все это также можно сделать, используя наш пример WCF.
Re: Как сделать разрыв бэнда
Добавлено: 06 ноя 2012, 09:54
Aleksey
Здравствуйте,
ilya_com87 писал(а):По второму вопросу - где нужно написать этот дополнительный код? И не могли бы вы привести пример, если это не сложно...
Вы можете добавить данный код в событии BeforePrint страницы либо компонента, в который необходимо вывести данную информацию. Все зависит от структуры отчета. Если возникунут сложности, пришлите ваш отчет для анализа.
Спасибо.
Re: Как сделать разрыв бэнда
Добавлено: 08 ноя 2012, 14:19
ilya_com87
Здравствуйте! С примером WCF вроде разобрался, но у меня вопрос - как передать значение параметров в отчет?
И насчет преобразование табличных данных в строку - было бы неплохо увидеть хоть какой-нибудь пример или кусок кода, а то непонятно даже с чего начинать...
Спасибо!
Re: Как сделать разрыв бэнда
Добавлено: 09 ноя 2012, 11:10
Aleksey
Здравсвтуйте,
ilya_com87 писал(а):Здравствуйте! С примером WCF вроде разобрался, но у меня вопрос - как передать значение параметров в отчет?
Не могли бы вы уточнить где вы хотите задать параметры, на клиенте, на сервере?
ilya_com87 писал(а):И насчет преобразование табличных данных в строку - было бы неплохо увидеть хоть какой-нибудь пример или кусок кода, а то непонятно даже с чего начинать...
Вы можете исплользовать следующий код:
Код: Выделить всё
foreach(DataRow row in Categories.DataTable.Rows)
{
varResultString += row["CategoryID"].ToString() + row["CategoryName"].ToString() + row["Description"].ToString();
}
Спасибо.
Re: Как сделать разрыв бэнда
Добавлено: 09 ноя 2012, 11:49
ilya_com87
Параметры задавать в клиентской части. Но ведь отчет рендерится на сервере, значит нужно их как-то передать туда.
Re: Как сделать разрыв бэнда
Добавлено: 12 ноя 2012, 10:38
Anton Lozovskiy
Здравствуйте,
Так ведь эта функция уже реализована в запросах, при общении клиента и сервера. Вам просто нужно вводить значения в поля в диалоговой панели, нажать кнопку "Submit" и все остальное сделается за вас.
или вы хотите при первом запросе отчета на сервер, обработать это действие и задать какие-либо первоначальные значения ? опишите более подробно.
Спасибо.