powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Набросал структуру для генерации GUI
25 сообщений из 63, страница 1 из 3
Набросал структуру для генерации GUI
    #38127278
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покритикуйте. Back-end, ессно. Ну, хотя бы взлетит - не взлетит.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
-- типы пунктов меню (folder, grid, procedure)
create table ui$menu_item_type (
  id varchar2(20) not null primary key, -- код типа
  name varchar2(100) not null -- название
);

-- пункты меню. Если тип включить в ПК, то ссылки с наследников будут более строгими - 
-- можно повесить check (ui$menu_item_grid.item_type='grid')
create table ui$menu_item (
  id integer not null primary key, -- код записи
  name varchar2(100) not null, -- текст
  parent integer references ui$menu_item(id), -- папка
  item_type varchar2(20) not null references ui$menu_item_type(id), -- тип пункта меню
  index integer not null, -- порядковый номер, для сортировки внутри папки
  custom_class varchar2(100) -- класс для отображения, для настройки более сложного поведения
);

-- простые типы данных
create table ui$data_type (
  id varchar2(20) not null primary key,
  name varchar2(100) not null -- название
);

-- возможные процедуры к вызову
create table ui$procedure (
  name varchar2(200) not null primary key, -- название (схема.пакет.процедура)
  custom_class varchar2(100) -- класс для отображения, для настройки более сложного поведения
);

-- описание датасета
create table ui$dataset (
  name varchar2(200) not null primary key, -- название
  select_procedure varchar2(200) not null references ui$procedure(name), -- курсор
  key_fields varchar2(100) not null, -- ключевые поля (через запятую, нарушение 1 НФ!)
  parent_field varchar2(100) -- поле предка, если иерархия
);

-- описание скаляра - поля набора данных или параметра процедуры
create table ui$scalar (
  id integer not null primary key, -- код записи
  name varchar2(100) not null, -- название
  user_name varchar2(100) not null, -- показываемое название
  data_type varchar2(20) not null references ui$data_type(id), -- тип данных
  links_to varchar2(200) references ui$dataset(name) -- ссылка на датасет для выбора значения. 
    -- вопрос, как быть с FK по более чем одному полю
);

-- описания параметров процедуры
create table ui$procedure_param (
  procedure varchar2(200) not null references ui$procedure(name), -- процедура
  param integer not null references ui$scalar(id), -- параметр
  required integer not null check (required in (0,1)), -- обязательность
  default_value varchar2(200), -- значение по умолчанию, кодированное, пока без подробностей
  primary key (procedure, param)
);

-- описание полей датасета для показа грида
create table ui$dataset_field (
  dataset varchar2(200) not null references ui$dataset(name), -- набор данных
  field integer not null references ui$scalar(id), -- поле
  visible integer not null default 1 check (visible in (0,1)), -- видимость
  index integer, -- порядковый номер для отображения
  group varchar2(100), -- имя группы, для показа бэнда
  primary key (dataset, field)
);

-- пункт меню типа "грид", наследник от ui$menu_item. Если нет процедур, то только просмотр. Он же и отчет.
create table ui$menu_item_grid (
  id integer not null primary key references ui$menu_item(id), -- код записи
  dataset varchar2(200) not null references ui$dataset(name), -- набор данных
  add_procedure varchar2(200) references ui$procedure, -- процедура добавления записи
  edit_procedure varchar2(200) references ui$procedure, -- процедура редактирования записи
  del_procedure varchar2(200) references ui$procedure, -- процедура удаления записи
);

-- пункт меню типа "процедура"
create table ui$menu_item_procedure (
  id integer not null primary key references ui$menu_item(id), -- код записи
  procedure not null varchar2(200) references ui$procedure -- процедура
);

