Во-первых, я терпеть не могу Crystal! Хорошо, что от моей груди ...Невозможно установить формулу выбора Crystal Report Programally
Теперь у нас есть старый VB6 приложения мы сохранить для клиента, который использует библиотеку Кристал автоматизации программно изменить формулы выбора записей в куче Crystal Reports 8.5 докладов.
Есть два отчета, которые ПОЛНОСТЬЮ идентичны. Я должен был изменить их недавно, чтобы добавить другое поле из другой таблицы. Когда я добавил таблицу в отчеты, хотя, добавив ее в визуальный конструктор, она не добавила ее в предложение FROM инструкции SQL. Итак, я вручную отредактировал инструкцию SQL для добавления в дополнительное соединение. KO, отлично работает. Если я запускаю отчеты в режиме предварительного просмотра Crystal, они работают точно так, как ожидалось.
Теперь пользователи отправились проверять изменения в приложении VB. Один из отчетов работает отлично и денди. В другом отчете, однако, не удается установить формулу выбора, как ожидалось.
Код устанавливает формулы выбора, используя функцию PESetSelectionFormula
. Я проверил, что строка, передаваемая функции в качестве новой формулы выбора, является правильной с помощью сквозного исследования переменных. Вызов PESetSelectionFormula
, похоже, работает нормально, и возвращает значение 1, которое, как я могу найти в любом месте, указывает на успех. (Другой доклад, который работает отлично от кода также возвращения 1.)
Однако в докладе не удается с сообщением об ошибке: Error Code: 534 - Error detected by database DLL.
Код для целей отладки отвалов из строки SQL в настоящее время используется отчет. SQL выходит из отчета:
SELECT ... FROM ...
WHERE
ORDER BY ...
Как вы можете видеть, предложение WHERE является пустым, которое я бы себе представить, почему DLL базы данных upchucking это заявление. Я не понимаю, почему библиотека автоматизации не устанавливает предложение WHERE, хотя вызов PESetSelectionFormula
передается действительной строкой и возвращает успех. Я подумал, возможно, это потому, что я вручную отредактировал SQL в отчете, чтобы добавить таблицу, которую он не добавлял, но я сделал то же самое в другом почти идентичном отчете, и этот работает нормально.
У кого-нибудь есть идеи, почему PESetSelectionFormula
может сообщить об успехе, но на самом деле ничего не делать?
P.S. Я уже пробовал сделать из базы данных База данных> Подтвердить базу данных, и при этом говорится, что отчет был обновлен и совсем не помог.
Хотя, по общему признанию, мы все еще работаем с Crystal 8.5, и я знаю, что они по крайней мере, что, 11 сейчас? Я знаю, что дизайнер был ОСОБЕННО улучшен, ... возможно, основная функциональность также была справедливой. – eidylon
По состоянию на CR12/2008 ... нет, нет. CR и BOb - это ИМХО, худшее платное программное обеспечение, которое я когда-либо использовал. Только один крошечный пример из десятков: стеки модальных диалогов для каждого небольшого изменения. – 2011-01-25 20:57:28