Предложение по генератору
От: mrhru Россия  
Дата: 10.12.03 11:54
Оценка: 6 (1)
Добрый день,

Позвольте предложить некоторые идеи.




1) Блоки

Базовыми объектами шаблонов/отчётов является блоки.
Блоки могут иметь собственное оформление: borders, backgroun pictures и paddings и т.п.

Блоки могут в себя включать другие блоки, и бывают трёх типов:
— вертикальный блок
— горизонтальный блок
— ячейка

Вертикальные/горизонтальные блоки размещают свои субблоки соответственно вертикально/горизонтально.
Ячейки не могут иметь субблоков, но зато умеют отображать информацию — тексты, картинки etc.

Причём, в вертикальных блоках могут располагаться только горизонтальные и наоборот.
Такие ограничения практически не уменьшают гибкости, но здорово упрощают управление взаимным размещением объектов.

Субблоки в блоках не могут располагаться в произвольных местах, как в большинстве известных ГО.
Напротив, размещаются они исключельно side by side, ну возможно, с "прилипанием" влево или вправо.

Фактически, такая структура аналогична таблицам Word или html.




2) Переменные

Текст в ячейках шаблона, не обрамлённый в [], выводится as is.

Если же часть (или весь) текст ячейки заключён в скобки [], то
— этот текст считается именем переменной, {ValueName}
— при генерации отчёта, будет заменён значением взятым из пользовательских данных, согласно
<{ValueName}={Value}/>



3) Именованые блоки

Некоторые вертикальные/горизонтальные блоки могут именованы.

При генерации отчёта, блок из шаблона выводится всегда, когда выводится и его владелец. За исключением именованых блоков, которые сидят и ждут специального указания от пользовательских данных.



4) Пользовательские данные

Данные от клиента поступают в виде, подобно такому:
<Report>
  <Date="10.12.2003"/>
  <Title="Hello, Report!"/>
  <Row>
    <ID="1"/>
    <Name="Ben"/>
    <Amount="100"/>
  </Row>
  <Row>
    <ID="2"/>
    <Name="Silver"/>
    <Amount="200"/>
  </Row>
  <Row>
    <ID="3"/>
    <Name="Flint"/>
    <Amount="300"/>
  </Row>
  <Total="600"/>
</Report>


Элементы такого представления:

1) <{ValueName}={Value}/>
означают, что в некотором месте отчета, именованном как {ValueName} будет подставлено значение {Value}.

2)<{NodeName}>
...
</{NodeName}>
<{NodeName}>
...
</{NodeName}>

означает, что в отчёте будет повторно выведены именованые блоки из шаблона, с постановкой соответствующих значений (1). И наоборот, если в пользовательских данных не упоминается какой-либо {NodeName}, то соответствующие блоки в результирующем отчёте не появятся.

3) Значения самого верхнего уровня
<Report>
<Date="10.12.2003"/>
<Title="Hello, Report!"/>
...
</Report>

присваиваются и выводятся всегда.




Пример:

Шаблон отчёта



Для удобства, горизонтальные блоки имеют синюю рамку, вертикальные — зелёную.
Ячейки залиты желтым.
Размеры блоков (по крайней мере, пока) задаются исключительно размерами внутренних ячеек.
Если внутренних ячеек нет, то пустой блок просто принимает дефолтные размеры.

Структура шаблона может быть представлена так:
<Report>
    <Value=Title/>
    <Value=Date/>
    <Value=Total/>
    <Row>
        <Value=ID/>
        <Value=Name/>
        <Value=Amount/>
    </Row>
</Report>


где блокe, содержащему [ID][Name][Amount] присвоено имя "Row"

По следующим данным

<Report>
  <Date="10.12.2003"/>
  <Title="Hello, Report!"/>
  <Row>
    <ID="1"/>
    <Name="Ben"/>
    <Amount="100"/>
  </Row>
  <Row>
    <ID="2"/>
    <Name="Silver"/>
    <Amount="200"/>
  </Row>
  <Row>
    <ID="3"/>
    <Name="Flint"/>
    <Amount="300"/>
  </Row>
  <Total="600"/>