-- бинд полей датасета к параметрам процедуры. 
-- вместе с ui$procedure_param описывает интерфейс вызов процедуры, например редактирования записи
create table ui$field_to_param (
  dataset varchar2(200) not null references ui$dataset(name), -- набор данных
  field integer not null references ui$scalar(id), -- поле
  procedure varchar2(200) not null references ui$procedure, -- процедура
  param integer references ui$scalar(id), -- параметр, если пуст то поле информационное
  read_only integer not null default 0 check (read_only in (0,1)), -- надо ли, с учетом существования пред. поля?
  visible integer not null default 1 check (visible in (0,1)), -- показывать
  index integer, -- порядковый номер в группе
  group varchar2(200), -- группа
  default_value varchar2(200), -- значение по умолчанию
  primary key (dataset, field, procedure)
);

-- какие процедуры можно вызывать напрямую из этого грида. бинды берутся из ui$field_to_param
-- дополнительные кнопки на гриде
create table ui$grid_proc (
  item integer not null primary key references ui$menu_item_grid(id), -- грид
  name varchar2(200) not null, -- текст кнопки
  procedure varchar2(200) not null references ui$procedure(name), -- процедура для вызова
  need_refresh integer not null default 0 check (need_refresh in (0,1)) -- нужно ли обновление грида после вызова
);

...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127287
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это даже не нулевое, это минус тысячное приближение. Высасывать такие "генераторы" из пальца, по моему, дело абсолютно бесполезное и бесперспективное. Если бы у вас было за плечами создание конкретных прикладных систем и вы бы облегчали свой труд - замена программирование конфигурированием - тогда был бы шанс повторить путь искры или випроса.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127320
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

Если хотя бы 20% функционала будет определяться таким образом, я сочту вложение сил в эту систему оправданным. Никто же не мешает сделать тип "пункт меню произвольного класса без предварительного описания" и фигачить в нем какой угодно код для отображения чего и как угодно.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127334
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, описание и сделано минималистичным для того, чтобы
- можно было создать наследников для конкретных форм и в них прописать необходимое дополнительное поведение
- не создавать соблазна раздувать систему декларации вплоть до попиксельного описания
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127367
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из вашего скрипта просматриватеся только меню и простой плоский грид с данными. Это, простите, совсем уж убого.

Вы б начали с общей концепции дизайна интерфейса. Какие формы визуального отображения сложно устроенных данных вы предполагаете ? Могут ли они контейнироваться и как ? Как взаимодействуют друг с другом ?

Без ответов на эти вопросы ваши структуры данных будут висеть в сферическом вакууме.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127479
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShrПокритикуйте. Back-end, ессно. Ну, хотя бы взлетит - не взлетит.
не взлетит. Шансов просто нет.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127688
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, я совсем неточно выразился. Я не предполагал полного описания интерфейса и построения его исключительно на данных из базы (этой схемы). Скорее, это возможность для быстрого создания простого, но функционально достаточного интерфейса типа показать/отредактировать плоский справочник с возможностью его дальнейшей доработки в коде клиента.

Вот вводные:
- Вся логика в базе, в процедурах, включая запросы для показа данных
- Клиент - сейчас толстый на delphi
- Есть набор базовых форм и классов (грид, редактор обьекта, вызов процедуры) со стандартной функциональносью
- Для каждой формы (реализации пункта меню) на данный момент есть наследник от стандартного класса, в коде которого и описано все поведение

Хочется повысить уровень абстракции:
- При создании нового режима описывать базовую функциональность в декларативном стиле для самых простых случаев (показ данных, процедуры, редактирование объектов). Желательно для процентов 30 тупых справочников не писать кода
- На этой же платформе описывать тот же интерфейс для реализации на внутреннем портале на php
- Для случаев посложнее все так же наследуемся и дописываем что надо в коде клиента

Далее, что касается сложно устроенных данных и агрегирования элементов интерфейса - тут, похоже, пока полный провал. Надо дальше думать. В текущей схеме есть только:
- ввод параметров процедуры
- вывод датасета
- связь между ними

В принципе, этого достаточно для блочной постройки интерфейса:
- собственно грид как результат вызова процедуры (ввод параметров)
- редактор со встроенным child-гридом
- мастер-деталь
- отчет или процедура, вызываемый на основе текущей записи грида

В схеме данных надо только выделить блоки, более строго сформулировать интерфейсы взаимодействия и добавить граф связей между блоками.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127711
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот то-то и оно, что думать надо.

У меня, как и многих форумчан есть собственный велосипедик, везущий на себе ВСЕ тяготы презентационного слоя приложения. Для оживления данных во всех формах, открытия и переходах между формами с сохранением контекста, поиска и фильтрации данных кода не нужно ни одной строки - все за счет настройки. Обошлось это удовольствие в пару-тройку дюжин таблиц.

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

Мой более продвинутый коллега сделал идеологически такой же механизм на дот нете. Более красивый, мощный и удобный. Не знаю только, захочет ли он поучаствовать в этой ветке.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127743
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, всю настройку в таблицы я класть не хочу. Тогда теряется возможность еще более тонкой настройки вроде связей между отдельными контролами либо в генератор интерфейса надо запихивать чуть ли ни каждую заказанную фичу (а у заказчиков богатая фантазия), что трудоемко, сильно засоряет декларации всякой мелочью, усложняет систему и её поддержку - в общем, не факт что в итоге оправдано. Короче, тут нужна золотая середина, и слишком большими шагами в её поисках я двигаться не буду.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127932
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если система предназначена только редактирования "тупых" справочников, то может и взлетит,
так как , что либо сложнее с помощью такой системы вряд ли удастся построить.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38127944
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShrНет, всю настройку в таблицы я класть не хочу. Тогда теряется возможность еще более тонкой настройки вроде связей между отдельными контролами либо в генератор интерфейса надо запихивать чуть ли ни каждую заказанную фичу (а у заказчиков богатая фантазия), что трудоемко, сильно засоряет декларации всякой мелочью, усложняет систему и её поддержку - в общем, не факт что в итоге оправдано. Короче, тут нужна золотая середина, и слишком большими шагами в её поисках я двигаться не буду.
На мой взгляд вы сузили постановку задчи до недопустимо ничтожной величины. Смысла развивать топик в таком направлении я не вижу. Для практических целей такой "интерфейс" не тянет.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38128052
д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
д
Гость
П-Л... Из дома смогу приложить принтскрин схемы данных и рабочего окна системы.
Мой более продвинутый коллега сделал идеологически такой же механизм на дот нете.
Более красивый, мощный и удобный. Не знаю только, захочет ли он поучаствовать в этой ветке.l!! даже, если ТС не откликнется на это - не забудьте !!!
думаю - я не одинок в этой просьбе


ТС - сорри




вау
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38128166
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительДля практических целей такой "интерфейс" не тянет.Он не тянул бы в случае коробочного решения, которое невозможно (ну, почти :) доработать ручками после выпуска. Мне не нужен путь искры, у меня не тот случай. В моем случае (внутрикорпоративная система) очень даже тянет, потому как расширяется в любую нужную сторону непосредственно в коде клиента.
Еще раз, ожидания простые - есть 20-30% форм будут создаваться без написания кода клиента - мне этого будет достаточно.
Тем более что в реализации по умолчанию будет и поиск и сортировка и фильтры и группировка и экспорт в 2-3 формата, и связи между отдельными наборами данных. Для чуть более чем плоских отчетов - понадобится дополнительное описание, конечно.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38128170
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую описать еще разок.
Если представить шкалу развития автоматизации gui как:
1 - создание каждой формы с 0
10 - генерация gui полностью на основании описания, включая дизайнер непосредственно в приложении и скрипты как обработчики событий (искра)

то я хочу перейти с 3 (есть набор базовых классов и форм) на 4 (структура интерфейса описана в базе, некоторая часть его отображается без кода вообще) примерно стадию, дальше мне пока не надо.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38128252
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дП-Л... Из дома смогу приложить принтскрин схемы данных и рабочего окна системы.
Мой более продвинутый коллега сделал идеологически такой же механизм на дот нете.
Более красивый, мощный и удобный. Не знаю только, захочет ли он поучаствовать в этой ветке.l!! даже, если ТС не откликнется на это - не забудьте !!!
думаю - я не одинок в этой просьбе


