Добро пожаловать!

DataExpress – это конструктор приложений баз данных. DX позволяет создать качественную простую программу учета, ничем не уступающую такому же приложению, написанному на языке программирования. DX реализует многие возможности традиционных приложений баз данных: формы ввода данных, фильтрация и поиск данных, печатные формы (шаблоны), проверка введенных значений, вставка значений по умолчанию, подстановка данных при выборе значения из списка, автоматические расчеты в полях, извлечение данных из базы, группировка и расчет итогов, вывод данных в удобном для пользователя виде, настройка интерфейса, разграничения доступа к интерфейсу и многое другое.

Все настройки выполняются в диалоговых окнах в интерактивном режиме. Логика приложения создается при помощи выражений, которые пронизывают программу буквально везде: автоматические расчеты в полях, вычисляемые поля форм и запросов, проверки введенных значений, значения по умолчанию, условия отбора, редактирования и удаления записей, фильтры списков, запросов, отчетов и т. д. С помощью выражений можно реализовать довольно сложную логику.

Однако и мощных выражений может быть мало. Начиная с DataExpress 3 beta, в программу встроен скриптовый движок RemObject Pascal Script, который способен реализовать любую логику. Теперь ваши возможности практически неограничены. Скрипты позволяют управлять почти любым элементом интерфейса программы, изменять внешний вид и поведение стандартных окон, создавать свои варианты окон, управлять другими приложениями с помощью OLE Automation, подключать DLL-библиотеки, создавать пользовательские модули и т. д. И самое главное — вы можете составлять полноценные SQL-запросы к базе. К вашим услугам вся мощь Firebird SQL.

В рамках своих возможностей, DX действительно позволяет вывести разработку приложений баз данных на новый уровень. Кроме того, что разработчику доступно визуальное конструирование форм, программа еще и сама увязывает интерфейс со структурой базы данных. Разработчику не надо задумываться о том, как связать источник данных с той или иной формой, не надо прописывать SQL-выражения с многочисленными join-ами. Формы уже имеют готовый набор команд для манипулирования и поиска данных. В программу уже встроены механизмы разрешения конфликтов при одновременном редактировании записи. Есть готовый механизм разграничения доступа. База данных без всяких изменений доступна в сети (нужен Firebird).

Приложение имеет встроенный дизайнер, в котором собственно и разрабатывается приложение базы данных. Это позволяет за считанные минуты внести изменения в базу и продолжать работу. Никакой компиляции и сборок. В конструкторе предусмотрен механизм обновления конфигурации базы – импорт проекта.

Для кого предназначен DataExpress? Для разработчиков — людей, увлекающихся учетом и базами данных. И для этого совсем необязательно быть программистом.

Доброго времени суток. Нужна ваша помощь в решении следующей задачи.

Имея свой небольшой интернет-магазин, у меня появилась потребность в систематизации и автоматизации текущих рабочих процессов.
В двух словах процессы выглядят так:
1. Приём заказов от покупателей.
2. Формирование заказа на закупку у поставщика
3. Прием отгрузки от поставщика
4. Формирование пакета отправок заказов к клиентам.
5. Получение выручки от отправленных заказов
6. Оплата счета от поставщика за отгрузку.

Каждый процесс влечет за собой необходимость ведения различных таблиц, заполнения различных документов и т.д.

Начав разбираться в имеющихся вариантах решения этой задачи и потратив на это не мало времени, я понял, что относительно простое решение у меня найти не получится.
Сложность заключается в том, что мне не нужно разворачивать гиганта, содержащего в себе CRM, ERP, бухучет и все остальное, а нужно иметь инструмент, учитывающий сложившиеся бизнеспроцессы и умеющий их воспринимать и обрабатывать, помогая и упрощая работу.
Обязательными элементами являются:
1. Ведение базы заказов
2. Ведение базы клиентов
3. Ведение базы поставок
4. Ведение базы расходов
5. Формирование сводных таблиц и отчетов
6. Формирование типовых форм для печати.
7. Экспорт результатов обработки информации в различные форматы (таблицы, XML и т.д.)
Важным для меня является:
1. Относительная простота работы над созданием программы.
2. Желательно OpenSourse.
3. Отсутствие оплаты "за подписку" на определенный срок.

Изучая имеющиеся варианты различных программ, я пришел к выводу, что наиболее оптимальным для меня будет разработка собственного решения с помощью конструктора приложений баз данных.
Я достаточно подробно ознакомился с такими представителями, как Supasoft "Универсальная программа учёта" и DataExpress "Конструктор баз данных". Каждое из них достойно внимания и с их помощью вполне возможно самостоятельно (или с помощью специалистов) создать нужное мне решение. Но каждое из этих решений содержит и свои недостатки. Так, у Supasoft банально "поехал" интерфейс при использовании его на моем ноуте со специфичечкими настройками экрана (разрещение 1920х1080, масштабирование 150%). Нужно отдать должное разработчикам, на мои запросы они отвечали достаточно быстро, а имеющуюся проблему обещали решить с выходом новых версий, т.к. быстро эту беду устранить не получилось.
У DataExpress мне не понравилось, что еще на стадии решения простых задач нужно уходить в элементы написания кода на Pascal (что само по себе меня не пугает, но хочется уходить в код только для решения нетиповых задач).

Прошу вашего совета, каким средством (программой) лучше всего решать эту задачу.
Заранее благодарен каждому за дельный ответ.

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

Напомню, что в момент создания веб-формы в сервисе MTH в автоматическом режиме генерируется база данных, в которую будет сохраняться информация, добавляемая в проект посредством формы. Но если у большинства наших конкурентов дело этим и ограничивается, то мы пошли дальше и реализовали реляционную модель данных.

