|
Обсуждение вопросов, связанных с Crystal Reports 2008, Crystal Reports Server, Crystal Xcelsius, BusinessObjects Enterprise, BusinessObjects Edge и другими продуктами Business Objects.
Тема "Crystal Report, отчет с двумя подотчетами+Delpfi, как передать параметры."
Автор:
Владислав
|
Дата: 14.12.2006 13:36 |
| А если его менять не надо, то не проще-ли сделать его не параметром, а переменной? или неправильно понял? Максим пишет 13.12.2006 17:54:
>есть еще в каждом подотчете третий параметер, но его значение установлено по умолчанию и менять его не надо. |
Ответить на сообщение » |
Автор:
Максим
|
Дата: 13.12.2006 17:54 |
| Так и сделал. Т.е Щелкнул по подотчету правой клавишей мыши Change Subreport Links.. далее из поля "Доступнае поля" посечтил их поле "Поля для связи" и с помощью низпадающего списка "Subreport parameter field to use" связал их соответствующими полями подотчета. Повторил все для второго подотчета. Изменил немного код присвоения значений параметрам и т.д. with Report do begin DiscardSavedData; ParameterFields.GetItemByName('TitleDate', '').AddCurrentValue(frmMain.RptParam1); ParameterFields.GetItemByName('Date', '').AddCurrentValue(frmMain.RptParam2); // EnableParameterPrompting:= False; end; CRViewerMonth.ReportSource := Report; CRViewerMonth.ViewReport; есть еще в каждом подотчете третий параметер, но его значение установлено по умолчанию и менять его не надо. Столкнулся с проблеммой, при открытии отчета появляется диалог предлагающий изменить значение третих параметров подотчета, ни чего не меняем нажимаем "Ok" все отрабатывается на ура. Но если убрать коментарий заприщающий диалог т.е. EnableParameterPrompting:= False; запроса на изменение нет(он к стати и не нужен), но и отчеты пусты. Может я что-то не так делаю, подскажите пожалуйста. |
Ответить на сообщение » |
Автор:
Владислав
|
Дата: 13.12.2006 15:37 |
| Задай эти параметры в главном, а потом свяжи их с подотчетами.
Максим пишет 12.12.2006 21:53: >Здравствуйте. Есть отчет вкючающий в себя 2 подотчета. В каждом из них есть по 3 поля-параметра. Необходимо из программы написанной в Delphi передать значения в подотчеты. Если бы поля-параметры пренадлежали непосредственно отчету, а не Subreports включенных в него. Я бы сделал так: >var > report : IReport; >begin >report:=CRApp.OpenReport(Отчет.rpt,crOpenReportByTempCopy); >report.ParameterFields.Item[1].ClearCurrentValueAndRange; >report.ParameterFields.Item[1].AddCurrentValue(Param1); > .... >CRViewerMonth.ReportSource := Report; >CRViewerMonth.ViewReport; >end;- В Delphi импортированны >Crystal ActiveX Report Viewer Library 10 и >Crystal Report ActiveX Designer Run Time Library 10 >CRApp это объект класса TApplication(не Delphi а Crystal Report) >CRViewerMonth-TCrystalActiveXReportViewer >И это бы было правильным решением и все бы работало. >Но так передать значения в поля параметры подотчетов не получается. Как сделать правильно, подскажите пожалуйста. |
Ответить на сообщение » |
Автор:
Максим
|
Дата: 12.12.2006 21:53 |
| Здравствуйте. Есть отчет вкючающий в себя 2 подотчета. В каждом из них есть по 3 поля-параметра. Необходимо из программы написанной в Delphi передать значения в подотчеты. Если бы поля-параметры пренадлежали непосредственно отчету, а не Subreports включенных в него. Я бы сделал так: var report : IReport; begin report:=CRApp.OpenReport(Отчет.rpt,crOpenReportByTempCopy); report.ParameterFields.Item[1].ClearCurrentValueAndRange; report.ParameterFields.Item[1].AddCurrentValue(Param1); .... CRViewerMonth.ReportSource := Report; CRViewerMonth.ViewReport; end;- В Delphi импортированны Crystal ActiveX Report Viewer Library 10 и Crystal Report ActiveX Designer Run Time Library 10 CRApp это объект класса TApplication(не Delphi а Crystal Report) CRViewerMonth-TCrystalActiveXReportViewer И это бы было правильным решением и все бы работало. Но так передать значения в поля параметры подотчетов не получается. Как сделать правильно, подскажите пожалуйста. |
Ответить на сообщение » |
|