ТС - сорри




вау
Теперь смогу только сегодня вечером...
В качестве компенсации пока расскажу/покажу на пальцах.
Прикладные формы трех типов.
Форма-карточка.
Имеет
- заголовок, в котором в сжатом виде выводится описание объекта (типа склееные номер, наименования),
- (опционально) область главных данных - небольшое количество наиболее важных полей.
- (опционально) набор вкладок. На каждой вкладке находится набор полей россыпью или вложенные таблицы детальных для текущего объекта данных (гриды). Вложенные таблицы имеют над собой (опционально) область “управляющих контролов” – комбобоксы для фильтрации, сортировки, строку ввода образца для мгновенного поиска.

Имеется возможность встраивать в форму-карточку "стандартные вкладки"
- один сгенерированый документ (ворд) определенного типа по данным текущей записи
- набор сгенерированных документов разных типов по данным текущей записи
- единственный вложенный документ (файл любого типа – тифф, пдф, …)
- набор вложенных документов (файлов любого типа)

Формирование документов ворд по данным бизнес-сущности настраивается. Есть всякие примочки для получения безукоризненных документов типа склонения ФИО в разных падежах, обращения г-н/г-жа, всякие суммы/проценты прописью и т.п.

Форма-таблица.
Имеет одну или несколько зон, на каждой зоне
- (опционально) область “управляющих контролов” – комбобоксы для фильтрации, сортировки, строку ввода образца для мгновенного поиска.
- (опционально) вложенную таблицу данных в табличном виде (грид).

Гриды разных зон могут (и, как правило чаще всего так и есть) связываться друг с другом как мастер-детальные.

Форма-структура.
Является неким аналогом проводника с деревом объектов в левой части и карточкой текущего узла в правой части. Для корневого уровня в правой части чаще всего выводится грид самых верхних объектов. При выборе какого-либо узла в левой части в правой части выводится форма-карточка именно этого объекта. Т.е. одна и та же форма-карточка объекта обычно используется дважды: как самостоятельная карточка и как правая часть в форме-структуре.

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

Из грида можно выгружать отчеты в эксель в разных форматах, плоские и ОЛАП. Выгрузка отчетов, разумеется, тоже настраивается.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38129677
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполняю просьбу.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38129703
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форма-конструктор прикладных форм. В ней открыта как раз она сама, как объект настройки/конфигурирования. Так сказать, ассемблер, написанный на ассемблере. Вкладок много, на каждой задаются данные по какому-либо аспекту конфигурирования.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38413979
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-ЛВы б начали с общей концепции дизайна интерфейса. Какие формы визуального отображения сложно устроенных данных вы предполагаете ? Могут ли они контейнироваться и как ? Как взаимодействуют друг с другом ?
Пора, пожалуй.
Формы отображения (блоки интерфейса) бывают двух видов - отображение процедуры и формы.
Процедура - это фильтр (набор входных параметров) + грид (возможно дерево), если процедура возвращает курсор (набор данных) либо ввод параметров для её вызова.
Форма - это контейнер из блоков. Все блоки в форме привязаны к панелям, для задания вида отображения в виде иерархии.

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

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

Написаны процедуры для автоматической генерации интерфейса (включая код процедур редактирования и выборки) для редактирования таблицы, для отображения отдельной процедуры.

Пример дополнения блока (форма авторизации):

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
unit uAuthorizeFrame;

interface

uses
  ...

type
  TAuthorizeFrame = class (TProcedureFrame)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure SetDefaultParamValues; override;
    function Save: boolean; override;
    procedure Build(AParent: TWinControl); override;
  end;

implementation

uses
  DateUtils,
  Avk.Gui.DefaultValueEditorFrame;

const
  cLoginParamName = 'I_LOGIN';
  cLoginSettingsName = 'LOGIN';

{$R *.dfm}

{ TAuthorizeFrame }

procedure TAuthorizeFrame.Build(AParent: TWinControl);
var
  E: TcxTextEdit;
