El tratamiento de textos en SAP R/3 tiene una forma de tratamiento particular.
En torno a esto existe el conjunto de tablas siguientes:
| TTXID | ID textos pendientes |
| TTXIT | Textos para id de textos |
| TTXOB | Objetos de texto permitidos |
| TTXOT | Textos breves para objetos de textos |
| STXH | Cabecera de fichero de textos |
| STXL | Líneas de fichero de texto |
1.- Campos de la tabla TTXID
| Campo | Contenido | Descripción |
| TDOBJECT | KNA1 | Deudores |
| TDID | 0002 | Nota de Contabilidad |
2.- Campos de la tabla TTXIT
| Campo | Contenido | Descripción |
| SPRAS | S | Idioma |
| TDOBJECT | KNA1 | Deudores |
| TDID | 0002 | Nota de Contabilidad |
3.- Campos de la tabla TTXOB
| Campo | Contenido | Descripción |
| TDOBJECT | KNA1 | Deudores |
| VTEXT | Cliente central |
4.- Campos de la tabla TTXOT
| Campo | Contenido | Descripción |
| TDSPRAS | S | Idioma |
| OBJECT | KNA1 | Deudores |
| TDTEXT | Cliente central |
5.- Campos de la tabla STXH
| Campo | Contenido | Descripción |
| TDOBJECT | KNA1 | Deudores |
| TDNAME | Código deudor | |
| TDID | ||
| TDSPRAS | ||
| TDTXTLINES | Líneas de texto |
6.- Campos de la tabla STXL
| Campo | Contenido | Descripción |
| RELID | TX | Versión de SAP R/3 |
| TDOBJECT | KNA1 | Deudores |
| TDNAME | Código deudor | |
| TDID | 0002 | Nota de Contabilidad |
| TDSPRAS | S | Idioma |
| SRTF2 | x | x |
| CLUSTR | x | x |
| CLUSTD | x | Long Binary |
.- Para leer los campos de texto en SAP R/3 se usa la función read_text_inline,
mientras que para editarlos se usa la función
edit_text_inline.
7.- Un ejemplo en ABAP
REPORT ZSALDOYPARTIDASAB NO STANDARD PAGE HEADING.
* --------------------------------------------------------------------
* --------------------------------------------------------------------
* Programa : ZSALDOYPARTIDASAB
* autora : yolanda sanz
* fecha : 13 de abril del 2000
* objetivo : Imprimir cartas de exceso creditos
* --------------------------------------------------------------------
* tablas usadas en el modulo
* tabla descripción
* BSID Contabilidad: índice secundario para deudores
* KNA1 Maestro de clientes (parte general)
* --------------------------------------------------------------------
* Descripción del proceso
* 1.- Se leen todos los registros de la tabla kna1
* 2.- Para cada registro leído busca las partidas abiertas
* 3.- Compila los datos y los presenta de manera entendible
* --------------------------------------------------------------------
* --------------------------------------------------------------------
TABLES: BSID,
KNA1.
DATA: BEGIN OF TABLA2 OCCURS 20.
INCLUDE STRUCTURE TLINE.
DATA: END OF TABLA2.
DATA: BEGIN OF TABLA3 OCCURS 20.
INCLUDE STRUCTURE TLINE.
DATA: END OF TABLA3.
SELECT-OPTIONS: SO_KUNNR FOR KNA1-KUNNR,
SO_BUKRS FOR BSID-BUKRS, "SOCIEDAD
SO_BLART FOR BSID-BLART, "CLASE DE DOC
SO_BUDAT FOR BSID-BUDAT, "FECHA DE CONTABILIZACION
SO_BLDAT FOR BSID-BLDAT, "FECHA DE DOC
SO_GJAHR FOR BSID-GJAHR, "EJERCICIO
SO_BELNR FOR BSID-BELNR. "Nº DE DOC
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: CONSIN RADIOBUTTON GROUP RAD1,
CON RADIOBUTTON GROUP RAD1,
SIN RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF BLOCK B1.
DATA: DEBE LIKE BSID-WRBTR,
HABER LIKE BSID-WRBTR,
SALDO LIKE BSID-WRBTR,
TOTAL_DEBE LIKE BSID-WRBTR,
TOTAL_HABER LIKE BSID-WRBTR,
TOTAL_SALDO LIKE BSID-WRBTR,
DEUDOR1 LIKE BSID-KUNNR,
DEUDOR2 LIKE BSID-KUNNR,
CONTADOR TYPE I,
CONSINTXT(9),
NOMBRE LIKE THEAD-TDNAME,
NUMERO TYPE I,
FUNCION LIKE THEAD-TDID.
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN COMMENT 1(82) TEXT-002.
PARAMETERS: P_TEXTOS.
**********************fin de declaracion de
variables*******************
IF CON = 'X'.
WRITE: 15 'Alumnos con saldo y partidas abiertas'.
ELSEIF CONSIN = 'X'.
WRITE: 15 'Alumnos con y sin saldo y partidas abiertas'.
ELSE.
WRITE: 15 'Alumnos sin saldo y partidas abiertas'.
ENDIF.
SKIP.
PERFORM PINTA_CABECERA.
TOTAL_DEBE = 0.
TOTAL_HABER = 0.
TOTAL_SALDO = 0.
SELECT * FROM KNA1 WHERE KUNNR IN SO_KUNNR.
DEBE = 0.
DEUDOR1 = ' '.
SELECT KUNNR SUM( WRBTR )
INTO (DEUDOR1, DEBE)
FROM BSID
WHERE SHKZG = 'S' AND "Esta en el HABER
AUGBL = SPACE AND "PARTIDA ABIERTA
BUKRS IN SO_BUKRS AND "SOCIEDAD
BLART IN SO_BLART AND "CLASE DE DOC
BUDAT IN SO_BUDAT AND "FECHA DE CONTABILIZACION
BLDAT IN SO_BLDAT AND "FECHA DE DOC
GJAHR IN SO_GJAHR AND "EJERCICIO
BELNR IN SO_BELNR AND "Nº DE DOC
KUNNR = KNA1-KUNNR
GROUP BY KUNNR.
ENDSELECT.
HABER = 0.
DEUDOR2 = ' '.
SELECT KUNNR SUM( WRBTR )
INTO (DEUDOR2 , HABER)
FROM BSID
WHERE SHKZG = 'H' AND "Esta en el HABER
AUGBL = SPACE AND "PARTIDA ABIERTA
BUKRS IN SO_BUKRS AND "SOCIEDAD
BLART IN SO_BLART AND "CLASE DE DOC
BUDAT IN SO_BUDAT AND "FECHA DE CONTABILIZACION
BLDAT IN SO_BLDAT AND "FECHA DE DOC
GJAHR IN SO_GJAHR AND "EJERCICIO
BELNR IN SO_BELNR AND "Nº DE DOC
KUNNR = KNA1-KUNNR
GROUP BY KUNNR.
ENDSELECT.
SALDO = DEBE - HABER.
IF DEBE <> 0 OR HABER <> 0.
IF CONSIN = 'X' OR ( CON = 'X' AND SALDO <> 0 )
OR ( SIN = 'X' AND SALDO = 0 ).
TOTAL_DEBE = TOTAL_DEBE + DEBE.
TOTAL_HABER = TOTAL_HABER + HABER.
TOTAL_SALDO = TOTAL_DEBE - TOTAL_HABER.
CONTADOR = CONTADOR + 1.
WRITE : / KNA1-KUNNR,
12 KNA1-NAME1,
47 DEBE CURRENCY 'ESP',
65 HABER CURRENCY 'ESP',
81 SALDO CURRENCY 'ESP'.
IF P_TEXTOS = 'X'.
NOMBRE = KNA1-KUNNR.
NUMERO = 1.
FUNCION = '0002'.
PERFORM SACA_TEXTOS USING NOMBRE NUMERO FUNCION.
LOOP AT TABLA3.
WRITE: /12 TABLA3-TDLINE.
ENDLOOP.
REFRESH TABLA3.
ENDIF.
ENDIF.
ENDIF.
ENDSELECT.
SKIP 3.
WRITE : 'Totales para',CONTADOR,'alumnos: ',
47 TOTAL_DEBE CURRENCY 'ESP',
65 TOTAL_HABER CURRENCY 'ESP',
81 TOTAL_SALDO CURRENCY 'ESP'.
*&---------------------------------------------------------------------*
*& Form PINTA_CABECERA
*&---------------------------------------------------------------------*
FORM PINTA_CABECERA.
ULINE.
FORMAT COLOR 1.
WRITE: / 'Deudor' ,
12 'Nombre' ,
58 'Debe',
75 'Haber',
91 'Saldo '.
FORMAT COLOR OFF.
ULINE.
ENDFORM. " PINTA_CABECERA
*&---------------------------------------------------------------------*
*& Form SACA_TEXTOS
*&---------------------------------------------------------------------*
* Saca textos asociados al deudor si se elige esa opción y solo en
* el caso de que los hubiera
*----------------------------------------------------------------------*
*--> NOMBRE
*--> NUMERO
*--> FUNCION
*-----------------------------------------------------------------------
FORM SACA_TEXTOS USING NOMBRE NUMERO FUNCION.
CALL FUNCTION 'READ_TEXT_INLINE'
EXPORTING
ID = FUNCION
INLINE_COUNT = NUMERO
LANGUAGE = 'S'
NAME = NOMBRE
OBJECT = 'KNA1' "ATENCION PONER EN MAYUSCULAS
* IMPORTING
* HEADER =
TABLES
INLINES = TABLA2
LINES = TABLA3
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
OTHERS = 7.
ENDFORM. " SACA_TEXTOS
Página mantenida por Francisco A. Reyes