Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Проблема с передачей параметров при вызове отчета CristalReport / 6 сообщений из 6, страница 1 из 1
19.05.2006, 10:56
    #33737816
lioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
Здравствуйте! Столкнулся с проблемой передачи параметров в отчет Cristal Report8. Создал отчет с
тремя параметрическими полями типа Number, Date, Date. Значения по умолчанию для параметров
отсутствуют. В самом Кристале при отображении отчета все нормально - появляется окно ввода
параметров, я их устанавливаю, отчет выводится правильно. Пытаюсь отобразить отчет в своей проге
на C++Builder5 при помощи компонента TCrpe. В инспекторе обьектов этого компонента все свойства оставил по
умолчанию, изменил лишь св-ва Connect(сервер, БД, логин, пароль), ReportName(имя отчета) и
WindowParent(Form1).
В проге вызываю отчет так:
//=============================================================
void __fastcall TFormReport::FormShow(TObject *Sender)
{
Crpe1->ParamFields->Retrieve();
Crpe1->ParamFields[0].AsNumber = 107590;
Crpe1->ParamFields[1].AsDate = EncodeDate(2006,1,1);
Crpe1->ParamFields[2].AsDate = EncodeDate(2006,5,1);
Crpe1->Execute();
}
//=============================================================
Вылетает ошибка: Project ... raised exception class EAccessViolation with message 'Accessviolation at adress
... in module ... Write of adress ...' Process stopped. Use Step or Run to continue.
Курсор выделяет эту строку:
Crpe1->ParamFields[2].AsDate = EncodeDate(2006,5,1);
При использовании только одного параметра все ОК - проверил!!! Проблема возникает при количестве
параметров больше одного... Пробовал передавать значения параметрам не по индексу, а по имени -
та же сама ошибка...
Подскажите пожалуйста как решить эту проблему. Спасибо.
...
Рейтинг: 0 / 0
19.05.2006, 11:50
    #33738052
cr80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
А Crpe1.ParamFields.Count = 3 ?
или
if Crpe1.IndexOfParamName(Crpe1, 'ParamName', '') then
ShowMessage('Параметр найден')
else
ShowMessage('Параметр не найден');
...
Рейтинг: 0 / 0
19.05.2006, 12:01
    #33738097
cr80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
Поправка:
if Crpe1.ParamFields.IndexOf('ParamName', '') then
ShowMessage('Параметр найден')
else
ShowMessage('Параметр не найден');
...
Рейтинг: 0 / 0
22.05.2006, 13:44
    #33742596
lioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
Crpe1->ParamFields->Count() возвращает 3!
========================================
Crpe1->ParamFields->Retrieve();
Crpe1->ParamFields[Crpe1->ParamFields->IndexOfName("kodplat")].AsNumber = 107590;
Crpe1->ParamFields[Crpe1->ParamFields->IndexOfName("datefrom")].AsDate = EncodeDate(2006,1,1);
Crpe1->ParamFields[Crpe1->ParamFields->IndexOfName("dateto")].AsDate = EncodeDate(2006,5,1);
Crpe1->Execute();
Ошибка та же, но выделяется строка не для 3-го параметра, а для 2-го...
=========================================
Crpe1->ParamFields->IndexOfName("kodplat") возвращает 0.
Crpe1->ParamFields->IndexOfName("datefrom") возвращает 1.
Crpe1->ParamFields->IndexOfName("dateto") возвращает 2.
=========================================
Что еще может быть???
...
Рейтинг: 0 / 0
23.05.2006, 07:03
    #33744046
isdn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
[IMHO] TCrpe это вообще глюк на глюке. RDC - гораздо лучше. [/IMHO]
...
Рейтинг: 0 / 0
23.05.2006, 08:34
    #33744121
cr80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с передачей параметров при вызове отчета CristalReport
Можно попробовать
Crpe1.ParamFields[0].AsNumber= 107590;
Crpe1.ParamFields[1].Value = '2006,01,01';
Crpe1.ParamFields[2].Value = '2006,05,01';
или
Crpe1.ParamFields[0].AsNumber= 107590;
Crpe1.ParamFields[1].Value = '2006,01,01 00:00:00';
Crpe1.ParamFields[2].Value = '2006,05,01 00:00:00';
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Проблема с передачей параметров при вызове отчета CristalReport / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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