begin
  inherited;
  E := ParamControls['I_PASSWORD'].GetEditor as TcxTextEdit;
  E.Properties.EchoMode := eemPassword;
  (Self.Owner as TForm).ActiveControl := E;
end;

function TAuthorizeFrame.Save: boolean;
begin
  Result := inherited Save;
  if Result then
    SaveFrameSettingsValue(cLoginSettingsName, VarToStr(ParamValues[cLoginParamName]));
end;

procedure TAuthorizeFrame.SetDefaultParamValues;
begin
  inherited;
  ParamValues.AddOrSetValue(cLoginParamName, LoadFrameSettingsValue(cLoginSettingsName));
end;

initialization
  RegisterClass(TAuthorizeFrame);

end.



Вид формы - редактора формы прикладываю.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415038
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shr,

добрый день!

Мне кажется вы не с того конца начали - вы начали с окончания, а нужно с начала. а началом является как правило БД - вот от ее структуры и надо плясать!
Для БД нужно создать мета-надстройку, которая вам и позволит создавать/конфигурировать любой интерфей любой интерфейс
тем более у вас есть коллеги-динозавры в этой области - www.arbinada.com - там ребята тоже на Делфи свои первые проекты писали, но они начинали с начала - с БД!
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415129
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spShr,

добрый день!

Мне кажется вы не с того конца начали - вы начали с окончания, а нужно с начала. а началом является как правило БД - вот от ее структуры и надо плясать!
Для БД нужно создать мета-надстройку, которая вам и позволит создавать/конфигурировать любой интерфей любой интерфейс
тем более у вас есть коллеги-динозавры в этой области - www.arbinada.com - там ребята тоже на Делфи свои первые проекты писали, но они начинали с начала - с БД!
Где начало а где конец - вопрос дискуссионный.

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

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

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

Для этого конструкторы/конфигураторы/построители форм должны иметь развитые средства, позволять на ходу менять визуальное представления данных (скрывать/высвечивать панели и вкладки, менять одну панель на другую, менять источники комбобоксов и т.п.). Т.е. в этом случае может иметь смысл идти именно от интерфейса, задавая для каждого его элемента биндинг на тот или иной источник данных из базы. Причем у этого биндинга должно быть много изощренных опций.

Поэтому когда я давно делал свой инструментарий я использовал такую парадигму. Моделирование структуры данных (таблицы, запросы, ф-ии, процедуры) в серверной части ведутся средствами сервера. Автоматических сборщиков запросов по модели нет. Все лапками.

Построение интерфейса тоже ведется средствами клиента. Тоже без автоматических построителей форм по опсианию таблиц или модели данных.

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

Это очевидно, не лучший путь, было сделано именно так по нескольким причинам: недостаток ресурсов - нужно было сделать быстро, уже имевшаяся система (1000+ форм) должна была быть перенесена на новый инструментарий.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415140
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spМне кажется вы не с того конца началиВы, кажется, чего-то не поняли. "Процедура" и "курсор" - это процедуры именно в БД, на psql или pl/sql - на данный момент поддерживаются Firebird и Oracle.

Т.е. сначала создаем структуру БД, потом формируем процедуры для редактирования и показа данных (простые можно сгенерировать), потом конфигурируем интерфейс для компоновки вида и установки связей между вызовами процедур БД.
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415197
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л, Shr ,

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

Ничего особенно сложного тут нет - нужно время просто привести все это до кучи в мозгу сесть и написать)
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415204
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
статьи про первые попытки автоматически генерить интерфейсы CRUD были еще лет 7 назад на просторах вражеского инета, да и сейчас я думаю статей полно уже и на наших просторах - поищите
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415205
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, можете показать принтскрины конечных пользовательских форм и на пальцах пояснить как они были сконфигурированы (настроены)
...
Рейтинг: 0 / 0
Набросал структуру для генерации GUI
    #38415207
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, и обязательно! почитайте статьи на том сайте что я ранее указал, обязательно - очень помогает просветлению)
...
Рейтинг: 0 / 0
25 сообщений из 63, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Набросал структуру для генерации GUI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]