Textos en SAP R/3

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

 

Regresar a mi HomePage

Página mantenida por Francisco A. Reyes