powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports, отчеты с параметрами
5 сообщений из 5, страница 1 из 1
Crystal Reports, отчеты с параметрами
    #35252453
silart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Я понимаю, что вопрос тупой, но все же...
Как передать параметры в отчет CR программно?
Создал простой отчет, добавил параметрическое поле "Title" типа string, перетащил поле на отчет. Таким образом, при передаче строкового параметра, в отчете должен меняться текст заголовка.

Последовательность действий такая:
(Делаю проект на Qt)

Создаю ActiveX компонент CrystalRuntime.Application
Код: plaintext
1.
2.
pCRApplication = new QAxObject(this);
pCRApplication->setControl("CrystalRuntime.Application");

Вызываю метод OpenReport() и передаю ему файл отчета
Код: plaintext
1.
QAxObject* pCReport = pCRApplication->querySubObject("OpenReport(QString, QVariant)", "reports\\rtitle.rpt");

Читаю свойство "ParameterFields"
Код: plaintext
1.
QAxObject* pParameterFieldDefinitions = pCReport->querySubObject("ParameterFields");

Получаю параметр "Title" и задаю ему новое значение.
Код: plaintext
1.
2.
QAxObject* pTitle = pParameterFieldDefinitions->querySubObject("GetItemByName(QString, QVariant)", "Title");
pTitle->dynamicCall("SetCurrentValue(QVariant, QVariant)", "mamba");

Передаю отчет вьюверу и показываю его
Код: plaintext
1.
2.
ui.pCRViewer->dynamicCall("SetReportSource(IUnknown*)", pCReport->asVariant());
ui.pCRViewer->dynamicCall("ViewReport()");

Проблема в том, что когда я запрашиваю свойство "ParameterFields", вьювер перестает показывать отчет. Если не запрашивать это свойство, то все нормально, но параметры в отчет оказываются не переданными.
Как правильно передать в отчет параметры? Меня интересует последовательность действий: что в каком порядке нужно вызывать? Их объектная модель такая мутная.
Подскажите пожалуйста, дайте пример кода.
Пользуюсь Crystal Reports версии 10
...
Рейтинг: 0 / 0
Crystal Reports, отчеты с параметрами
    #35254868
silart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, ну расскажите пожалуйста как вы передаете в отчет параметры. Ведь распространенная процедура. Очень нужно.
...
Рейтинг: 0 / 0
Crystal Reports, отчеты с параметрами
    #35255307
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде, так и передаю. Правда на фоксе, но последовательность такая же.

silartПроблема в том, что когда я запрашиваю свойство "ParameterFields".
Уверен, что проблема в GetItemByName, а не в SetCurrentValue?

Мне кажется, необходимо явно привести "mamba" к Variant String, нет?
...
Рейтинг: 0 / 0
Crystal Reports, отчеты с параметрами
    #35255362
silart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема возникает почему то когда я пытаюсь получить свойство ParameterFields.
Именно в этой строке:
Код: plaintext
1.
QAxObject* pParameterFieldDefinitions = pCReport->querySubObject("ParameterFields");
Даже если дальше ниче не делать, а просто запросить это свойство, все сразу перестает работать. Окно вьювера запускается, но в нем все серого цвета... Но перед этим заметно что он что-то читает, то есть притормаживает чуть-чуть также как и когда все работает (если не запрашивать ParameterFields).
Может дальше надо что-то с отчетом еще сделать или с вьювером?
...
Рейтинг: 0 / 0
Crystal Reports, отчеты с параметрами
    #35256180
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silartПроблема возникает почему то когда я пытаюсь получить свойство ParameterFields.
Именно в этой строке:
Код: plaintext
1.
QAxObject* pParameterFieldDefinitions = pCReport->querySubObject("ParameterFields");
Даже если дальше ниче не делать, а просто запросить это свойство, все сразу перестает работать. Окно вьювера запускается, но в нем все серого цвета... Но перед этим заметно что он что-то читает, то есть притормаживает чуть-чуть также как и когда все работает (если не запрашивать ParameterFields).
Может дальше надо что-то с отчетом еще сделать или с вьювером?
Попробуй на VBS
Код: plaintext
1.
2.
3.
4.
5.
Set loApp = CreateObject("CrystalRuntime.Application")
Set loReport = loApp.OpenReport("simple.rpt")
Set loTitle = loReport.ParameterFields.GetItemByName("title")
loTitle.SetCurrentValue("mamba")
loReport.PrintOut(False)
Тобишь, создаешь файл 'bla.vbs' и пишешь скриптик (если скрипты в винде включены). Запускаешь, смотришь. Можно еще экселем попробовать.
Если так тоже не работает, меняй рантаймы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports, отчеты с параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]