Устранение ошибок Crystal Report®

В этой статье описывается устранение распространенных ошибок Crystal Report® в Соломоне.

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

  1. Microsoft Dynamics SL обеспечивает поддержку установки Crystal Reports®, содержимого стандартных отчетов, производительности стандартных отчетов и ответов на общие практические вопросы об основных функциях в Crystal. Microsoft Dynamics SL не обязана предоставлять поддержку отладки для измененных или недавно разработанных отчетов, но будет следовать обычным методам устранения неполадок технической поддержки (описанным ниже), чтобы убедиться, что ошибка Microsoft Dynamics SL не существует.

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

    • Какой отчет печатается?
    • Какой формат этого отчета печатается?
    • Настроен ли отчет?
    • Используется ли шаблон, сортировка и (или) выборка?
    • Работал ли этот отчет? Что изменилось?
    • Работает ли отчет в других базах данных (например, демонстрационной базе данных)?
  3. Следующим шагом является определение того, связана ли проблема с базой данных или приложением, путем попытки повторного создания ошибки. Если ту же ошибку можно повторно создать в других базах данных (демонстрационные базы данных), служба технической поддержки Dynamics SL задокументирует и отправит шаги тестирования в группу разработки Dynamics SL, чтобы можно было доставить исправление. Если же ошибка, как представляется, связана только с этой базой данных, то она может быть признаком проблемы с фактическими данными, а не ошибкой приложения.

Полные инструкции по устранению неполадок с Crystal Report® см. в следующих шагах.

Примечание.

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

  1. Определите, какой отчет печатается, просмотрите имя и номер экрана отчета, которые отображаются в строке заголовка экрана рентабельности инвестиций (рентабельность инвестиций).

  2. Определите, какой формат отчета выбран при печати отчета. Например, при устранении неполадок с подробным отчетом реестра общего реестра определите, какой из двух форматов отчетов используется: стандартный или мультивалютный.

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

    SELECT * from RPTCONTROL where ReportNbr = '01620'
    

    Примечание.

    Где theReportNbr = первые 5 цифр экрана отчета. Значение должно быть введено в кавычки и без десятичного разряда. В этом примере 01620 представляет общий отчет журнала сведений о gl (01.620.00).

    Просмотрите сведения, хранящиеся в полях ReportFormat00 — ReportFormat07. Найдите нужное имя формата отчета и запишите, в каком поле ReportFormatXX оно найдено. Соответствующее имя файла отчета будет найдено в соответствующем поле ReportNameXX, которое является *. Имя файла RPT , используемое Dynamics SL при печати отчета. На основе примера стандартный формат отчета "Общие сведения" хранится в ReportFormat00 и соответствующем *. Имя файла отчета RPT — 01620 находится в reportName00.

    Примечание.

    Вся информация важна, так как она потребуется на последующих шагах.

  4. Определите, является ли отчет стандартным отчетом Dynamics SL.

    1. Используя Обозреватель, просмотрите содержимое DYNAMICSSL\USR_RPTS каталога и определите, является ли *. Там находится RPT-файл, отмеченный на шаге 3. Если это так, это возможное указание на настраиваемый отчет. Переименуйте файл.

    2. Используя Обозреватель, найдите и запишите *. RPT-файл, расположенный в подкаталоге модуля (то есть \SOLOMONIV\GL\01620.RPT). Если дата отличается от даты, найденной в Dynamics SL CD, которая соответствует текущему установленному продукту, это может указывать на настраиваемый отчет или сбой установки отчета. Переименуйте и замените этот файл на файл из соответствующего компакт-диска продукта или пакета обновления. Удалите атрибут Read-Only при использовании компакт-диска. Повторно протестировать отчет.

  5. Удалите все шаблоны, сортировки или выберите и повторно протестирует отчет. Если отчет успешно печатается, повторно создайте выбор сортировки с помощью демонстрационной базы данных и сравните результаты. Если обе стороны получают ошибку, проблема может быть связана с удобством использования или потенциальным дефектом. Если ошибка не получена при использовании демонстрационной базы данных, перейдите к шагу 6.

  6. Удалите все потерянные временные записи из RPTRUNTIME и RPTCOMPANY, используя следующие инструкции в анализаторе запросов. Перед выполнением инструкций все пользователи должны выйти из Dynamics SL.

    Примечание.

    RPTRUNTIME находится как в системных базах данных, так и в базах данных приложений в Dynamics SL. RPTCOMPANY находится только в базах данных приложения Solomon IV версии 4.x. Эти таблицы используются для идентификации пользователей и рабочих станций, печатающих отчет, что позволяет нескольким пользователям одновременно печатать один и тот же отчет.

    1. Получите доступ к соответствующей системной базе данных и выполните следующую инструкцию:

      DELETE from RPTRUNTIME
      
    2. Выберите соответствующую базу данных приложения и выполните следующую инструкцию:

      DELETE from RPTRUNTIME
      
      DELETE from RPTCOMPANY
      
    3. Если после выполнения инструкций сообщения об ошибках по-прежнему отображаются, но не могут быть повторно созданы в демонстрационных базах данных, выполните следующие действия, чтобы изучить фактические данные.

  7. Просмотрите SQL-запрос, используемый отчетом.

    1. Доступ к отчету можно получить в Designer Crystal Reports®.

    2. Выберите База данных, Показать SQL-запрос.

    3. Выберите имя источника базы данных в списке Источники данных компьютера. Нажмите ОК.

    4. Нажмите кнопку ОК еще раз на экране SQL Server входа, чтобы войти в систему под учетной записью sa.

      В следующем примере показан SQL-запрос, используемый отчетом "Общий реестр подробных сведений". Эта инструкция выполняется для базы данных, а предложение FROM, используемое запросом, содержит таблицы или представления базы данных, используемые для печати отчета. Отчеты, зависящие от рабочей таблицы, будут отображать имена объектов, начинающиеся или заканчивающиеся WRK на в предложении FROM. В отчетах, зависящих от представления, будут отображаться имена объектов, начинающиеся с vr.

      SELECT vr_01620."Acct", vr_01620."Sub", ..... FROM "DemoApp0060"."dbo"."vr_01620"
      

      vr_01620 Запишите все таблицы или представления, перечисленные в разделе FROM инструкции Query. Если указана рабочая таблица, перейдите к шагу 8. Если отображается представление, перейдите к шагу 9. Если ни рабочая таблица, ни представление не указаны, перейдите к шагу 10.

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

    Примечание.

    Рабочая таблица — это пустая таблица, используемая только при печати отчета или выполнении процесса. Рабочие таблицы должны быть пустыми, если отчет, зависящий от конкретной рабочей таблицы, в настоящее время не создается в Dynamics SL. Например, в заявлениях клиента AR (08.600.00) используется рабочая таблица с именем AR08600_wrk. AR08600_wrk появится в предложении FROM, на который ссылается шаг 7.

    Получите доступ к соответствующей базе данных приложения и выполните следующую инструкцию:

    DELETE from AR08600_WRK
    

    Перейдите к шагу 9.

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

  10. Если ошибки продолжаются после удаления потерянных записей из рабочих таблиц, воссоздания представления или в случаях, когда в инструкциях запроса не используются ни рабочие таблицы, ни представления, необходимо просмотреть фактические данные, возвращаемые из представления, хранимой процедуры или запроса. Выполните инструкцию Crystal SQL Query, рассмотренную на шаге 7 в анализаторе запросов.

    1. Перейдите к соответствующей базе данных приложения и скопируйте и вставьте инструкцию SQL-запроса, рассмотренную на шаге 7, в окно запроса.

    2. Удалите кавычки с помощью команды Изменить, Заменить найти что: " Выберите Заменить все. При этом будут удалены все кавычки. Поле Replace With (Заменить на) остается пустым.

    3. Удалите из запроса полное имя базы данных, владельца, имя объекта.

    4. Используя пример, приведенный в шаге 7, удалите DemoApp0060.dbo.vr_01620, оставив только vr_01620

    5. В Dynamics SL выполните предварительный просмотр отчета с экрана roi. Оставьте все сообщения об ошибках на экране, не нажимая кнопку ОК. Которая вставляет необходимую временную запись в RPTCOMPANY.

    6. Выполните инструкцию SQL-запроса в анализаторе запросов и проверьте данные на наличие недопустимых или отсутствующих данных.

    7. Если после просмотра данных будет установлено, что причиной проблем с отчетом являются отсутствующие или поврежденные данные, используйте соответствующий модуль Проверка целостности (только проверка параметров), чтобы проверить наличие вспомогательных записей. Дополнительные сведения о выполнении проверок целостности см. в разделе On-line справки Dynamics SL или Руководства пользователя.

  11. Если требуется дополнительная помощь, обратитесь в службу технической поддержки Dynamics SL.