Aprende cómo integrar archivos Excel en SEI o bases de datos SQL utilizando la tecnología ODBC para combinar datos de...
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.
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 |
Leave a comment