Skip to Content

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.

2 Comments

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

  1. JUAN YUBERO

    Muchas Gracias por la informaci├│n, una consulta sobre este tema, ┬┐es posible a├▒adir un selector en estos campos adicionales, es decir, cuando ejecute la query, poder elegir un valor posible para este campo adicional?, Por ejemplo, genero un campo adicional con unos status, (imaginemos que los status son abierto, cerrado), cuando ejecute la query en la sq01 si a├▒ado este campo adicional como selecci├│n… poder tener una lista desplegable que me permita seleccionar entre los status disponibles, para no tener que escribir manualmente el texto en el campo de selecci├│n.

    Muchas Gracias de antemano.

    (0) 

Leave a Reply