MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 24/02/10, 13:02:24
minerva0112 minerva0112 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 116
Question Obtener el nombre del mes de una fecha

hola :

Existe alguna funcion que solo me traiga el nombre del mes de un campo fecha. Estoy utilizando la funcion CONVERSION_EXIT_LDATE_OUTPUT, la cual trae la fecha completa pero como haria para solo mostrar el mes gracias
Responder Con Cita
  #2  
Viejo 24/02/10, 13:38:54
gerbeltran gerbeltran is offline
Member
 
Fecha de Ingreso: jun 2007
Mensajes: 55
Wink

Buenas, necesariamente tiene que ser una función?
Porque con la que tienes ya puedes hacerlo, tengo entendido que la función CONVERSION_EXIT_LDATE_OUTPUT te devuelve algo asi como 24. Febrero2010 en el output.
Luego tomas de ahí la parte del string que te interesa y listo.

Otra opción también sería usar la función MONTH_NAMES_GET que te devuelve en una tabla interna los 12 meses con sus respectivos nombres , y ahí tu haces un READ TABLE con el mes que quieres obtener la descripción.

Si tienes alguna duda dime que te paso el código.

Saludos,
Germán


Responder Con Cita
  #3  
Viejo 24/02/10, 14:27:28
minerva0112 minerva0112 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 116
Question

Gracias German,

Cual seria la manera de solo tomar parte del string.


mil gracias
Responder Con Cita
  #4  
Viejo 24/02/10, 15:16:09
Avatar de Alfredosite
Alfredosite Alfredosite is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Localización: Lima-Perú
Mensajes: 135
Smile Re:

Lo que debes hacer es esto:
*Tabla que guarda las descripciones de los meses
DATA: gt_t247 LIKE t247 OCCURS 0 WITH HEADER LINE.
*Variables que guarda el mes y la descripción
DATA: v_mes type T247-MNR,
v_mes_txt type T247-LTX,
v_fecha_txt(50) type c,
v_dia type d.

* Obtienes la descripción de todos los nombres de los meses
CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
language = sy-langu
TABLES
month_names = gt_t247
EXCEPTIONS
month_names_not_found = 1
OTHERS = 2.
*Tomas el mes de un fecha por lo general es 5 y 6to caracter de la cadena de fechas ejemplo si hoy es 24/02/2010 dentro de abap la fecha se muestra asi: 20100224 entonces debes tomar solo los caracteres que muestran el mes.

v_dia = sy-datum.
v_mes = v_dia+4(2). "Obtienes el mes

*Obtienes la descripción del mes seleccionado
Loop at gt_t247 WHERE LTX eq v_mes.
v_mes_txt = gt_t247-ltx.
endloop.

*Si quieres mostrar la fecha en texto EJEM: 24 de Febrero del 2010
CONCATENATE v_dia+6(2) 'de' v_mes_txt 'del' v_dia(4) INTO v_fecha_txt.
Responder Con Cita
  #5  
Viejo 24/02/10, 19:57:45
gerbeltran gerbeltran is offline
Member
 
Fecha de Ingreso: jun 2007
Mensajes: 55
Buenas

Ahi Alfredo te explicó muy bien como hacerlo con la 2da opcion que te comenté.

Otra opción:
Para tomar el contenido del mes puedes hacer un split a la variable donde tienes el string que te devolvio la funcion que vos estabas usando.
Por ejemplo si la variable v_output = '24. Febrero 2010'.

DATA: str1 TYPE string,
str2 TYPE string,
str3 TYPE string.

SPLIT v_output AT space INTO: str1 str2 str3.

Y en str2 te va a quedar guardado el string "Febrero".


Saludos y éxitos!
Germán.
Responder Con Cita
  #6  
Viejo 26/02/10, 19:41:27
Avatar de luis999
luis999 luis999 is offline
Member
 
Fecha de Ingreso: jun 2008
Localización: Lima - Perú
Mensajes: 82
Cool



Hola, puedes usar esto:

CALL FUNCTION 'ISP_GET_MONTH_NAME'
EXPORTING
date = '00000000'
language = sy-langu
month_number = "Aca le das el mes"
IMPORTING
* LANGU_BACK =
longtext = "Aca obtienes el nombre del mes"
* SHORTTEXT =
EXCEPTIONS
calendar_id = 1
date_error = 2
not_found = 3
wrong_input = 4
OTHERS = 5.

Saludos, espero que te sirva
__________________
Luis Lipa
Responder Con Cita
  #7  
Viejo 01/10/10, 05:53:55
fporcel fporcel is offline
Junior Member
 
Fecha de Ingreso: oct 2010
Mensajes: 1
Thumbs up Función devuelve Nombre del Mes

Te mando este ejemplo, creo que es más eficiente y lo puedes convertir fácilmente a cualquier Lenguaje o Base de Datos:
/////////////////////////////////////////////////////////////////////////
//Funtion: f_nom_mes
// Creada originalmente en Clipper y adaptada a Power Builder
//Argumentos:
//ai_num_mes número de mes (0 al 13 con, apertura y cierre)
//ai_lmes longitud de respuesta:
// Cuando es 3 DIC, o cuando es 9 DICIEMBRE
//Returns: String
//Descripción: Retorna el nombre del mes
////////////////////////////////////////////////////////////////////////
String ls_nom_mes, ls_nmeses

If ai_lmes =3 Then
ls_nmeses="APEENEFEBMARABRMAYJUNJULAGOSETOCTNOVDICCIE"
Else
ls_nmeses=" Apertura Enero Febrero Marzo Abril Mayo Junio Julio AgostoSetiembre OctubreNoviembreDiciembre Cierre"
End if
ls_nom_mes=mid(ls_nmeses,ai_num_mes*ai_lmes+1,ai_lmes)

Return ls_nom_mes
Responder Con Cita
  #8  
Viejo 25/10/12, 21:05:42
MagnaF MagnaF is offline
Senior Member
 
Fecha de Ingreso: dic 2009
Mensajes: 117
Un poco tarde pero yo encontré la solución consultando directamente la tabla

SELECT single *
FROM T247
where spras = sy-langu
and mnr = mes.

Saludos,
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:28:32.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web