Snap - нова платформа для створення звітів. Частина 1

    Класно, коли звіти роблять не програмісти, а самі користувачі. Але большиство існуючих дизайнерів звітів шалено складні. Уявіть, як було б здорово, якби ваш головний бухгалтер міг конструювати свої звіти прямо в Ворді! Фантастика? Зовсім ні. Це Snap від DevExpress .
 
Подивіться своїми очима, як простий у використанні цей контрол для програмістів і кінцевих користувачів:
 
  
Під катом ви знайдете докладний опис всього, що вміє робити Snap на поточний момент.
 
Ми не стали писати новий продукт з нуля. За основу був узятий наш Rich Text Editor , який реалізує всю інфраструктуру для створення складних документів — як з інтерфейсу, так і повністю з коду. Використання Rich Text Editor дозволяє зручно і швидко створювати шаблони для простих і master-detail звітів, не вимагаючи додаткового програмного забезпечення , і потім міняти їх , не прив'язуючись до внутрішнього пристрою конкретного формату . Серйозним плюсом до цього є можливість використання кінцевим користувачем навичок роботи з Microsoft Word.
 
Потім ми додали використовується в наших компонентах майстер підготовки джерел даних, що дозволяє користувачам додавати потрібні для роботи дані практично без втручання розробників.
 
 
 
Задавати джерела даних можна не тільки через інтерфейс користувача. Передбачені можливості вибору — в режимі конструктора або динамічно з коду, на етапі виконання програми. Після того, як джерело даних був вибраний і відповідним чином налаштований, можна приступати до створення повноцінних звітів.
 
Структура даних буде візуально представлена ​​на панелі оглядача. Для того, щоб отримати готовий документ, досить просто вибрати необхідні поля і перетягнути їх у потрібне місце, або ж просто двічі клацнути по них — в цьому випадку вони додадуться відповідно з поточним становищем каретки. Якщо потрібно додати дані у вже створену таблицю, то це можна легко зробити за допомогою хот-зон.
 
 
 
При цьому відразу будуть використані реальні дані — фактично, дизайнер не просто створює заповнювачі для динамічного вмісту, а показує підсумковий вид звіту. Єдина відмінність від кінцевого результату полягає в тому, що в режимі розробки використовується обмежена кількість записів. Вибрані дані автоматично будуть згруповані в таблицю, але при бажанні їх легко сконвертировать на звичайний текст.
 
Також процес вставки даних можна більш тонко налаштувати, використовуючи продуманий набір подій, повідомляючих про кожен крок підготовки документа.
 
 
 
При цьому для одного звіту можна використовувати скільки завгодно незалежних джерел даних, а використовуючи таблиці або многоколоночной розмітку документа, їх можна легко порівнювати.
 
 
 
Важливо, що Snap є WYSIWYG редактором в повному розумінні цього слова. Незалежно від того, чи створюєте ви новий звіт, модифікуєте наявний або використовуєте функцію попереднього перегляду перед друком, документ виглядає в точності так, як він буде виглядати на папері.
 
Крім простої вставки даних в документ, Snap надає значний набір функцій для їх обробки і представлення в потрібному вигляді, в який входять можливості групування, сортування, фільтрації, аналізу та розрахунків, використання параметрів і обчислюваних полів, форматування результатів.
 
 
 
Не всі дані зручно представляти у вигляді простого тексту. Snap має цілий арсенал засобів візуалізації даних, серед яких чекбокси, зображення, штрих-коди, графіки і міні-діаграми.
 
 
 
Жоден інструмент створення звітів не можна назвати повноцінним, якщо він не надає простого і зручного способу створювати ієрархічні звіти.
 
 
 
Широко поширеним сценарієм, на якому я хотів би зупинитися докладніше, є mail merge — створення великого числа однотипних документів на основі загального шаблону, зокрема, підготовка поштової розсилки з витяганням імен і адрес з бази даних. Для того, щоб переключити документ в режим підготовки такого шаблону, досить просто вибрати відповідний пункт контекстного меню для одного з доданих джерел даних.
 
 
 
Зрозуміло, вибрати подібним чином джерело даних можна і з коду. Після цього Snap розглядатиме весь документ як шаблон, який повинен бути повторений для кожного запису в джерелі. При цьому режим mail merge також підтримує ієрархічні дані для створення звітів.
 
 
 
Після того, як в шаблон додані потрібні дані, їх можна обробляти, як і у випадку звичайного звіту. Можна виконати сортування, щоб упорядкувати запису залежно від значення одного або декількох полів.
 
 
 
А можна відфільтрувати дані, щоб показати тільки необхідну інформацію. При цьому Snap надає два можливих сценарії фільтрації даних. Можна просто явно вибрати ті записи, які повинні бути показані:
 
 
 
Якщо ж простого вибору недостатньо, можна створити складну умову вибірки, використовуючи відповідний діалог:
 
 
 
Тепер, коли все готово, можна подивитися результат для конкретної запису:
 
 
 
Або отримати остаточний результат, пославши звіт на друк, секспортіровать його в будь підтримуваний формат (наприклад, doc, docx, rtf, odt, html, mht, pdf) або вивести в окреме вікно в режимі попереднього перегляду. Також можна вибрати, які записи повинні увійти в підсумковий документ і як відокремити кожну із записів.
 
 
 
Оскільки операція створення результуючого звіту може займати значний час, ми подбали про те, щоб вона виконувалася в окремому потоці, дозволяючи взаємодіяти з основним додатком, спостерігати за ходом виконання генерації і при необхідності, переривати створення звіту.
 
 
 
Нудна стандартна форма може бути з легкістю замінена на щось більш симпатичне:
 
 
 
А тепер, ложка дьогтю — в даний час Snap представлений тільки на платформі WinForms.
 
Тим не менш, дуже сподіваюся, що продукт вас зацікавив. Познайомитися з ним ближче можна, скачавши триальную версію .
 
У другій частині статті ми заглянемо під капот і ближче познайомимося з технічними деталями. Я продемонструю роботу з API на прикладі популярних завдань, що виникають при підготовці звіту і постараюся довести, що простота використання кінцевим користувачем була досягнута не на шкоду функціональності. Якщо у вас виникли якісь питання — задавайте їх у коментарях, буду радий відповісти всім.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.