Я работаю с appBuilder и редактором процедур в Progress Release 11.6.
Как упоминалось в некоторых предыдущих вопросах, у меня регулярно возникают проблемы с appBuilder, я не хочу открывать файлы, повреждая их (удаляя части исходного кода), ..., одна из причин теперь кажется ограничением того, что процедура не может превышать 32 КБ, включая комментарии.
Сначала я подумал: Неужели мы снова в каменном веке?, простите за мою реакцию.
Но теперь я начинаю думать, что мы полностью злоупотребляем всей концепцией, поэтому я хотел бы показать свой взгляд на W-, P- и I-файлы, подтвердите (или исправьте):
W-файлы предназначены только для того, чтобы содержать определения графического интерфейса, такие как форма с некоторыми фреймами, кнопками, полями для заполнения, ..., любое реальное программирование должно выполняться в P-файлах.
P-файлы содержат настоящий интеллект: здесь разрабатываются процедуры и функции, которые могут использоваться остальными P-файлами или, наконец, W-файлами.
I-файлы предназначены только для включения общего поведения.
Позвольте мне привести Вам пример:
W-файл:
DEFINE VARIABLE combo_information VIEW-AS COMBOBOX /* with some information on the content, if this is static */
...
ON CHOOSE OF combo_information DO:
RUN very_large_procedure.
END.
...
{about.i} /* see here-after */
...
P-файл:
PROCEDURE very_large_procedure:
DO /* a lot */
END.
I-файл (about.i):
/* Describes the help-about menu item */
При такой работе (помещая только элементы, относящиеся к графическому интерфейсу пользователя, в W-файл и позволяя выполнять реальное программирование в P-файлах), упомянутый предел в 32 КБ никогда не будет достигнут. Кроме того, добавить процедуру можно легко, appBuilder не удалит ее, поскольку appBuilder никогда не откроет P-файл.
Верно ли мое мнение (и как насчет I-файлов)?
Если да: один технический вопрос: как я могу запустить процедуру из P-файла внутри W-файла? (Очевидно, что упомянутый пример не может работать, поскольку в W-файле я не упомянул, где искать very_large_procedure
)
_TRG
, она содержит разные поля, такие как_tEvent
(имя процедуры) и_tCode
(код, включая комментарии). Если содержимое поля_tCode
превышает 32К, возникает проблема. - person Dominique   schedule 10.02.2021