Поделиться через


Ошибка Crystal Print Engine 515 — ошибка в формуле при печати отчетов в Microsoft Dynamics SL

В этой статье описываются причины, по которым может появиться сообщение об ошибке движка печати Crystal Print Engine Error 515 при печати отчетов в Microsoft Dynamics SL, и способы устранения этой проблемы.

Применимо к: Microsoft Dynamics SL
Исходный номер базы знаний: 873549

Симптомы

При печати отчетов в Microsoft Dynamics SL вы получите следующее сообщение об ошибке:

Ошибка обработчика печати кристалла 515 — ошибка в формуле

Решение

Примечание.

Прежде чем следовать инструкциям в этой статье, убедитесь, что у вас есть полная резервная копия базы данных, которую можно восстановить, если возникла проблема.

Причина и разрешение 1

Эта проблема возникает, когда запись в таблице BATCH содержит пустые значения в одном или обоих из следующих полей:

  • BaseCuryID
  • CuryID

Чтобы устранить эту проблему, заполните один или оба поля. Для этого выполните следующие шаги:

  1. Используйте анализатор sql query или SQL Server Management Studio для доступа к соответствующей базе данных приложения, а затем выполните следующую инструкцию, чтобы определить записи в таблице BATCH с пустыми значениями в поле BaseCuryID или в поле CuryID :

    SELECT status,* from BATCH where BaseCuryID = '' or CuryID = ''
    

    Примечание.

    • В этом утверждении необходимо использовать две пары одиночных кавычек.
    • Не беспокойтесь о пакетах, создаваемых этим запросом, если эти пакеты имеют состояние "V" или "D".
  2. Используйте значения в поле BatNbr для определения номеров пакетов. Используйте значение в поле "Модуль" для определения модуля. Определите, является ли валюта базовой или иностранной валютой. Поле BaseCuryID определяет базовую валюту, а поле CuryID определяет базовую валюту или иностранную валюту.

  3. Используйте следующую инструкцию, чтобы обновить записи в таблице BATCH. Убедитесь, что вы включили соответствующий идентификатор валюты для поля BaseCuryID и для поля CuryID :

    UPDATE BATCH SET BaseCuryID = 'BBB', CuryID = 'CCC' where BatNbr = 'XXXXXX' and Module = 'YY'
    

    Примечание.

    В этом утверждении BBB представляет соответствующий базовый идентификатор валюты, CCC представляет соответствующий базовый или иностранный идентификатор валюты, XXXXXX представляет соответствующий номер пакета, а YY представляет соответствующее двухбуквенное сокращение модуля.

Причина и разрешение 2

Эта проблема возникает при печати отчетов управления заказами или отчетов о покупке. Чтобы устранить эту проблему, запустите процесс установки рабочей станции управления заказами, чтобы убедиться, что установка рабочей станции управления заказами завершена. Для этого выполните следующие шаги:

  1. В списке модулей выберите "Управление заказами".
  2. В области "Управление заказами" выберите OM Workstation Install в разделе "Процессы".
  3. Нажмите кнопку "Начать".
  4. Повторите этот процесс для всех рабочих станций.

Примечание.

Если вы продолжаете получать сообщение об ошибке, см. раздел «Причина и разрешение 6».

Причина и разрешение 3

Эта проблема возникает при печати счетов на экране "Счета" (40.680.00), а неправильная версия файла Crufladg.dll находится в папке OM.

Убедитесь, что версия файла Crufladg.dll в папке OM правильна. Для этого выполните следующие шаги:

  1. Используйте проводник Windows, чтобы найти все вхождения файла Crufladg.dll. Этот файл должен находиться в следующих трех расположениях:

    • Solomon IV\OM
    • Winsys\Register
    • Winnt\System32 or Windows\System32
  2. Изучите даты, размеры и версии файлов Crufladg.dll. Все три Crufladg.dll файлы должны иметь одну и ту же дату изменения, размер файла и тот же номер версии.

  3. Если файл Crufladg.dll имеет дату 5.21.99 или номер версии 4.01, замените этот файл более поздней версией файла.

Причина и разрешение 4

Эта проблема возникает, когда файл U2lsol4.dll отсутствует, поврежден или неправильно. Чтобы устранить эту проблему в Microsoft Solomon 5.5 и более ранних версиях Microsoft Solomon, скопируйте файл U2lsol4.dll в папку Winnt\Crystal или в папку Windows\Crystal. Для этого выполните следующие шаги:

  1. Убедитесь, что все отчеты выдают сообщение об ошибке 515.
  2. Переименуйте существующие U2lsol4.dll файлы в папке Winnt\Crystal или папке Windows\Crystal в U2lsol4.old.
  3. Скопируйте файл U2lsol4.dll из Solomon\Wrkstn\Windows\Crystal папки в локальную Winnt\Crystal папку или в локальную Windows\Crystal папку.
  4. Повторите попытку печати отчета. Если проблема сохраняется, скопируйте файл U2lsol4.dll из папки Winnt\Crystal или из папки Windows\Crystal в папку Winnt\System32 или в папку \Windows\System32.

Примечание.

Это решение относится только к Microsoft Соломону 5.5 и более ранним версиям Microsoft Соломон.

Причина и разрешение 5

Эта проблема возникает при попытке печати записи или предварительного просмотра записи в отчете " Заказы на покупку" (04.600.00), если поле CuryID или поле BaseCuryID пусто в одной из следующих таблиц:

  • PURCHORD
  • PURORDDET
  • POREQHDR
  • POREQDET

Чтобы устранить эту проблему в Microsoft Solomon версии 5.5 и более ранних, обновите таблицу с пустым полем CuryID или пустым полем BaseCuryID. Для этого выполните следующие шаги:

  1. Используйте анализатор SQL query или SQL Server Management Studio для доступа к соответствующей базе данных приложения, а затем выполните следующие инструкции, чтобы определить, пусто ли поле CuryID в одной или нескольких из четырех таблиц, перечисленных ранее в этом разделе:

    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')
    

    Примечание.

    В каждом из этих утверждений необходимо использовать две пары одинарных кавычек.

  2. Если возвращаются записи, используйте следующие инструкции обновления для заполнения поля 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'
    

    Примечание.

    • В каждом из этих утверждений необходимо использовать две пары одинарных кавычек.
    • В каждом из этих заявлений YYY представляет правильный идентификатор иностранной валюты, ZZZ представляет правильный идентификатор базовой валюты, а XXXXXX представляет соответствующий номер заказа на покупку для записи, которую вы определили на шаге 1.

Чтобы устранить эту проблему в Microsoft Solomon 6.0 и более поздних версиях, обновите таблицу с пустым полем CuryID. Для этого выполните следующие шаги:

  1. Используйте анализатор SQL query или SQL Server Management Studio для доступа к соответствующей базе данных приложения, а затем выполните следующие инструкции, чтобы определить, пусто ли поле CuryID в одной или нескольких из четырех таблиц, перечисленных ранее в этом разделе:

    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')
    

    Примечание.

    В каждом из этих утверждений необходимо использовать две пары одинарных кавычек.

  2. Если возвращаются записи, используйте следующие инструкции обновления для заполнения поля 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')
    

    Примечание.

    В каждом из этих утверждений необходимо использовать две пары одинарных кавычек.

Причина и разрешение 6

Эта проблема возникает, когда файл Crufladg.dll не зарегистрирован. Чтобы устранить эту проблему, вручную зарегистрируйте файл Crufladg.dll. Для этого выполните следующие шаги:

  1. Используйте проводник Windows, чтобы найти файл Crufladg.dll на рабочей станции.
  2. Щелкните правой кнопкой мыши на файл, наведите указатель мыши на "Открыть с помощью", а затем выберите "Другое".
  3. Просмотрите локальный диск. Как правило, диск C. Выберите Regsvr32.exe в \Winnt\System32 папке или Regsvr.exe в папке \Windows\System .
  4. Нажмите кнопку "Открыть".
  5. Нажмите кнопку "ОК". Сообщение указывает, успешно ли зарегистрирован файл.

Причина и разрешение 7

Эта проблема возникает при печати отчетов с определенной рабочей станции. Чтобы устранить эту проблему в Microsoft Соломон 5.5 и более ранних версиях Microsoft Соломон, выполните следующие действия.

  1. Чтобы удалить программу Microsoft Соломон IV, используйте кнопку "Добавить или удалить программы " на панели управления.
  2. Переименуйте папку Winnt\Crystal .
  3. Переустановите программу Клиента Microsoft Solomon IV.

Примечание.

Это решение относится только к Microsoft Соломону 5.5 и более ранним версиям Microsoft Соломон.

Причина и разрешение 8

Эта проблема возникает, когда имя принтера слишком длинное. Чтобы устранить эту проблему, измените имя принтера по умолчанию, чтобы оно содержало менее 25 символов.

Причина и разрешение 9

Эта проблема возникает при обновлении с Microsoft Соломон IV 4.21 с Crystal Reports 6.0 до Microsoft Соломон 5.5 с Crystal Reports 8.5. В этом случае сообщение об ошибке ссылается на функцию суммирования RT. Устранить проблему можно так:

  1. Используйте функции общей суммирования, включенные в Crystal Reports 8.5, чтобы пересмотреть поле формулы.
  2. Следуйте указаниям в статье c2002613 в Базе знаний Crystal, чтобы установить правильные DLL-файлы.

Контактные данные сторонних организаций предоставлены в этой статье с целью помочь пользователям получить необходимую техническую поддержку. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность этих сторонних контактных данных.

Причина и разрешение 10

Эта проблема возникает, когда файлы отсутствуют в локальной папке Crystal. Чтобы устранить эту проблему в Microsoft Соломон 5.5 и более ранних версиях Microsoft Solomon, определите количество файлов в локальной папке Crystal, а затем замените папку, если необходимо. Для этого выполните следующие шаги:

  1. Используйте проводник Windows или мой компьютер, чтобы найти локальную папку Winnt или локальную папку Windows.
  2. Щелкните правой кнопкой мыши папку "Кристалл" и выберите пункт "Свойства".
  3. Обратите внимание на количество файлов в этой папке. Для Microsoft Соломон 5.5, если папка содержит менее 129 файлов, переименуйте или удалите папку Crystal.
  4. На сервере найдите папку установки Соломона.
  5. Откройте папку Wrkstn\Windows, а затем скопируйте папку Crystal в локальную папку Winnt или Windows.

Примечание.

  • Это решение относится только к Microsoft Соломону 5.5 и более ранним версиям Microsoft Соломон.
  • Если ошибка сохраняется, см. раздел "Причина и разрешение 7 ".

Дополнительные сведения

Продукты сторонних производителей, обсуждаемые в этой статье, выпускаются компаниями, не связанными с Microsoft. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.