</Report>


должен получится следующий отчёт:






Примечания.

1). Достоинство выбранной схемы размещения визуальных элементов отчёта, имхо, в том, что:
— вложенность блоков позволяет:
— любую ветку отчёта/шаблона рассматривать как самостоятельный отчёт/шаблон. И наоборот
— любой отчёт/шаблон использовать как элемент другого отчёта/шаблона. Поэтому я сознательно в описании не упоминал такие вещи, как подотчёты, crosstab'ы и т.п. Очевидно, что они очень легко реализуются "сверху/сбоку"
— "слипшиеся" блоки-соседи очень легко (пере)форматировать, при кажущемся уменьшении гибкости в управлении расположением.

2) xml, как переносчик структур (пользовательских данных, шаблонов и готовых отчётов), имхо, следует использовать только при "переносе с места на место". Внутри одного приложения, проще и удобнее использовать "самодельные" типы ("прикручивая" к xml методы, мы к этому и придём). По той же причине предлагается не использовать xslt.

3) Где же FO? Использовать стандарт FO можно для хранения визуальных свойств шаблонов.

4) Нужен редактор шаблонов. И как редактор для студии, и как отдельный компонент,приложение.
Re: Предложение по генератору
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.03 12:21
Оценка:
Здравствуйте, mrhru, Вы писали:

Не хочешь почитать вот это?

http://longhorn.msdn.microsoft.com/lhsdk/port_ref_elements.aspx
... << RSDN@Home 1.1.2 beta 2 >>
AVK Blog
Re[2]: Предложение по генератору
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.03 12:31
Оценка: +1
В догонку поглядие еще xamlon.com
... << RSDN@Home 1.1.2 beta 2 >>
AVK Blog
Re: Предложение по генератору
От: Аноним  
Дата: 10.12.03 17:04
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Добрый день,


M>Позвольте предложить некоторые идеи.


Чего например не хватает здесь?
Re[3]: Предложение по генератору
От: mrhru Россия  
Дата: 11.12.03 02:01
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>В догонку поглядие еще xamlon.com


Ой! Обскакали.

Спасибо за ссылки!
Re[4]: Предложение по генератору
От: avg_sng  
Дата: 16.01.04 11:40
Оценка:
А вот здесь лежит очень интересный .pdf

http://www.microsoft.com/sql/reporting/techinfo/rdlspec.asp
Re[5]: Предложение по генератору
От: mrhru Россия  
Дата: 16.01.04 12:02
Оценка:
Здравствуйте, avg_sng, Вы писали:

_>А вот здесь лежит очень интересный .pdf


_>http://www.microsoft.com/sql/reporting/techinfo/rdlspec.asp


Огромное спасибо!, буду смотреть.
Re[6]: Предложение по генератору
От: avg_sng  
Дата: 17.01.04 11:53
Оценка:
Кстати, я поставил и попробовал реализацию этого RDL от самой Microsoft — Reporting Service Beta 2. Очень интересная и мощная вещь скажу я вам. Одно но — дизайнер отчетов работает только в VS.NET. Да и тяжеловесный он — для малых приложений не пойдет. К тому же требует в сети ISS и для хранения БД с шаблонами отчетов MSSQL 2000. Для портала отчетов крупного предприятия — самое то, для настольных приложений...
Предложение — может стоит рассмотреть возможность написания репортера именно для этих целей? Понимающий RDL (тем более он уже есть ), пока без дизайнера, который просто будет рендерить отчет, делать его превью и печать. Экспорт в PDF, Exel, HTML — чуть погодя. В написании я мог бы поучаствовать (но не в организационных делах ), правда опыт в C# у меня пока не большой, но надо когда-то начинать
Re[7]: Предложение по генератору
От: Воронков Василий Россия  
Дата: 17.01.04 12:00
Оценка:
Здравствуйте, avg_sng, Вы писали:

_>Кстати, я поставил и попробовал реализацию этого RDL от самой Microsoft — Reporting Service Beta 2. Очень интересная и мощная вещь скажу я вам. Одно но — дизайнер отчетов работает только в VS.NET. Да и тяжеловесный он — для малых приложений не пойдет. К тому же требует в сети ISS и для хранения БД с шаблонами отчетов MSSQL 2000. Для портала отчетов крупного предприятия — самое то, для настольных приложений...

_>Предложение — может стоит рассмотреть возможность написания репортера именно для этих целей? Понимающий RDL (тем более он уже есть ), пока без дизайнера, который просто будет рендерить отчет, делать его превью и печать. Экспорт в PDF, Exel, HTML — чуть погодя. В написании я мог бы поучаствовать (но не в организационных делах ), правда опыт в C# у меня пока не большой, но надо когда-то начинать

А кто в организационных делах будет участвовать? Весь проект висит как раз потому, что организатора нет.
... << RSDN@Home 1.1.2 stable >>
Re[8]: Предложение по генератору
От: avg_sng  
Дата: 19.01.04 10:11
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>А кто в организационных делах будет участвовать? Весь проект висит как раз потому, что организатора нет.


Мм-м... Как-бы это... Организационные дела — это и есть в данный момент моя основная работа, плюс еще написание приложений для PocketPC и MSSQL 2000, так сказать — играющий тренер. Хотелось-бы другого . Но, насколько я понял, пока идет обмен мнениями и окончательный выбор архитектуры репортера не сделан. Как только он будет сделан — можно начать сколачивать группу исполнителей. Поскольку только после выбора архитектуры многие потенциальные исполнители окончательно определятся — участвовать в проекте или нет. Например, меня интересует в первую очередь реализация объектной модели RDL на C# применительно к Windows Forms. У кого-то другие предпочтения. Кто-то должен сделать выбор. Вот у меня вопрос — кто этот "кто-то"?
Re[5]: Предложение по генератору
От: clon Россия  
Дата: 20.01.04 06:07
Оценка:
Здравствуйте, avg_sng, Вы писали:

_>А вот здесь лежит очень интересный .pdf


_>http://www.microsoft.com/sql/reporting/techinfo/rdlspec.asp


Большое спасибо — ссылка очень интересна.

Подскажите где можно взять этот самый Reporting Service?

Спасибо.
... << RSDN@Home 1.1.2 stable >>
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
Re[6]: Предложение по генератору
От: avg_sng  
Дата: 20.01.04 14:48
Оценка:
Здравствуйте, clon, Вы писали:

C>Здравствуйте, avg_sng, Вы писали:


_>>А вот здесь лежит очень интересный .pdf


_>>http://www.microsoft.com/sql/reporting/techinfo/rdlspec.asp


C>Большое спасибо — ссылка очень интересна.


C>Подскажите где можно взять этот самый Reporting Service?


C>Спасибо.


Не знаю, мне дали попробовать лица близкие к MS . Но по-моему где-то в недрах MS-овского сайта я натыкался на него (~ 92 Mb для скачивания).
Re: Предложение по генератору
От: Vicont Россия  
Дата: 07.07.04 15:50
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Добрый день,


M>Позвольте предложить некоторые идеи.


M>


Делал я генератор отчетов.
Особенности:
формирования комплекта технологической, конструкторской и прочей документации на основе данных взятых из PDM системы. была принята следующая схема:
У нас есть отчет (шаблон), который состоит из одной или нескольких страниц.
каждая страница содержит сколько-то элементарных элементов: линия, прямоугольник, текст, рисунок и т.д. особый элемент — "таблица", которая состоит из одной или нескольких секций, в которых настраиваются группы, формат отображения, связь с источником данных и т.д. продолжение таблицы — это область, которая определяет продолжение таблицы на других листах. есть также элементы содержания, которые позволяют формировать структуру отчета и содержание. источник данных на сегодня CSV файл (планируется, что будет читаться и XML, а также виртуальная табличка, которая заполняется с помощью плугинов (достоинство в том, что можно в ячейки вставлять эскизы)
Re: Предложение по генератору
От: Serj77  
Дата: 05.04.06 18:46
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Добрый день,


M>Позвольте предложить некоторые идеи.


Что то похожее я видел на http://www.xtreport.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.