Цитата: twix ➤ Ну, т.е., ваше приложение - просто UI к БД. Логика тоже примитивная, наверное? Ну, описанная конфигами, а не кодом.
Логика учетной системы масштаба предприятия не может быть примитивной. Там около 1500 оконных диалогов, если что. Смотря что под логикой понимать. Я показал, как создается таблица в базе данных и автоматически создаются процедуры для работы с ней. Бизнес логика пишется в коде. Код размещается в эмбедах (точках вставки). Также часть логики может быть оформлена в виде классов, в виде процедур, а вызовы их размещены в эмбедах.
Вот так выглядит дерево эмбедов под кнопкой "ОК" в приходной накладной.
Это один выбранный эмбед.
Это текст класса. Тут видно, как подключаются функции win api прямой линковкой (можно еще динамически подгружать отдельные dll).
Цитата: twix ➤ Я про физические документы. Способна ваша система сгенерировать из кучи записей в БД вордовский документ, а после сохранения его юзвверем, обратно его разобрать, и обновить записи в БД? А без строчки кода?
С вордом мало работают, только создание договоров всяких по настраиваемым шаблонам. В основном, пользуются электронными таблицами (excel или calc). Вначале сохранить, что-то в электронной таблице сделать, такое применяется, но только для отдельных ситуаций. Универсального решения не делал, не было запросов от пользователей. Я слышал, что а Аксапте такой подход популярен.
Цитата: twix ➤ Не важно, как хранятся сущности. Важно как разрешаются конфликты, особенно те, что нарушают логику.
Ну, например, у сущности имеется дюжина свойств, и значение зависит от комбинации предыдущих десяти, некоторые из которых так же могут зависеть друг от друга, и состояния других сущностей, а могут не зависеть (опять-таки, в зависимости от их значений и комбинаций). Два пользователя одновремено открывают сущность в форме, чтобы внести изменения, и первый создаёт и сохраняет одну комбинацию, а второй - другую, которая не валидна при комбинации первого. Что произойдёт? Как это разруливается без кода?
Я лично предпочитаю простые сущности. Их и понять проще, и использовать надёжнее, и логика вся сконцентрирована в коде, а не размазана по проекту(ам). Но бизнес такой бизнес - иногда у него реально страшные хотелки. А если ещё и разрабов наберут по объявлению... там уже будет всё равно - десктопное у тебя приложение или вэб.
Если я правильно понял вопрос, то, когда пользователь открывает на редактирование "сущность", то в системной таблице в базе данных делается запись об этом, когда закрывает, то удаляется. Другой пользователь при попытке открыть на редактирование открытое, получает сообщение, кто с этим уже работает и открывает в режиме просмотра. На случай, если вдруг что-то аварийно отвалится системная таблица очищается при следующем подключении пользователя или можно сделать административный сброс. Если ушел попить кофе, оставив "сущность" открытой на редактирование, то всегда известно, кто это сделал, его можно найти или отрубить из приложения. Бывают некоторые ситуацию, которые разруливаются особым способом. Например, если инвентаризацию проводят частями и задействованы разные люди, то создаются несколько отдельных документов, потом их можно объединить в один. В общем, это все уже по факту поступления запросов от пользователей, все не предугадаешь. Таких нюансов много. С точки зрения реализации, описанные блокировки делаются полностью автоматически. Какие-то частные случае когда-как. Тут надо понимать, что в результате все это код, только код может быть написан вручную или сгенерен автоматически специально разработанными для этого шаблонами.
Цитата: twix ➤ Ну, т.е., заточено под одну платформу, под одну ОС. Ставим минус. За ActiveX - ещё два минуса.
И всё же как оно - пользоваться хотя бы с гейпада удалённым доступом к рабочему столу и приложением, в котором кнопки и табы насованы буквально друг на друга?
Персонально я ActiveX не люблю и не использую. Заточено под винду. То есть, на предприятии должен быть хотя бы один компьютер с виндой. На рабочих станциях что угодно. Я к этому отношусь спокойно. В условиях ограниченности ресурсов поддерживать разные платформы затруднительно. Лучше сосредоточиться на чем-то одном и не распыляться. Только небольшие приложения я делаю для веба или мобильных устройств. Но все они только для дополнения функциональности основного приложения.
С отрисовкой мелко в дизайнере на скриншоте есть проблема. Это проблема дизайнера, а не получающегося приложения. Среда Clarion 11 сделана на с#, там другие единицы измерения, чем в win32, поэтому имеются искажения. В конечном приложении все нормально. Интерфейс проектируется с учетом поддержки разрешания 600x800, так как такие мониторы еще используются. Стандартный размер шрифта 8. Но в настройке приложения шрифт можно увеличить до 10, все окна автоматически масштабируются. Аналогично можно задать размер шрифта и высоту строк для списков.