¿Cómo obtener el nombre del mes en Crysta Reports?

Tengo un sistema operativo en ingles, idioma español mexico, separador de miles una coma (,), separador de decimales un punto (.). El usuario del sistema tiene un sistema operativo en español, idioma español mexico, separador de miles una coma (,), separador de decimales un punto (.). La única diferencia es el sistema operativo entre ambos. Cuando yo ejecuto el reporte desde mi maquina no me da ningún problema pero cuando lo ejecuto desde la maquina del usuario me da el siguiente error:
Error '20515' en tiempo de ejecucion: Error in File C:/rptFormalizacion.rpt: Error in formula <forMes> 'StringVar MonthName:=''; A variable name is expected here.
Esto es lo que tiene la variable forMes:
stringVar MonthName:='';                                                                                                     if Month(DataDate) = 1 then MonthName:= ' Enero del';    
... Y así sucesivamente hasta comletar los doce meses al final lleva lo siguiente..
MonthName
Hemos intentado cambiar Month(DataDate) por otra fórmula la cual obtiene el numero del eje : (6 = Junio), se ha intentado solo utilizando la información de los if sin la variable MonthName eje: ('Diciembre del'). Y nada me ha funcionado. Alguien tendrá algo con lo que me pueda guiar se los agradecería montones...

2 respuestas

Respuesta
1
No indica que versión de Crystal está utilizando y si el reporte que ejecuta desde el usuario es el mismo o hay una copia en cada uno.
Por favor ingresa a este link :
https://www.sdn.sap.com/irj/boc/support y aquí busca "error 20515" donde explican que el reporte pudo ser elaborado con Crystal 8.0 pero se salvó con una versión 7.0 y por ello el error.
En Crystal 8.5 existen dos funciones para obtener el nombre del mes de una fecha :
Mes = Month(fecha)
Nombre = MonthName(Mes)
Suerte !
Consultando el error 20515 en la página de Crystal pareciera que la
Buenos Días ifrancoz. La version del crystal es 7.0, y hay una copia para acada uno del reporte.. ¿Entonces qué puede ser?
Si son dos copias habría que comparar su tamaño, las fechas de la última modificación y pasar la copia de su equipo a la del usuario, salvando previamente la copia que allí existe.
Suerte !
Ya lo hice varias veces y aun así da el mismo problema, habrá alguna otra razón por la que esto este pasando
Habría que revisar algunos componentes de Crystal a ver si tienen la misma versión en ambos equipos comparando su tamaño y fecha.
¿La aplicación está en red o corre en cada equipo por separado?
Por ejemplo Crpe32.dll
Suerte !
Esta corriendo en un equipo nada más por el momento y ambos tiene la misma version.
Creo que el reporte no funciona en el equipo del usuario porque falta alguno de los controles de Crystal.
En su equipo funciona porque tiene instalado ahí el Crystal 7.0
En el equipo del usuario se colocó la aplicación utilizando el instalador generado por Visual Basic pero hay que incluir en dicho instalador los siguientes componentes de Crystal :
P2bdao.Dll SCR Physical Database DLL
P2ctdao.Dll SCR Physical Dictionary DLL
P2irdao.Dll SCR Physical Directory DLL
P2smon.Dll Active Data Driver
Crviewer.Dll Crystal Report Viewer
Craxdrt.Dll Report Designer Component
U2ddisk.Dll Disk File Destination
U2fcr.Dll Crystal Reports format
Crxf_Pdf.Dll PDF format
U2fwordw.Dll  Microsoft Word for Windows format
U2fxls.Dll Microsoft Excel format
Sscsdk80.Dll Charting Engine DLL
Pg32conv.Dll Auxiliary Charting DLL
Otra cosa que puedes hacer es instalar en el equipo del usuario el Crystal Reports, ejecutas el reporte y luego lo desinstala conservando los archivos.
Suerte !
El crystal 7.0 ya esta instalado en la maquina del usuario, alguna otra opción que me puedas recomendar te la agradecería mucho...
¿Si tiene instalado el Crystal Reports 7.0 entonces puede abrir el reporte y al darle presentación preliminar funciona o no?
Suerte !
Si funciona de esa manera pero cuando lo ejecuto desde el sistema me da el error que comente anteriormente
Lo que yo creo es que hay un DLL de Crystal que no se encuentra en el directorio C:\Windows\System32 y por ello puede ser el problema.
Habría que generar un instalador en su equipo incluyendo los DLL de Crystal y luego realizar la instalación en el usuario.
También hay que asegurarse que se esté utilizando la base de datos correcta, el Set Location y el Verify Database.
No veo otra solución.
Suerte !
Gracias voy a revisar lo de los dll...
Encontró algo en la revisión de los Dll de Crystal de las dos máquinas.
Si funciona en modo de diseño debe funcionar también en tiempo de ejecución.
Creo que hay que cerrar la pregunta.
Suerte !
Respuesta

Tomando la repuesta de ifrancoz lo dejaría de esta manera:

MonthName(Month({tabla.campofecha}))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas