Blog navigation

Derniers articles

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.

Capture d'écran de l'écran [M:ITM0] Capture d'écran de l'écran [M:ITM0] Capture d'écran de l'écran [M:ITM0]

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

 
Publié dans: Sage X3, Configuration, 4GL