martes, 13 de junio de 2023

Ingresar un número de mes y retornar su nombre

En este ejemplo, vamos a crear un procedimiento en el que ingresando un número de mes (1,2,3,4,etc.); nos retorne el nombre en letras. 

Para ello vamos a necesitar 3 parámetros en la reglas del mismo:

Rules:

parm(in:&NumeroMes, in:&Case, out:&NombreMes );

Variable &NúmeroMes es de tipo Numeric (2)

Variable &Case ('CAMEL', 'MAY', 'MIN') es de tipo Character (5) de acuerdo a lo que enviemos en segundo parámetro no retornará el nombre del mes en Mayúscula, Minúscula o si deseamos dejarlo como está, con la primera en mayúscula. 

Variable &NombreMes es de tipo Character (10)

Source: 

do case
    case &NumeroMes = 1
        &NombreMes = 'Enero'
    case &NumeroMes = 2
        &NombreMes = 'Febrero'
    case &NumeroMes = 3
        &NombreMes = 'Marzo'
    case &NumeroMes = 4
        &NombreMes = 'Abril'
    case &NumeroMes = 5
        &NombreMes = 'Mayo'
    case &NumeroMes = 6
        &NombreMes = 'Junio'
    case &NumeroMes = 7
        &NombreMes = 'Julio'
    case &NumeroMes = 8
        &NombreMes = 'Agosto'
    case &NumeroMes = 9
        &NombreMes = 'Septiembre'
    case &NumeroMes = 10
        &NombreMes = 'Octubre'
    case &NumeroMes = 11
        &NombreMes = 'Noviembre'
    case &NumeroMes = 12
        &NombreMes = 'Diciembre'
endcase
Do case
    case &Case = 'CAMEL'
        //Dejarlo como está, con la primera en mayúscula
    case &Case = 'MAY'
        &NombreMes = &NombreMes.ToUpper()
    case &Case = 'MIN'
        &NombreMes = &NombreMes.ToLower()
EndCase

Como se puede apreciar es un sencillo procedimiento que se puede utilizar en donde se lo requiera dentro de nuestra KB. El nombre del mismo es a criterio de cada uno.

Como digo siempre se puede mejorar y cualquier crítica es bienvenida, siempre que sea constructiva.



No hay comentarios:

Publicar un comentario

Qué es un Queue!? ... en Clarion

Publicado por  EMoreno  el 11/01/2006 - LWP Hola que tal. Una QUEUE es una estructura en memoria. Puede ser de un campo hasta "n...