Buenas tardes amigos,

He visto algunos que algunos preguntan sobre cómo crear un campo adicional en SQ02 o como llenar el valor del mismo, por lo que quiero compartir mi experiencia con el mismo.

El requerimiento del cliente fue que pudiera presentar el nombre de un empleado o candidato dependiente del dato ingresado en una tabla personalizada.   Este nombre debería estar concatenado y quitando todos los posibles espacios en blanco entre nombres y apellidos.   Esto debido a que ocasionalmente ingresaban espacios entre los campos de la tabla o ingresaban más de un nombre en el mismo.

Les comparto como lo realicé yo.   No quiere decir que sea la única forma ni la mejor.   Fue lo que realicé en su momento.

Los pasos a continuación.

  1. Estando sobre el menú principal ingresamos a la opción de detalle (F5).

     2. Seleccionamos la hoja de crear.

     3. Indicamos un nombre y la clase de objeto que estamos creando.  Para este caso un campo adicional.

     4.- Indicamos las características del campo adicional que se está creando.

     5.- Seleccionamos el campo adicional creado y presionamos el código para edición del código.

6. Edito el código de acuerdo a lo requerido.

No explicaré a detalle el código porque es bastante legible, pero a groso modo diré que verifico si tengo algún valor en el campo de candidato o de empleado.

Dependiendo de eso busco y lleno el campo “nombrecompleto”. Proceso el campo para validar y quitar espacios adicionales entre los nombre y presento el resultado final.

adjunto el código…

clear nombrecompleto.
data: tga_02 like pa0002 occurs 1 with header line.
data: tgb_02 like pb0002 occurs 1 with header line.
data: nombre1(50) type c.
data: nombre2(50) type c.
data: nombre3(50) type c.
data: nombre4(50) type c.
data: nombre5(50) type c.
data: nombre6(50) type c.
if zhrrc_tt_genpropcodcandidato <> 0 and zhrrc_tt_genpropcodempleado = 0.
SELECT * into tgb_02 FROM  PB0002
WHERE  PERNR  = zhrrc_tt_genpropcodcandidato .
concatenate tgb_02vorna ‘.’ tgb_02midnm ‘.’ tgb_02rufnm ‘.’
tgb_02
nachn ‘.’ tgb_02name2 ‘.’ tgb_02nach2 into nombrecompleto.
ENDSELECT.
elseif zhrrc_tt_genpropcodcandidato = 0 and zhrrc_tt_genpropcodempleado <> 0.
SELECT * into tga_02 FROM  PA0002
WHERE  PERNR  = zhrrc_tt_genpropcodempleado .
concatenate tga_02vorna ‘.’ tga_02midnm ‘.’ tga_02rufnm ‘.’
tga_02
nachn ‘.’ tga_02name2 ‘.’ tga_02nach2 into nombrecompleto.
ENDSELECT.
endif.
translate nombrecompleto using ‘ |’.
translate nombrecompleto using ‘. .
split nombrecompleto at space into nombre1 nombre2 nombre3 nombre4 nombre5 nombre6.
condense nombre1 nogaps.
condense nombre2 nogaps.
condense nombre3 nogaps.
condense nombre4 nogaps.
condense nombre5 nogaps.
condense nombre6 nogaps.
concatenate nombre1 ‘.’ nombre2 ‘.’ nombre3 ‘.’ nombre4 ‘.’ nombre5 into nombrecompleto.
translate nombrecompleto using ‘. ‘.
translate nombrecompleto using ‘| ‘.
condense nombrecompleto.

Espero a alguien le sirva de ayuda o referencia.

Saludos,

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply