Error al imprimir informes en Microsoft Dynamics SL: "Crystal imprimir Engine Error 515 – Error en la fórmula"


Resumen


Este artículo describe las razones que puede recibir el mensaje de error 515 de Error de motor de impresión de Crystal cuando imprime informes en Microsoft Dynamics SL. También se describen formas de resolver este problema.

Síntomas


Cuando imprime informes en Microsoft Dynamics SL, recibe el siguiente mensaje de error:
Error del motor de impresión de Crystal 515 - Error en la fórmula

Solución


Nota: Antes de seguir las instrucciones de este artículo, asegúrese de que tiene una copia de seguridad completa de la base de datos que pueda restaurar si surge algún problema.

Causa y solución 1

Este problema se produce cuando el registro de la tabla BATCH contiene valores en blanco en uno o ambos de los siguientes campos:
  • BaseCuryID
  • CuryID
Para resolver este problema, rellenar uno o ambos de estos campos. Para ello, siga estos pasos:
  1. Utilice el analizador de consultas SQL o SQL Server Management Studio para tener acceso a la base de datos de aplicación apropiada y, a continuación, ejecute la instrucción siguiente para identificar los registros de la tabla BATCH que tienen valores nulos en los campos BaseCuryID o en el campo CuryID :
     SELECT status,* from BATCH where BaseCuryID = '' or CuryID = '' 

    Notas:
    • En esta declaración, debe utilizar dos pares de comillas simples.
    • No se preocupe acerca de los lotes generados por esta consulta si dichos lotes tienen un estado de "V" o "d".
  2. Utilice los valores en el campo BatNbr para determinar los números de lote. Utilice el valor en el campo de módulo para determinar el módulo. Determinar si la divisa es la divisa base o una moneda extranjera. El campo BaseCuryID identifica la divisa base y el campo CuryID identifica la divisa base o una moneda extranjera.
  3. Utilice la instrucción siguiente para actualizar los registros de la tabla de proceso por lotes. Asegúrese de incluir el identificador de moneda apropiado para el
    BaseCuryID campo y para el campo CuryID :
     UPDATE BATCH SET BaseCuryID = 'BBB', CuryID = 'CCC' where BatNbr = 'XXXXXX' and Module = 'YY' 

    Nota: En esta declaración, BBB representa el ID de moneda base apropiada, CCC representa la base adecuada o ID de moneda extranjera, XXXXXXrepresenta el número de lote adecuado y aarepresenta la abreviatura del módulo de dos letras correspondiente.

Causa y solución 2

Este problema se produce cuando imprime informes de Order Management o de compras. Para resolver este problema, ejecute el proceso Order Management Workstation Install para comprobar que se ha completado la instalación de estación de trabajo de gestión de pedidos. Para ello, siga estos pasos:
  1. En la lista de módulos , haga clic en Gestión de pedidos.
  2. En el panel de Administración de pedidos , haga clic en
    OM Workstation Install bajo
    Procesos.
  3. Haga clic en Iniciar.
  4. Repita este proceso para todas las estaciones de trabajo.
Nota: Si sigues recibiendo el mensaje de error, consulte la sección "Causa y solución 6".

Causa y solución 3

Este problema se produce cuando imprime facturas desde la
Pantalla de facturas (40.680.00) y una versión incorrecta del archivo Crufladg.dll está en la carpeta OM.

Compruebe que la versión del archivo Crufladg.dll en la carpeta OM es correcta. Para ello, siga estos pasos:
  1. Utilice el Explorador de Windows para localizar todas las apariciones del archivo Crufladg.dll. Este archivo debe estar en las tres ubicaciones siguientes:
    • IV\OM Salomón
    • Winsys\Register
    • Winnt\System32 o Windows\System32
  2. Examine las fechas, tamaños y versiones de los archivos Crufladg.dll. Los tres archivos Crufladg.dll deben tener la misma fecha de modificación, el mismo tamaño de archivo y el mismo número de versión.
  3. Si el archivo Crufladg.dll tiene una fecha 21/5/99 o un número de versión 4.01, reemplace este archivo con una versión posterior del archivo.

Causa y solución 4

Este problema se produce cuando el archivo U2lsol4.dll es incorrecto, dañado o falta. Para resolver este problema en Microsoft Solomon 5.5 y en versiones anteriores de Microsoft Solomon, copie el archivo U2lsol4.dll a la carpeta Winnt\Crystal o a la carpeta Windows\Crystal. Para ello, siga estos pasos:
  1. Compruebe que todos los informes producen el mensaje de error 515.
  2. Cambiar el nombre de los archivos U2lsol4.dll existentes en la carpeta Winnt\Crystal o en la carpeta Windows\Crystal a U2lsol4.old.
  3. Copie el archivo U2lsol4.dll de la carpeta Solomon\Wrkstn\Windows\Crystal a la carpeta local Winnt\Crystal o a la carpeta Windows\Crystal local.
  4. Intente imprimir de nuevo un informe. Si el problema persiste, copie el archivo U2lsol4.dll de la carpeta Winnt\Crystal o desde la carpeta Windows\Crystal a la carpeta Winnt\System32 o en la carpeta \Windows\System32.
Nota: Esta resolución se aplica sólo a Microsoft Solomon 5.5 y en versiones anteriores de Microsoft Solomon.

Causa y solución 5

Este problema se produce cuando intenta imprimir o imprimir vista previa de un registro en el informe de Órdenes de compra (04.600.00) si el campo CuryID o BaseCuryID está en blanco en una de las siguientes tablas:
  • PURCHORD
  • PURORDDET
  • POREQHDR
  • POREQDET
Para resolver este problema, Microsoft Solomon 5.5 y versiones anteriores, actualizar la tabla que tiene el espacio en blanco
Campo CuryID o BaseCuryID en blanco . Para ello, siga estos pasos:
  1. Utilice el analizador de consultas SQL o SQL Server Management Studio para tener acceso a la base de datos de aplicación apropiada y, a continuación, ejecute las instrucciones siguientes para determinar si el campo CuryID está en blanco en una o varias de las cuatro tablas que aparecen anteriormente en esta sección:
     SELECT CuryID, BaseCuryID, PONbr, * from PURCHORD where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, PONbr, * from PURORDDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQHDR where CuryID in ('', '2345') or BaseCuryID in ('', '2345')

    Nota: En cada una de estas instrucciones, debe utilizar dos pares de comillas simples.
  2. Si se devuelven registros, utilice las siguientes instrucciones update para rellenar el campo CuryID :
     UPDATE PURCHORD SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX' 
    UPDATE PURORDDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX'
    UPDATE POREQDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'
    UPDATE POREQHDR SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'

    Notas:
    • En cada una de estas instrucciones, debe utilizar dos pares de comillas simples.
    • En cada una de estas instrucciones,
      YYY representa el identificador de moneda extranjera correcto,
      ZZZ representa el identificador de divisa base correcto y
      XXXXXX representa el número de orden de compra correspondiente del registro para actualizar que identificó en el paso 1.
