PDA

Ver la Versión Completa : Variable Compuesta


Irua
06/08/07, 13:47:27
Hola

:confused: Si por favor alguien me puede orientar de como se estructura una variable que me traiga solo algunos caracteres de otras variables,es decir necesito que la variable x de solo 12 caracteres este compuesta por Inicial del nombre, codigo de empleado y el resto con el apellido, ejemplo: ISandov15830, que hace referencia a Nombre: Ignacio, Apellido: Sandoval, Codigo: 15830


saludos y mil gracias:o

mysmb2
06/08/07, 14:26:31
hola, podes usar una tabla interna.

ejemplo

data: begin of t_persona occurs 0,
inicial type c,
codigo(6) type c,
apellido(6) type c,
end of t_persona.


t_persona-inicial = 'I'.
t_persona-codigo = 'Sandov'.
t_persona-apellido = '15830'.
append t_persona.

Garces
06/08/07, 14:32:03
Hola

:confused: Si por favor alguien me puede orientar de como se estructura una variable que me traiga solo algunos caracteres de otras variables,es decir necesito que la variable x de solo 12 caracteres este compuesta por Inicial del nombre, codigo de empleado y el resto con el apellido, ejemplo: ISandov15830, que hace referencia a Nombre: Ignacio, Apellido: Sandoval, Codigo: 15830


saludos y mil gracias:o


Hola Irua...

Mira... lo que tienes que hacer es lo siguente...
La instrucción genérica para obtener caracteres de una cadena es:

destino = origen+a(b).

donde:
'origen' es la cadena de donde quieres obtener los caracteres.
'destino' es la cadena donde quieres depositar tu subcadena.
'a' es la posición inicial desde donde quieres obtener los caracteres.
'b' es el número de caracteres a extraer.

Para tu caso, el código sería algo así:

DATA:
v_nombre TYPE STRING,
v_inicial TYPE C,
v_apellido TYPE STRING,
v_ap_corto(5) TYPE C,
v_codigo(5) TYPE C,
v_x(12) TYPE C.

v_nombre = 'Ignacio'.
v_apellido = 'Sandoval'.
v_codigo = '15830'.

v_inicial = v_nombre+0(1).
v_ap_corto = v_apellido+0(5).

CONCATENATE v_inicial v_ap_corto v_codigo INTO x.


Espero haya sido de tu ayuda...
Saludos...

Irua
06/08/07, 15:39:29
gracias funciono perfecto :)

Irua
06/08/07, 20:32:14
Estoy tratando de realizar otra variable compuesta, tomando los datos de otra tabla o variable, es decir de la variable o del campo de la tabla x solo quiero el primer caracter, se que la sintaxis
DATA: BEGIN OF T_PA0002 OCCURS 0,
T_NACHN LIKE PA0002-NACHN,
T_PERNR LIKE PA0002-PERNR,
T_VORNA LIKE PA0002-VORNA,
T_inicial = T_NACHN+0(1).
END OF T_PA0002.

pero me da error :eek:


gracias

Garces
06/08/07, 20:51:26
Estoy tratando de realizar otra variable compuesta, tomando los datos de otra tabla o variable, es decir de la variable o del campo de la tabla x solo quiero el primer caracter, se que la sintaxis
DATA: BEGIN OF T_PA0002 OCCURS 0,
T_NACHN LIKE PA0002-NACHN,
T_PERNR LIKE PA0002-PERNR,
T_VORNA LIKE PA0002-VORNA,
T_inicial = T_NACHN+0(1).
END OF T_PA0002.

pero me da error :eek:


gracias

Lo que pasa es que abap no permite asignar ningún valor a una varible en su declaración.

Lo que deberías hacer es lo siguiente:

* Declaración de la tabla
DATA: BEGIN OF T_PA0002 OCCURS 0,
T_NACHN LIKE PA0002-NACHN,
T_PERNR LIKE PA0002-PERNR,
T_VORNA LIKE PA0002-VORNA,
T_inicial TYPE C,
END OF T_PA0002.

* Luego debes llenar la tabla interna con los datos correspondientes excepto T_inicial que la llenarás después...
* Después debes hacerle un LOOP a la tabla interna...

LOOP AT T_PA0002.
T_inicial = T_NACHN+0(1).
MODIFY T_PA0002 INDEX sy-tabix.
ENDLOOP.

Saludos...

Irua
07/08/07, 13:27:39
Muchas Gracias Miguel Me Sacaste De Un Apuro ;)