Blog navigation

Últimas entradas del blog

Explorando la Tabla ATEXTRA para Almacenar Texto Traducido en Aplicaciones

 

¿Qué es ATEXTRA?

La tabla ATEXTRA, establecida desde Adonix (1997), es una herramienta vital para almacenar texto traducido dentro de las aplicaciones. Esta tabla desempeña un papel clave en la gestión del texto que requiere traducción para la interfaz de la aplicación.

Una limitación notable de este enfoque se relaciona con el tamaño de las cajas de texto. Cada caja puede contener un máximo de 80 caracteres.

Es crucial reconocer que exceder el límite de 80 caracteres resultará en la truncación del texto.

Ejemplos de uso del mundo real se pueden encontrar en las pantallas [M:ITM0] y [M:ITM1].

Explorando los Tipos de Variables para Sus Necesidades de Longitud de Texto

  • AX1: Máximo de 12 caracteres
  • AX2: Máximo de 20 caracteres
  • AX3: Máximo de 30 caracteres
  • AXX: Máximo de 80 caracteres. Este tipo le permite establecer la longitud directamente en la pantalla. Tenga en cuenta que intentar superar los 80 caracteres no será efectivo debido a las limitaciones en el código fuente ATEXTRA.src 4GL, lo que lleva a la truncación del texto.

¿Cómo se Almacenan los Datos Traducidos en la Tabla ATEXTRA?

La tabla ATEXTRA está estructurada con varias columnas clave:

  • CODFIC: La tabla vinculada a la traducción
  • ZONE: El nombre del recuadro de pantalla
  • LANGUE: Idioma de traducción (por ejemplo, FRA para francés, ENG para inglés)
  • LANORI: Idioma original (opcional)
  • IDENT1: Primer índice
  • IDENT2: Segundo índice
  • TEXTE: Texto traducido

Los índices (IDENT1 + IDENT2) son cruciales para cada tabla. Facilitan la recuperación precisa de las traducciones de la base de datos.

Para las tablas estándar ya integradas con ATEXTRA, no es posible modificar estos índices.

Ejemplo Ilustrativo:

GACCOUNT: Cuenta (GESGAC)

  • IDENT1 = GACCOUNT.COA
  • IDENT2 = GACCOUNT.ACC

VATBOX: Casos de IVA (GESVTB)

  • IDENT1 = VATBOX.VATFNC
  • IDENT2 = VATBOX.LEG + «~» + VATBOX.LIN

GTYPACCENT: Tipo de Documento (GESGTE)

  • IDENT1 = GTYPACCENT.TYP
  • IDENT2 = GTYPACCENT.LEG

TABVACBPR: Regla fiscal de BP (GESTVB)

  • IDENT1 = TABVACBPR.VACBPR
  • IDENT2 = TABVACBPR.LEG

TABVACITM: Nivel de impuesto (GESTVI)

  • IDENT1 = TABVACITM.VACITM
  • IDENT2 = TABVACITM.LEG

TABVAC: Determinación de impuestos (GESTVC)

  • IDENT1 = TABVAC.COD
  • IDENT2 = TABVAC.LEG

TABVAT: Tasa de impuesto (GESTVT)

  • IDENT1 = TABVAT.VAT
  • IDENT2 = TABVAT.LEG

Utilización de ATEXTRA en la Práctica

Lectura Estándar de ATEXTRA

Consulte la pantalla [M:ITM0] para una instancia.

Captura de pantalla de la pantalla [M:ITM0] Captura de pantalla de la pantalla [M:ITM0] Captura de pantalla de la pantalla [M:ITM0]

Uso del 4GL para Leer ATEXTRA

# Método 1 : Lectura de ATEXTRA con 2 índices

Call LECTEXTRA([M :XS4L1]DES1AXX( nolign-1), »XSTRXX4L », »DES1AXX », [L]XIDENT1,[L]XIDENT2) Desde ATEXTRA

# Método 2 : Lectura de ATEXTRA con 2 índices

[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étodo 3 : Lectura de ATEXTRA con 1 índice

Call CHARGE_DEFITMDES(« DES1AXX »,GLANGUE,[F :XS4LD]INDX,[M :XS4L1]DES1AXX( nolign), « [F :XS4LD] ») Desde TRTX3

# Método 4 : Lectura de ATEXTRA con 1 índice

Call CHARGE_ITMDES(« DES1AXX »,GLANGUE,[F :XS4LD]INDX,[M :XS4L1]DES1AXX([F :XS4LD]LIN)) Desde TRTX3

# Método 5 : Lectura de ATEXTRA con 1 índice

Call GET_ATEXTRA(« XSTRXX4LD », »DES1AXX »,GLANGUE,[M :XS4L1]DES1AXX([F :XS4LD]LIN)) Desde TRTX3TEX

Importación de Tablas Específicas en ATEXTRA Usando el 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

Leer [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

Reescribir [F:AXX]

Si No

Ir a ATEXTRA_HEADER

[F:AXX]ZONE = "DES1AXX"

Escribir [F:AXX]

Fin Si No

If len( mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),81,80)) > 0

Leer [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

Reescribir [F:AXX]

Si No

Ir a ATEXTRA_HEADER

[F:AXX]ZONE = "DES2AXX"

Escribir [F:AXX]

Fin Si No

Fin Si

Si len( mid$([M:XX4LSTR1]DESAXX([F:XX4LSTR]LIN-1),161,80)) > 0

Leer [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

Reescribir [F:AXX]

Si No

Ir a ATEXTRA_HEADER

[F:AXX]ZONE = "DES3AXX"

Escribir [F:AXX]

Fin Si No

Fin Si No

Fin Si

Retornar

 
Publicado en: Sage X3, Configuration, 4GL