C # Crystal Reports и XML Dataset (ADO.NET) Проблемы с типизацией данных - PullRequest
1 голос
/ 26 августа 2009

Разработчики во второй половине дня,

У меня проблема, которая начинает появляться в моем фитиле. Я просмотрел справку Google и Crystal Reports и все еще не могу найти решение.

Мы создали XSD с полной информацией о типах данных и тому подобном. Создан отчет, связанный с этим XSD (с использованием класса c #, созданного с использованием Microsoft xsd.exe SDK) и использующий информацию о полях для заполнения отчета.

Из c # мы создаем экземпляр этого отчета и заполняем его XML-файлом, который соответствует этому XSD и проверен на соответствие ему.

Теперь проблема в том, что, хотя все проверяется без ошибок (формулы Crystal и т. Д.) И прекрасно компилируется, когда мы запускаем приложение и пытаемся заполнить Crystal Report, отчет, похоже, теряет все знания о типизации данных.

Формулы, такие как

if ({LetProperty.lp_buildings_selected} = true) then
    "Standard Cover With Accidental Damage Cover"
else
    "Standard Cover";

вернитесь с "Строка требуется здесь." ошибка. Эта формула должна работать нормально, так как указанное поле является логическим типом данных, Crystal Reports знает об этом во время разработки.

Чтобы заставить его работать, нам нужно было привести поле ToText и сравнить его с 'true'. Это простое решение, но мы будем создавать много отчетов и не хотим превращать код, который должен работать, в «грязный» грязный код, который будет работать.

Кто-нибудь может мне сказать, пропускаю ли я что-то явно очевидное или есть что-то, что нам нужно установить, так как это очень нас смущает!

Большое спасибо всем.

Ответы [ 3 ]

1 голос
/ 27 августа 2009

правый

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

Нам нужно было перед тем, как заполнить созданный набор данных из файла Xml (для передачи в отчет), мы прочитали Xsd в набор данных, чтобы он затем был строго типизирован и содержал всю информацию о типизации данных.

Я не знаю, почему Crystal не хранит всю информацию о типе данных, которая была ему назначена, когда мы ее создавали и связывали с Xsd, но это то, как мы ее обошли.

0 голосов
/ 09 октября 2009

Проблема только в том, что вам нужно включить схему в каждый файл XML? В этом случае полная информация о типе будет отправлена ​​в Crystal, когда вы скажете, что XML-файл является источником данных. Я думаю, что у меня была проблема, о которой вы упомянули, когда я не включил XSD в заголовок файла XML.

0 голосов
/ 26 августа 2009

Установлен ли для свойства LetProperty.lp_buildings_selected что-либо, кроме "true" или "false" в XML-документе (возможно, пустой строки)? Если это так, то это может быть причиной того, что Crystal Reports пытается использовать его как строку.

Я полагаю, что сгенерированный XSD, вероятно, настроен на предотвращение этого, но я все равно решил его выбросить.

...