Не буду долго разглагольствовать и покажу примеры связей (один к одному, один ко многим, многие ко многим), реализованных в системе MyTaskHelper.

Для наглядности создаем несколько таблиц с данными. Пусть это будет:

1) Форма «Клиенты» с полями:

  • ФИО (тип данных — Строка текста);
  • Адрес+индекс (тип данных — Строка теста);
  • Почтовый индекс (тип данных — Целое число);
  • E-mail (тип данных — Email адрес).

2) Форма «Персональные менеджеры» с полями:

  • ФИО (тип данных — Строка текста);
  • E-mail (тип данных — Email адрес);
  • Рабочий телефон (тип данных — строка текста).

3) Форма «Заказы» с полями:

  • Дата создания заказа (тип данных — Дата);
  • Описание товара (тип данных — Многострочный текст);
  • Количество единиц (тип данных — Целое число);
  • Дата отгрузки товара (тип данных — Дата);
  • Отметка об оплате (тип данных — Радиокнопка с двумя значениями: «Оплачено» и «Отгружено под реализацию»).

4) Форма «Поставщики» с полями:

Компания-поставщик (тип данных — Строка текста);
ФИО представителя (тип данных — Строка текста);
E-mail (тип данных — Email адрес);
Рабочий телефон (тип данных — строка текста).

Возможность связать формы между собой в MyTaskHelper.ru реализована предельно просто: для этого имеется отдельный вид поля, имеющий тип данных «Связь».

Связь «один к одному» мы создадим между формами «Клиенты» и «Персональные менеджеры». Для этого заходим в меню Поля=>Добавить новое поле на форму, вводим название поля (пусть это будет «Связь между клиентами и персональными менеджерами») и на вкладке «Дополнительные» выбираем тип данных «Связь».

Для того, чтобы все функционировало так, как мы задумали, на вкладке «Выберите форму» из выпадающего списка выбираем «Персональные менеджеры», в появившемся выпадающем списке указываем, какую колонку показывать (у нас это будет ФИО) и при выборе типа связи выбираем «Один-к-одному» (выпадающий список).

В MTH все это выглядит следующим образом (Рис. 1):

Аналогично настраиваем связь «многие к одному». Такую связь у нас будут иметь таблицы «Клиенты» и «Заказы», т.е. на одного клиента может быть оформлено несколько заказов. Переходим к форме «Заказы», заходим в меню Поля=>Добавить новое поле на форму, вводим название поля (пусть это будет «Связь между клиентами и заказами») и на вкладке «Дополнительные» выбираем тип данных «Связь». Выбираем форму «Клиенты», указываем колонку «ФИО» и тип связи «многие-к-одному» (Радио кнопка).

Связь типа «многие ко многим» будет настроена между таблицами «Клиенты» и «Поставщики», т.к. каждый клиент может иметь нескольких поставщиков, равно как и каждый поставщик имеет несколько клиентов. Отправляемся в форму «Клиенты», переходим в меню «Поля» и добавляем поле с типом данных «Связь». Далее вводим название поля (пусть это будет «Связь между клиентами и поставщиками»). Выбираем форму «Поставщики», указываем колонку «ФИО» и тип связи «многие-ко-многим» (Чекбокс).

Что мы имеем в результате?

А результаты наших манипуляций следующие.

1. Чтобы проверить, правильно ли работает связь «один к одному», переходим в форму «Клиенты» и жмем «Добавить новую запись». Вводим персональные данные клиента, в поле " Связь между клиентами и персональными менеджерами" из выпадающего списка выбираем персонального менеджера, прикрепленного к этому клиенту, а в поле " Связь между клиентами и поставщиками" галочками указываем, с какими поставщиками клиент сотрудничает (Рис.2). Вот и все, мы легко и просто добавили запись в нашу реляционную БД.

2. Для того, чтобы протестировать связь «многие к одному», переходим в форму «Заказы», жмем «Добавить запись» и в поле «Связь между клиентами и заказами» выбираем клиента, которому принадлежит данный заказ (Рис. 3).

3. Связь «многие ко многим» можно протестировать двумя способами. Во-первых, добавляя нового клиента в БД посредством формы «Клиенты» мы видим, что в форме имеется поле «Связь между клиентами и поставщиками», где, проставив галочки, указываем, с какими поставщиками сотрудничает конкретный клиент (Рис. 4).

Аналогично работает связь «многие ко многим» и при добавлении нового поставщика. В этом случае страница добавления новой записи выглядит следующим образом (Рис. 5):

Как видим, в поле «Выберите Клиенты» можно указать, какие клиенты сотрудничают с добавляемым в базу поставщиком.

Преимущества MyTaskHelper в качестве конструктора реляционных баз данных:

  • приемлемая стоимость аккунтов (есть даже бесплатная подписка);
  • экономия средств на отказе от услуг администратора баз данных;
  • возможность создавать БД без знаний каких-либо веб-технологий в общем и языков программирования в частности;
  • вся информация надежно защищена от возможных утерь и неправомерных действий злоумышленников;
  • При необходимости можно легко и быстро создавать самые разные отчеты. К примеру, для того, чтобы узнать, какие клиенты закреплены за конкретным менеджером, заходим в БД «Клиенты», в меню «Поиск» вводим фамилию искомого менеджера и жмем «Найти». Результаты поисков легко сохранить в отдельном отчете, нажав кнопку «Сохранить отчет». Аналогично создаются e-mail или sms-рассылки и т.п.

А глянуть материал о том, что представляет собой MTH в целом, можно в этом хабратопике.