Подражательный экран ISQL Perform с I4GL

Действительно ли возможно подражать функциональности экрана ISQL Perform (т.е. QBF, ведущее устройство/деталь, и т.д.) с 4GL программа?

1
задан Frank R. 15 June 2010 в 00:13
поделиться

1 ответ

Как и все лучшие ответы, Да и Нет.

  • Да: вы можете написать программу, которая имитирует части интерфейса ISQL Perform, которые вы хотите в I4GL. У меня есть как минимум две такие программы, и я знаю еще две или три, созданные другими людьми.

  • Нет: одну программу I4GL нельзя легко заставить обрабатывать все возможные таблицы так, как это делает ISQL Perform. Язык недостаточно силен, чтобы позволить это. Итак, программы, созданные в части ответа «Да», ограничены конкретной таблицей, для которой они были разработаны / написаны / созданы для работы.

I4GL включает оператор CONSTRUCT, который выполняет почти все, что делает параметр запроса ISQL Perform. Единственным исключением являются операторы Perform '>>' и '<<' (максимум и минимум); для них требуется серьезная переработка запроса, а не просто другая версия предложения WHERE.

Вы можете использовать код I4GL для обработки Master / Detail. Это не очень сложно, но и не тривиально. Однако мои генераторы кода никогда не формализовали этот процесс.

Загляните в Архив программного обеспечения в IIUG (Международная группа пользователей Informix), чтобы узнать о доступных генераторах кода. Свяжитесь со мной, если вы не видите там ни «fglbld», ни «fglgen» (см. Мой профиль).


Фрэнк также спрашивает:

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

Да. Обратите внимание, что формы I4GL должны иметь только один макет экрана на файл формы (в отличие от ISQL Perform (sperform), который может иметь несколько экранов в одном файле). Однако одна программа I4GL может использовать сколько угодно форм, так что это не является серьезным препятствием.

Или я могу выполнить специальный запрос к любому столбцу в той же таблице и ввести свои критерии поиска с теми же повторениями, что и в Perform, за исключением >> или << ?

Да.

Долгое время я предполагал, что sformbld генерирует объектный модуль I4GL, который выполняется sperform (механизмом форм). Конечно, было бы неплохо иметь встроенный в I4GL генератор форм, такой как Perform, для быстрого прототипирования, а затем иметь возможность изменять код 4GL для дальнейшей настройки.

ISQL предшествует I4GL примерно на год - и основан на программе Informix Perform, предшествующей SQL, которая (была) еще старше. Итак, это не так.

Еще один вопрос: могут ли экраны Perform сосуществовать в I4GL?

Это зависит от того, что именно вы имеете в виду. Существует общее подмножество языка Perform, которое может использоваться как ISQL, так и I4GL. Однако есть много функций (например, несколько экранов, проверка объединений и инструкции, такие как AFTER EDITADD), которые могут использоваться ISQL, но не I4GL, и другие (особенно записи экранов и массивы экранов), которые могут использоваться I4GL, но не ISQL.

2
ответ дан 2 September 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: