Découvrez comment intégrer des fichiers Excel dans SEI ou une base de données SQL, en utilisant la technologie ODBC...
Exploration de la Table ATEXTRA pour le Stockage de Texte Traduit dans les Applications
Qu'est-ce que ATEXTRA ?
La table ATEXTRA, établie depuis Adonix (1997), est un outil vital pour stocker du texte traduit dans les applications. Cette table joue un rôle clé dans la gestion du texte nécessitant une traduction pour l'interface de l'application.
Une limitation notable de cette approche concerne la taille des boîtes de texte. Chaque boîte peut contenir un maximum de 80 caractères.
Il est crucial de reconnaître que dépasser la limite de 80 caractères entraînera la troncation du texte.
Des exemples d'utilisation réelle peuvent être trouvés sur les écrans [M:ITM0] et [M:ITM1].
Exploration des Types de Variables pour Vos Besoins de Longueur de Texte
- AX1 : Maximum de 12 caractères
- AX2 : Maximum de 20 caractères
- AX3 : Maximum de 30 caractères
- AXX : Maximum de 80 caractères. Ce type vous permet de définir la longueur directement sur l'écran. Gardez à l'esprit que tenter de dépasser 80 caractères ne sera pas efficace en raison des contraintes dans le code source ATEXTRA.src 4GL, ce qui conduit à la troncation du texte.
Comment les Données Traduites Sont-Elles Stockées dans la Table ATEXTRA ?
La table ATEXTRA est structurée avec plusieurs colonnes clés :
- CODFIC : La table liée à la traduction
- ZONE : Le nom de la zone de l'écran
- LANGUE : Langue de traduction (par ex. FRA pour le français, ENG pour l'anglais)
- LANORI : Langue d'origine (facultatif)
- IDENT1 : Premier indice
- IDENT2 : Deuxième indice
- TEXTE : Texte traduit
Les indices (IDENT1 + IDENT2) sont cruciaux pour chaque table. Ils facilitent la récupération précise des traductions à partir de la base de données.
Pour les tables standard déjà intégrées à ATEXTRA, il n'est pas possible de modifier ces indices.
Exemple Illustratif :
GACCOUNT : Compte (GESGAC)
- IDENT1 = GACCOUNT.COA
- IDENT2 = GACCOUNT.ACC
VATBOX : Cas de TVA (GESVTB)
- IDENT1 = VATBOX.VATFNC
- IDENT2 = VATBOX.LEG + «~» + VATBOX.LIN
GTYPACCENT : Type de Document (GESGTE)
- IDENT1 = GTYPACCENT.TYP
- IDENT2 = GTYPACCENT.LEG
TABVACBPR : Règle fiscale BP (GESTVB)
- IDENT1 = TABVACBPR.VACBPR
- IDENT2 = TABVACBPR.LEG
TABVACITM : Niveau de taxe (GESTVI)
- IDENT1 = TABVACITM.VACITM
- IDENT2 = TABVACITM.LEG
TABVAC : Détermination fiscale (GESTVC)
- IDENT1 = TABVAC.COD
- IDENT2 = TABVAC.LEG
TABVAT : Taux de TVA (GESTVT)
- IDENT1 = TABVAT.VAT
- IDENT2 = TABVAT.LEG
Utilisation de ATEXTRA en Pratique
Lecture Standard ATEXTRA
Référez-vous à l'écran [M:ITM0] pour une instance.
Utilisation du 4GL pour Lire ATEXTRA
| # Méthode 1 : Lecture de ATEXTRA avec 2 indices
Call LECTEXTRA([M :XS4L1]DES1AXX( nolign-1), »XSTRXX4L », »DES1AXX », [L]XIDENT1,[L]XIDENT2) Depuis ATEXTRA # Méthode 2 : Lecture de ATEXTRA avec 2 indices [M :XS4L1]DES1AXX([F :XS4L1]LIN-1) = func AFNC.TEXTRA(« XSTRXX4L », »DES1AXX », [L]XIDENT1,[L]XIDENT2) [M :XS4L1]DES2AXX([F :XS4L1]LIN-1) = func AFNC.TEXTRA(« XSTRXX4L », »DES2AXX », [L]XIDENT1,[L]XIDENT2) [M :XS4L1]DES3AXX([F :XS4L1]LIN-1) = func AFNC.TEXTRA(« XSTRXX4L », »DES3AXX », [L]XIDENT1,[L]XIDENT2) # Méthode 3 : Lecture de ATEXTRA avec 1 indice Call CHARGE_DEFITMDES(« DES1AXX »,GLANGUE,[F :XS4LD]INDX,[M :XS4L1]DES1AXX( nolign), « [F :XS4LD] ») Depuis TRTX3 # Méthode 4 : Lecture de ATEXTRA avec 1 indice Call CHARGE_ITMDES(« DES1AXX »,GLANGUE,[F :XS4LD]INDX,[M :XS4L1]DES1AXX([F :XS4LD]LIN)) Depuis TRTX3 # Méthode 5 : Lecture de ATEXTRA avec 1 indice Call GET_ATEXTRA(« XSTRXX4LD », »DES1AXX »,GLANGUE,[M :XS4L1]DES1AXX([F :XS4LD]LIN)) Depuis TRTX3TEX |
Importation de Tables Spécifiques dans ATEXTRA en Utilisant le 4GL
| $IMP_ATEXTRA
If [F:XX4LSTR]LIN > 0 [L]XIDENT1 = [F:XX4LSTR]COA+[F:XX4LSTR]RPTCOD+ num$([F:XX4LSTR]YEA) [L]XIDENT2 = [F:XX4LSTR]RPTBOX Lire [F:AXX] AXX0="XX4LSTR";"DES1AXX";[L]XLANGUE;[L]XIDENT1;[L]XIDENT2 [F:AXX]TEXTE = left$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),80) If ! fstat Réécrire [F:AXX] Autrement Aller à ATEXTRA_HEADER [F:AXX]ZONE = "DES1AXX" Écrire [F:AXX] Fin Autrement If len( mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),81,80)) > 0 Lire [F:AXX] AXX0="XX4LSTR";"DES2AXX";[L]XLANGUE;[L]XIDENT1;[L]XIDENT2 [F:AXX]TEXTE = mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),81,80) If ! fstat Réécrire [F:AXX] Autrement Aller à ATEXTRA_HEADER [F:AXX]ZONE = "DES2AXX" Écrire [F:AXX] Fin Autrement Fin Si Si len( mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),161,80)) > 0 Lire [F:AXX] AXX0="XX4LSTR";"DES3AXX";[L]XLANGUE;[L]XIDENT1;[L]XIDENT2 [F:AXX]TEXTE = mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),161,80) If ! fstat Réécrire [F:AXX] Autrement Aller à ATEXTRA_HEADER [F:AXX]ZONE = "DES3AXX" Écrire [F:AXX] Fin Autrement Fin Autrement Fin Si Fin Si Fin Si Retourner |
Leave a comment