#crystal-reports
#crystal-отчеты
Вопрос:
Я пытаюсь создать отчет crystal, но я хочу, чтобы была доступна строка подключения, которую я упомянул в файле Web.Config. Кроме того, я хочу создать файл xsd для ссылки на мой файл crystal report. Может кто-нибудь, пожалуйста, направить меня к руководству или форуму, чтобы решить мою проблему?
Комментарии:
1. При использовании конструктора наборов данных он запрашивает строку подключения из конфигурации или позволяет сохранить строку подключения в конфигурации.
Ответ №1:
Спасибо вам всем за помощь. Теперь я могу отображать данные в файле crystal report, используя файл XSD. В xsd-файле есть поля с точно такими же именами, как указано в запросе select, который выводит значения из базы данных. Ниже приведена часть файла xsd, которая содержит имена полей в теге xs:element.
Типы данных этих полей также необходимо упомянуть. Имя файла XSD может быть сохранено по желанию. Имена «Summary_Report_on_portal» и «Summary_Updt» не соответствуют ни одному имени набора данных в коде позади или в полях запроса. Он может быть сохранен по желанию пользователя.
На этот XSD-файл необходимо сослаться в crystal report, используя Database Expert в окне Field Explorer. Имя «Summary_Updt» отображается в новых подключениях, которые могут быть добавлены в отчет crystal. Поля, упомянутые в поле xs:element, видны пользователю при перетаскивании в отчет crystal. Когда пользователь упоминает источник данных в отчете crystal report (dataset), поля в наборе данных сопоставляются со значениями поля XSD. КОД: objBL.Rpt.setDataSource (objBL.ds_shipment_info.Таблицы[0]);
Надеюсь, это достаточно подробно. Дайте мне знать, если кому-нибудь понадобится дополнительная информация
Ответ №2:
вы также можете программно установить источник данных отчета, если вам нужно — я могу предоставить подробную информацию, если вам требуется
между вызовом myReportDocument.Загрузите («myreport.rpt») и myReportDocument.Refresh() (последняя из которых фактически получает данные из базы данных) можно добавить вызов myReportDocument.setDataSource (myDataSource), который принимает объект типа источника данных, который вы можете создать с помощью вызова его конструкторов, с URL источника данных, который вы хотите использовать, его имени пользователя и пароля.
Надеюсь, это поможет
Ответ №3:
другим способом было бы вызвать ReportDocument::SetDatabaseLogon (строка * пользователь, Строка * пароль, Строка * сервер, строка * база данных); перед Refresh(); если вы не хотите повторно использовать соединение. Преимущество этого заключается в простоте, но означает, что вы не используете повторно источники данных.