Para resolver este problema, Microsoft Solomon 6.0 y posterior, actualizar la tabla que tiene el espacio en blanco
Campo CuryID . Para ello, siga estos pasos:
  1. Utilice el analizador de consultas SQL o SQL Server Management Studio para tener acceso a la base de datos de aplicación apropiada y, a continuación, ejecute las instrucciones siguientes para determinar si el campo CuryID está en blanco en una o varias de las cuatro tablas que aparecen anteriormente en esta sección:
     SELECT CuryID, PONbr, * from PURCHORD where (CuryID in ('', '2345')
    SELECT CuryID, PONbr, * from PURORDDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQHDR where (CuryID in ('', '2345')

    Nota: En cada una de estas instrucciones, debe utilizar dos pares de comillas simples.
  2. Si se devuelven registros, utilice las siguientes instrucciones update para rellenar el campo CuryID :
     UPDATE PURCHORD SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE PURORDDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQHDR SET CuryID = 'YYY' where (CuryID in ('', '2345')

    Notas:
    • En cada una de estas instrucciones, debe utilizar dos pares de comillas simples.

Causa y solución 6

Este problema se produce cuando el archivo Crufladg.dll no está registrado. Para resolver este problema, registre manualmente el archivo Crufladg.dll. Para ello, siga estos pasos:
  1. Utilice el Explorador de Windows para localizar el archivo Crufladg.dll en la estación de trabajo.
  2. Haga clic en el archivo, seleccione Abrir cony, a continuación, haga clic en otros.
  3. Examine la unidad local. Esto suele ser la unidad C. Haga clic ya sea Regsvr32.exe en la carpeta \Winnt\System32 o
    Regsvr.exe en la carpeta \Windows\System.
  4. Haga clic en Abrir.
  5. Haga clic en Aceptar. Un mensaje indica si el archivo se registró correctamente.

Causa y solución 7

Este problema se produce cuando imprime informes desde una estación de trabajo específica. Para resolver este problema en Microsoft Solomon 5.5 y en versiones anteriores de Microsoft Solomon, siga estos pasos:
  1. Utilice la opción Agregar o quitar programas del Panel de Control para desinstalar el programa cliente de Microsoft Solomon IV.
  2. Cambiar el nombre de la carpeta Winnt\Crystal.
  3. Vuelva a instalar el programa cliente de Microsoft Solomon IV.
Nota: Esta resolución se aplica sólo a Microsoft Solomon 5.5 y en versiones anteriores de Microsoft Solomon.

Causa y resolución 8

Este problema se produce cuando el nombre de impresora es demasiado largo. Para resolver este problema, cambie el nombre de impresora predeterminado para que contenga menos de 25 caracteres.

Causa y resolución de 9

Este problema se produce cuando se actualiza desde Microsoft Solomon IV 4.21 con Crystal Reports 6.0 a Microsoft Solomon 5.5 con Crystal Reports 8.5. En este caso, el mensaje de error hace referencia a la función de total de RT. Para resolver este problema, siga estos pasos:
  1. Utilice las funciones de totales incluidas con Crystal Reports 8.5 para revisar el cuadro de fórmula.
  2. Siga las instrucciones en el artículo c2002613 de Crystal Knowledge Base para instalar los archivos DLL correctos. Para ello, visite el siguiente sitio Web de Business Objects:Nota: Aunque este artículo Crystal Knowledge Base hace referencia a Crystal Reports 7.0, los pasos también pueden utilizarse para Crystal Reports 8.5.
Microsoft proporciona información de contacto de terceros para ayudarle a encontrar soporte técnico. Esta información de contacto puede cambiar sin previo aviso. Microsoft no garantiza la exactitud de esta información de contacto de terceros.

Causa y solución 10

Este problema se produce cuando faltan archivos en la carpeta local Crystal. Para resolver este problema en Microsoft Solomon 5.5 y en versiones anteriores de Microsoft Solomon, determine el número de archivos en la carpeta local Crystal y reemplace la carpeta si es necesario. Para ello, siga estos pasos:
  1. Utilice el Explorador de Windows o Mi PC para buscar la carpeta local Winnt o la carpeta local de Windows.
  2. Haga clic en la carpeta Crystal y, a continuación, haga clic en
    Propiedades.
  3. Tenga en cuenta el número de archivos en esta carpeta. En Microsoft Solomon 5.5, si la carpeta contiene menos de 129 archivos, cambie el nombre o elimine la carpeta Crystal.
  4. En el servidor, busque la carpeta de instalación de Solomon.
  5. Abra la carpeta Wrkstn\Windows y, a continuación, copie la carpeta Crystal a la carpeta local Winnt o Windows.
Notas:

Más información


Los productos de terceros que se indican en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, respecto al rendimiento o confiabilidad de estos productos.