2016-12-29 9 views
0

Я завершил поиск похожих заголовков, и ничто, похоже, не связано с моей проблемой.Crystal Reports.FormulaException: Имя этого поля неизвестно

Я использую Oracle, поэтому мне нужно создать XML-файл с типичной типизацией, который я сделал. Я использовал этот DataSet в качестве источника данных DataExplorer для данных отчета.

My DataSet содержит поля, которые в основном предназначены для заголовка страницы, поскольку поля в разделах «Детали» связаны с полями в заголовке страницы, поэтому я добавил столбцы в набор данных, которые повторяются для каждой строки подробностей, но содержат данные для заголовка страницы. (Я делал это раньше)

Моя проблема заключается в том, что когда я хочу подавить метку в PageHeader, используя значение в одном из полей PageHeader (если {dataset.fieldName} = "", тогда true else false) Я получаю эту ошибку;

CrystalDecisions.CrystalReports.Engine.FormulaException: This field name is not known. Details: errorKind

Если я не включаю в себя формулу, печатные издания отчета в порядке, но все ITextObject этикеток присутствуют, независимо от данных, и я получаю пейджинг/разделы, которые я хочу, но не могу Кажется, что они подавляют формулы с использованием любого поля, которое не относится к IFieldObject.

Я использую
Win2008
VS2010
CR4VS2010 13.0.4
и я не могу обновить, поскольку это не принадлежит моей компании.

Я сделал следующее:
отремонтированного VS2010
удалить и переустановить CR
установить CR Runtime (32bit 13.0.4)
удалены формулы и повторно запустить отчет (работает отлично)

TL; DR: Я хочу использовать формулу IFieldObject в формуле Suppress для ITextObject, а также формулу Suppress для всей секции, но я получаю вышеуказанную ошибку.

+0

Можете ли вы попробовать это? if isnull ({dataset.fieldName}) или {dataset.fieldName} = "", тогда true else false – heringer

+0

спасибо за ответ @heringer. однако это не решило проблему. – Anthony

ответ

0

Еще раз спасибо за ответ, @heringer.Я обнаружил, что проблема связана с базой данных, к которой я подключался. Это не видно в приложении, поскольку строка подключения хранится в файле конфигурации приложения, есть 3 версии базы данных, только одна из которых была обновлена ​​с новыми именами полей данных. Я случайно подключился к другой базе данных, которая еще не получила обновления, из-за несвоевременной регистрации файла app.config. Это, конечно, последнее, что я искал, потому что я не мог представить себе, как я пытаюсь разработать что-то новое в базе данных без dev !. Дело закрыто.

0

На самом деле это не ответ, но может помочь, и он слишком длинный, чтобы опубликовать комментарий.

Я столкнулся с этой проблемой давным-давно после перехода на новую версию Crytal. Я выявил 3 ситуации, когда это произошло:

  1. Этот нулевой случай я упомянул. Но вы уже сказали, что это не сработало.
  2. Когда набор данных не был введен. Но вы сказали, что это не ваше дело. Если вы используете XSD, я бы предложил вам дважды проверить, имеют ли DataColumn одинаковые типы в XSD.
  3. И странный: когда значение можно интерпретировать как другой тип, отличный от столбца. Например, столбец строк, в котором установлено значение, было datetime (строка [column] = date.ToString()). Я нашел 3 случая в нашей базе данных ошибок, все они с столбцами datetime, и все они с отчетами, которые отлично работали перед переносом Crystal Reports.

 Смежные вопросы

  • Нет связанных вопросов^_^