Valentina - набір інструментів, що включає: Valentina DB (новий SQL-сервер), Valentina Studio (інструмент управління базами даних), Valentina Report (графічна утиліта для генерації звітів, які можуть бути використані в додатках, наприклад PHP) і пов'язаний з ними набір інструментів розробки (званий ADK).
У цій статті ми розглянемо:
- використання Valentina Studio для керування базами даних MySQL
- як використовувати Valentina Report для створення представницьких звітів
Розглядати Valentina Database ми не будемо, так як неможливо зрозуміти новий сервер баз даних і розкрити роботу його внутрішнього механізму в такій короткій статті.
Valentina Studio
Інструмент управління базами даних Valentina Studio представлений двома версіями. Перша безкоштовна і доступна для вільного скачування тут. Друга версія - Pro, з великим набором можливостей, і коштує вона 200 $ за екземпляр. Обидві версії підтримують платформи Windows, Mac і Linux, що робить цей інструмент кросплатформним.
У цій статті я буду використовувати Valentina Studio Pro.
Швидкість завантаження початкового екрана програми досить висока, по крайней мере вище, ніж в тих інструментах, що я використовую. Основний інтерфейс представлений трьома панелями:
Мал. 1 Вікно вітання
- Servers. надає можливість управління підключеннями. Підтримує чотири типи серверів: MySQL, PostgreeSQL, Valentina і ODBC. Підтримує як локальні, так і віддалені підключення. У моєму випадку можна бачити два віддалених і одне локальне підключення. Червона точка перед ім'ям підключення (або "Закладка" в термінах Valentina) означає, що сервер в даний момент недоступний. Зелена точка означає, що сервер запущений і працює.
- Database. підтримує управління файловими базами даних. В даний час підтримує Valentina DB і SQLite
- Projects. зазвичай використовується для генерації звітів. "Звіт", згенерований за допомогою Valentina може розміщуватися локально або віддалено. Проект звіту управляє джерелом, запитом і зовнішнім виглядом звіту. Поговоримо про це пізніше
Після настройки сервера, бази даних цього сервера будуть відображені у вигляді набору каскадних панелей:
Ще один вид, який я не так часто використовую - деревоподібна структура:
Коли обрана таблиця, її дані відображаються в табличному вигляді; якщо вибрано поле, то в цьому випадку Ви зможете бачити тільки колонка з даними. У табличному вигляді можна експортувати запис в CSV або SQL.
Також даний вид пропонує вікно діалогу, куди можна вводити запити SQL. В даному вікні реалізована підсвічування синтаксису і автодоповнення коду.
Коротше кажучи, Valentina Studio володіє багатим, але все ще вимагає доопрацювань набором функцій. Наприклад, не вистачає фільтрів і навігації по тому, де ви зараз перебуваєте в табличному вигляді або в результатах виконання SQL запиту. Це трохи ускладнює роботу. Також, на відміну від phpMyAdmin, цей інструмент не виведе SQL-запит для останньої здійсненої операції (наприклад, після вставки поля). У більшості випадків це створює незручності.
Також більше часу займає створення таблиці - завдання полів, індексів, первинних ключів, і т.д. Визначення первинних / зовнішніх ключів в більшості випадків менш інтуїтивно, ніж схожий функціонал в інших додатках.
Поведінка призначеного для користувача інтерфейсу також не радує послідовністю. Наприклад, в деяких завданнях (наприклад, завдання типу поля), необхідно двічі клікнути по стрілці, щоб викликати спливає діалог. При виконанні інших завдань (наприклад, зміна движка таблиці, або кодування) необхідний одиничний клік. Така непослідовність може вводити в замішання і дратувати кінцевого користувача.
І, нарешті, можна зрозуміти, коли деякі додаткові функції відключені в безкоштовній версії. Але функціональність Valentino Studio Free і Pro занадто сильно різниться, і це не завжди виправдано.
Я б дав Valentina Studio (Free і Pro) оцінку 3,5 з 5. Їх можна використовувати, але вони вимагають доопрацювання - особливо, щоб їх робота могла виправдати вартість в 200 $. Початківці можуть знайти безкоштовну версію досить непоганий, і насолоджуватися їй абсолютно безкоштовно. Рішення про оновлення до Pro-версії краще приймати після деякого часу використання цього продукту.
Тепер поглянемо на модуль звітів.
Valentina Report
Мабуть, цю функцію я назву найцікавішою в Valenina Studio. Мені завжди бракувало звітів по моїй колекції книг, так що я з радістю продемонструю створення звіту по колекції книг за допомогою програми на PHP.
C допомогою Valentina Studio (і Valentina Report, Valentina Server), дана задача виходить досить простий.
Звіт Valentina Report - єдиний файл проекту з розширенням vsp. На початковому екрані (рис. 1) вибираємо New Project | Local (Новий проект | Локальний проект), вводимо ім'я нашого першого звіту, і потім зберігаємо файл в будь-яку вподобану місце. Вікно управління звітами вигляди так:
Проект звіту містить як мінімум 3 елементи:
- Джерело даних (rsywx_test). Можна вибирати з діалогу з усіма зареєстрованими сполуками і базами даних
- Як мінімум один запит (q_book_by_location). Запит відноситься до джерела даних, і може бути будь-яким коректним виразом SQL. Тут немає підтримки візуального упорядника запиту, але є підсвічування синтаксису і автодоповнення (ключові слова SQL і імена таблиць / полів).
- Шаблон звіту (rpt_location). Є майстер, який допомагає скласти шаблон (які відображаються поля, заголовок, підвал, угруповання, сортування та ін.)
Так як ми будемо використовувати угруповання і сортування в дизайні звіту, то під час складання запиту ми будемо вводити тільки його основну частину (тільки перерахувавши поля, і опустивши вираження ORDER BY. GROUP BY.
Укладач звітів Valentina Report - досить потужний інструмент, який дозволяє змінити в звіті майже все: стилі (шрифт, розмір, колір, тіні, кордони, ін.), Схему (позицію, відступи, розміри, вирівнювання, і т.д.), функції об'єднання (кількість, сума, і т.д.)
Зауваження. в безкоштовній версії кнопка "Зберегти" відключена, що робить даний інструмент практично марним. Я б хотів запропонувати команді Valentina додати цю функцію в безкоштовну версію.
Зауваження. Для відображення китайських символів необхідно вибрати відповідний шрифт, інакше з дефолтних Arial китайські символи будуть виглядати як порожні блоки.
Зауваження. хоча під час роботи майстра можна вибирати з кількох тем, немає можливість змінити тему оформлення згодом, що трохи незручно.
Після того, як ми завершили процес оформлення звіту, його можна зберегти і залишити інтерфейс створення звіту. Далі ми побачимо, як можна викликати звіт з PHP скрипта, і як його вивести в різних форматах (будуть показані PDF і HTML).
Викликаємо звіт Valentina з PHP
Для того, щоб використовувати звіти Valentina в PHP, необхідно підключити два розширення Valentina. У моїй інсталяції на Windows це такі DLL: php5? _pdo_valentina.dll і php5? _valentina. Трохи дивним є те, що ці два файли не розміщені в директорії інсталяції Valentina Studio, але знаходяться в <пользователь>\ Documents \ Paradigma Software \ VPHP_5
На даний момент Valentina Studio офіційно підтримує бібліотеки для PHP 5.3 і 5.4. Бібліотека для 5.5 (скомпільована під VC9) доступна за запитом, а компільованою під VC11 ще немає. Це змусило мене знизити версію мого пакета EasyPHP.
Також нам необхідний Valentina Report Server (вбудований в Valentina Server). Його можна завантажити тут (для Windows, Linux і Mac).
Щоб використовувати звіти в PHP, необхідно зробити деякі приготування:
- Встановити Valentina Server (і Report Server). У базовій інсталяції буде прістутствовать користувач за замовчуванням 'sa' (з паролем 'sa')
- Скопіювати файл проекту vsp в директорію projects сервера (наприклад, c: \ Program Files \ Paradigma Software \ VServer x64 \ projects \)
- Знову запустити Valentina Studio, і (якщо це ще не зроблено), створити Закладку на тільки що встановлений Valentina Server.
У локальному Valentina Server з'явиться вузол під назвою "Projects", в якому буде видно наш vsp файл. Щоб його зареєструвати, необхідно натиснути кнопку "Register"
Тепер можна відкрити цей звіт на "сервері", щоб переконатися, що все виглядає належним чином.
Отже, тепер у нас є сервер звітів, сервері MySQL, і ми приступили до розробки клієнтської частини на PHP. Загальна структура цієї трирівневої системи більш-менш нагадує таку схему:
Можливо, що така схема здасться вам зайвою, оскільки ми робимо просту демку, але в великих програмах, і в оточенні з великою кількістю серверів така структура може мати свої переваги.
Використовувати раніше розроблений нами звіт в PHP досить просто. Розглянемо, як можна на його основі згенерувати HTML звіт.
У Valentina є керівництво до його API. а також керівництво по зв'язці з PHP. так що не буде зайвим з ним ознайомитися, щоб зрозуміти, що означають викликаються методи і їх параметри.
У загальних рисах, процес такий:
- Відкриваємо з'єднання з Valentina Server (ні з сервером MySQL)
- Отримуємо посилання на проект, створюємо звіт з необхідними даними
- Готуємо звіт і виводимо його в HTML
- Чистимо за собою
Всі перераховані вище вираження говорять самі за себе, за винятком цього:
Ця функція не має опису в керівництві користувача (інформація але є для схожою функції vproject_make_new_report), так що я можу ґрунтуватися лише на коді з прикладів, які надає Valentina.
Перші два параметри прості. Один для ідентифікатора ресурсу ($ project), а другий для імені звіту (rpt_location), який також може бути і цілим числом, що починається з 1.
Ось що про це говорить Valentina: на стадії проектування ми могли використовувати тестовий сервер, а для нього конфігурація буде відрізнятися від реального. А зазначенням / перевизначенням з'єднання ми можемо перемикатися між тестовими і реальними серверами без необхідності переробляти файл звіту.
Четвертим параметром передаємо рядок запиту для вибірки даних. Зачекайте! Але ж ми вбудували запит в файл звіту! Навіщо нам ще раз передавати запит?
З мого листування з Valentina я отримав таку саму відповідь, як і на попереднє запитання.
Гнучкість в перевизначенні з'єднання і рядки запиту в даній функції може допомогти тільки в тому випадку, якщо на реальному сервері набір таблиць зовсім відрізняється від такого на сервері розробника. На мій погляд, такі ситуації можуть говорити лише про погане проектуванні, і таких ситуацій треба уникати.
Для того, щоб вивести звіт у PDF, необхідно внести лише два невеликих зміни:
Виклик функції header обов'язковий, в іншому випадку ми побачимо на екрані безглуздий набір символів. Результат буде відображено в браузері, і його можна зберегти для подальшого використання.
висновок
У даній статті я розповів вам про новому гравцеві на полі: Valentina. Ми показали, як використовувати графічний інструмент для управління базами даних (Valentina Studio), а також сервер звітів (Report Server, вбудований в Valentina Server).
Загалом, Valentina Studio можна використовувати, але їй не вистачає деяких особливостей, які могли б поліпшити зручність роботи і зробити роботу з базами даних більш ефективною.
Сервер звітів хороший і швидкий, і підходить компаніям, які використовують внутрішній сайт для генерації звітів для своїх працівників. Вони можуть заощадити чимало часу. Також звіти можуть бути зручні тим компаніям, які хотіли б надавати динамічні звіти своїм відвідувачам.
Як би там не було, на мій погляд, для його API є величезний простір для поліпшень і доробок. Я вже згадував випадок з функцією vproject_make_new_report_with_datasource.
Незважаючи на всі зауваження, я рекомендую Valentina Server і Valentina Studio для персонального використання, і використання в бізнес-системах. І я з нетерпінням чекаю, що цей набір інструментів буде і далі розвиватися, стаючи все більш зрілим і популярним.
5 останніх уроків рубрики "Різне"
За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!
Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!
Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.
Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!