2016-08-22 2 views
0

J'ai une exigence concernant la forme oracle 6i. Je dispose d'un bloc de données sous forme 6i et je souhaite que les en-têtes de table soient modifiés en fonction des informations de connexion, par exemple si l'utilisateur se connecte en arabe et que les en-têtes de table changent en arabe ou en anglais. devrait changer dynamiquement à l'anglais et ainsi de suite.Prise en charge multilingue dans les formulaires 6i

Fondamentalement, la langue des en-têtes de colonne doit changer/définir dynamiquement.

Si vous avez atteint ce but alors s'il vous plaît aidez-moi à cet égard. J'utilise le formulaire 6i et la version de base de données est 10g.

Merci et Regard, Laxya

Répondre

0

Qu'est-ce que vous voulez faire est pas facile à faire. Si vous souhaitez que les en-têtes de colonne dans Forms soient dynamiques, les en-têtes doivent être peints en tant que champs d'affichage et liés à une table de métadonnées qui stocke les noms de colonnes dans les langues que vous souhaitez prendre en charge. En d'autres termes, vous devez stocker les noms de colonne et tout ce que vous devez afficher par ex. afficher des messages dans des tables à extraire au moment de l'exécution et affichés sur l'écran en fonction d'un paramètre d'exécution transmis à l'écran, par ex. LANGCODE = ENG pour l'anglais ou ARB pour l'arabe

Exemple d'une table de métadonnées:

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  ??????? 

Vous entrez simplement la valeur que vous souhaitez afficher sur l'écran dans la dernière colonne du tableau ci-dessus dans la langue que la base de données principale supporte. Notez que si cela permet à l'écran d'avoir des en-têtes et des noms de champs récupérés dynamiquement à l'exécution dans un déclencheur when-new-form-instance, ils ajoutent beaucoup d'effort de maintenance puisque tout ce qui est affiché sur l'écran être mappé à une table quelque part. C'est pourquoi vous trouverez très peu de formulaires d'applications réellement multilingues.

+0

Vous n'avez pas besoin de définir les en-têtes de colonne comme champs d'affichage. Vous pouvez utiliser 'SET_ITEM_PROPERTY ('BLOCK.FIELD', PROMPT_TEXT, 'Nouvelle valeur d'invite')'. – AndyDan