Многоязычная поддержка в Forms 6i

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

В основном язык заголовков столбцов должен изменяться/устанавливаться динамически.

Если вы достигли этого, пожалуйста, помогите мне в этом отношении.

Я использую форму 6i и версию базы данных 10g.

Спасибо и С уважением, Laxya


person user6734883    schedule 22.08.2016    source источник


Ответы (1)


То, что вы хотите сделать, не легко сделать. Если вы хотите, чтобы заголовки столбцов в формах были динамическими, то заголовки должны быть окрашены как поля отображения и связаны с таблицей метаданных, в которой хранятся имена столбцов на языках, которые вы хотите поддерживать. Другими словами, вам нужно сохранить имена столбцов и все, что вам нужно для отображения, например. экранные сообщения в таблицах, которые будут извлекаться во время выполнения и отображаться на экране на основе параметра времени выполнения, переданного на экран, например. LANGCODE = ENG для английского или ARB для арабского

Пример таблицы метаданных:

LANGCODE  FORMNAME  TABLENAME  COLUMNNAME  COLUMNNAME_TO_DISPLAY
--------  --------  ---------  ----------  ---------------------
ENG       ABC123    TABLEA     COLUMN1     COLUMN1
ENG       ABC123    TABLEA     COLUMN2     COLUMN2
ARB       ABC123    TABLEA     COLUMN2     ???????
ARB       ABC123    TABLEA     COLUMN2     ???????

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

Обратите внимание, что хотя это позволяет экрану иметь заголовки и имена полей, которые динамически извлекаются во время выполнения в триггере when-new-form-instance, они добавляют много дополнительных усилий по обслуживанию, поскольку все, что отображается на экране, должно быть сопоставлено с столик где-то. Вот почему вы найдете очень мало действительно многоязычных приложений форм.

person Gaz    schedule 23.08.2016
comment
Вам не нужно устанавливать заголовки столбцов в качестве полей отображения. Вы можете использовать SET_ITEM_PROPERTY('BLOCK.FIELD', PROMPT_TEXT, 'New Prompt Value'). - person AndyDan; 18.04.2017