Следующее содержимое представляет собой программный код:
Прежде чем мы начали изучать Crystal Reports в VS.Net, мне и моему другу было очень интересно, как добавить эти сложные вещи в наше веб-приложение. Неделю спустя, прочитав множество документов «HOWTO», мы успешно добавили несколько простых отчетов в нашу программу Asp.net и получили несколько советов.
Эта статья научит вас использовать Crystal Reports в веб-приложениях .Net, а также поможет вам избежать отклонений в процессе обучения. Чтобы получить наилучшие результаты, читатели должны иметь базовые знания о доступе к базе данных Asp.Net и опыт разработки с использованием VS.Net.
Введение
Crystal Reports можно получить разными способами, один из которых — использовать для его создания VS.Net, который предоставляет очень богатую модель, позволяющую нам управлять свойствами и методами во время выполнения. Если вы используете VS.Net для разработки программ .Net, вам не нужно устанавливать другое программное обеспечение, поскольку оно уже встроено в VS.Net.
преимущество:
VS.Net Crystal Reports имеет следующие основные преимущества:
Быстрая разработка отчетов
Возможность экспорта в сложные интерактивные диаграммы.
Может использоваться в WebForm с другими элементами управления.
Возможность динамического экспорта отчетов в .pdf, .doc, xls, html, rtf и другие форматы.
структура:
Некоторые компоненты составляют двухуровневую структуру Crystal Reports. Необходимые веб-приложения:
Клиент:
Клиенту нужен только браузер, который может получить доступ к отчету, встроенному в страницу aspx.
сервер:
- Механизм отчетов Crystal (CREngine.dll)
Он может выполнять некоторые задачи, такие как объединение данных в файлах отчетов, преобразование отчетов в другие форматы и т. д. Именно благодаря механизму создания отчетов Crystal Reports в Asp.Net можно конвертировать в обычный формат HTML.
- Дизайнер отчетов Crystal (CRDesigner.dll)
Отчеты Crystal Reports создаются в дизайнере, где можно создавать заголовки, вставлять данные, формулы, диаграммы, вложенные отчеты и т. д.
- файл отчета .rpt
Первым шагом в выполнении отчета является создание этого отчета в интерфейсе Crystal Report Designer. Microsoft предоставила несколько готовых примеров .rpt при установке по умолчанию.
- Источник данных
Способ получения базы данных из файла .rpt зависит от выбранного вами метода. Вы можете позволить Crystal Reports выбирать данные самостоятельно без использования какого-либо кода или вручную собрать набор данных и затем передать его в файл отчета. .
- Управление веб-формой Crystal Report Viewer (CRWebFormViewer.dll)
Элемент управления Crystal Report View — это элемент управления WebForm, который можно рассматривать как контейнер, хранящий отчеты на странице .aspx. Примечание. В некоторых сложных операциях сервер отчетов и веб-сервер могут находиться на разных физических хостах, и веб-сервер передает HTTP-запрос на сервер отчетов. Crystal Reports также можно выполнять как веб-службу.
Получить данные из Crystal Reports в режиме выполнения можно с помощью следующих методов:
- Режим вытягивания:
По запросу Crystal Reports напрямую подключается к базе данных на основе указанного драйвера и собирает данные.
- Режим нажатия:
В это время таблица разработки должна написать собственный код для подключения данных и сборки DataSet, а также одновременно передать его в отчет. В этих случаях вы можете максимизировать производительность отчетов, используя совместное использование подключений и ограничивая размер коллекции записей.
Тип отчета:
Crystal Report Designer может включать отчеты непосредственно в проект или использовать независимые объекты отчетов.
- Строго типизированные отчеты:
Когда вы добавляете файл отчета в проект, он становится «строго типизированным» отчетом. В этих случаях у вас будет возможность создать объект отчета напрямую, что позволит сократить объем кода и обеспечить некоторую производительность.
- Нетипизированный отчет:
Отчеты здесь не включены напрямую в проект и поэтому называются «нетипизированными отчетами». В этом случае вам необходимо создать экземпляр с использованием объекта ReportDocuemt Crystal Reports и использовать отчет «вручную».
Другие вещи, на которые следует обратить внимание
- Хотя Crystal Report Viewer имеет несколько интересных функций, таких как масштабирование, навигация по страницам и т. д. Но он не предоставляет функцию печати, вам придется вызывать функцию печати браузера.
- Если Crystal Report в VS.Net не зарегистрирован, его можно использовать только 30 раз. После 30 раз функцию «сохранить» больше нельзя использовать. Чтобы избежать этого, вам не следует регистрировать этот продукт здесь, на http://www.crystaldecisions.com/ . (Вроде бы это не так. Вроде бы можно долго пользоваться без регистрации, но поддержку оказать невозможно)
- Установка Crystal Reports по умолчанию поддерживает только 5 пользователей. Чтобы поддерживать больше пользователей, вам необходимо приобрести лицензию на http://www.crystaldecisions.com/ .
Давайте почувствуем это — используя готовый файл Crystal Report в Asp.net. 1) Перетащите элемент управления Crystal Report Viewer (Crystal Report Viewer) с панели инструментов WebForm на страницу .aspx.
2) Вызовите окно свойств элемента управления Crystal Report Viewer.
3) Нажмите кнопку [...], чтобы просмотреть свойство «Привязка данных», и появится всплывающее окно «Привязка данных».
4) Выберите «Источник отчета» в области «Привязываемые свойства» слева.
5) Установите переключатель «Пользовательское выражение привязки» и укажите имя и путь к файлу .rpt в нижнем окне справа, например: «C:\Program Files\Microsoft Visual Studio.NET\ Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt», а затем «ОК».
Примечание. Файл «World Sales Report.rpt» создается во время установки VS.Net. Если в процессе установки вы указали другой каталог, вам лучше подтвердить правильность пути на этом этапе.
Вышеупомянутые шаги фактически вставляют следующий код в файл Asp.Net:
а также:
id="CrystalReportViewer1"
runat="сервер" Ширина="350 пикселей" Высота="50 пикселей"
ИсточникОтчета=''>
Примечание. Стиль, сгенерированный ReportSource в коде, автоматически сгенерированном в моей официальной версии VS.Net, не такой, а:
Источник отчета=""
Это неправильно, и появится сообщение об ошибке. Есть две ошибки:
Его необходимо изменить вручную в соответствии с форматом, представленным в этой статье. Это можно расценивать как ошибку VS.Net.
6) Вызовите метод DataBind в методе Page_Load. (Код: VB.Net)
Private Sub Page_Load (отправитель ByVal As System.Object, ByVal e As System.EventArgs)
Привязка Данных()
Конец субтитра
7) Сохраните и скомпилируйте свою страницу. Теперь у вас есть страница WebForm со встроенными в нее Crystal Reports.
Примечание. В реальной разработке вначале возникнет ошибка, связанная с невозможностью доступа к каталогу inetsrv. Решение состоит в том, чтобы изменить атрибуты безопасности каталога, чтобы пользователь имел права на запись. Летающий нож Я обнаружил, что решения, предоставляемые системой .Net, бесполезны, возможно, это связано с тем, что я использую операционную систему Windows.Net.
Использование Crystal Reports в Asp.Net (часть 2)
www.dotnet8.com 6 сентября 2002 г. Панель DotNet
Следующее содержимое представляет собой программный код:
Использование режима Pull Мы будем использовать следующие шаги для выполнения Crystal Reports в режиме Pull.
1. Сначала создайте файл RPT и используйте интерфейс проектирования Crystal Report для настройки некоторых необходимых подключений к данным.
2. Перетащите элемент управления CrystalReportViewer на страницу aspx, задайте в его свойствах файл .rpt, который мы создали на предыдущем шаге.
3. Вызовите метод DataBind в коде.
Создайте файл .rpt:
1) Щелкните правой кнопкой мыши «Браузер решений» и во всплывающем меню выберите «Добавить» -> «Добавить новый элемент» -> «Crystal Report».
2) Выберите переключатель «Как пустой отчет» в «Библиотеке отчетов Crystal» и, наконец, нажмите «ОК».
3) Здесь появится конструктор Crystal Reports.
4) Щелкните правой кнопкой мыши «Область сведений» в отчете и выберите «База данных» -> «Добавить/удалить базу данных...».
5) Во всплывающем окне «Эксперт баз данных» разверните параметр «OLE DB (ADO)», и появится другое окно «OLE DB (ADO)».
6) Во всплывающем окне «OLE DB (ADO)» выберите «Поставщик Microsoft OLE DB для SQL Server», а затем «Далее».
7) Укажите информационный сервер для подключения: ASPCN (напишите любое имя вашей машины)
Идентификатор пользователя: sa
пароль:
База данных: Пабы
8) Нажмите «Далее» и, наконец, нажмите кнопку «Готово».
9) В это время вы можете увидеть выбранную нами базу данных в окне «Эксперт баз данных».
10) Разверните базу данных «Пабы», разверните «Таблицу», выберите таблицу «Магазины» и добавьте ее в область «Выбранные таблицы», нажмите кнопку «ОК».
11) Теперь в «Обозревателе ресурсов поля» выбранная вами таблица и поля в таблице будут отображаться в области «Поле базы данных» слева.
12) Перетащите необходимые поля в область «Детали» отчета. Имена полей автоматически появятся в области «Заголовок». Если вы хотите изменить текст заголовка, вы можете щелкнуть правой кнопкой мыши текст в области «Заголовок», выбрать параметр «Редактировать текстовый объект» и отредактировать его.
13) Сохраните, чтобы у нас был файл Crystal Report.
Создайте элемент управления CrystalReportViewer.
14) Вернитесь к предыдущей веб-форме, перетащите на страницу элемент управления Crystal Report Viewer.
15) Вызовите окно свойств элемента управления Crystal Report Viewer, выберите область «Привязки данных» и нажмите [...]
16) В «Окне привязки данных Crystal Report Viewer» выберите «ReportSource» в «Свойствах привязки» справа и выберите «Пользовательское выражение привязки» в правом нижнем углу, чтобы указать путь к файлу .rpt.
17) На этом этапе вы можете увидеть предварительный просмотр файла отчета, состоящего из некоторых виртуальных данных, из элемента управления Crystal Report Viewer.
Примечание. В приведенном выше примере CrystalReportViewer может напрямую вызывать реальные данные во время разработки, поскольку в это время данные были сохранены. В этом случае, если данные не сохраняются во время разработки, они не могут отображаться. Вместо этого отображаются некоторые фиктивные данные, а реальные данные выбираются только во время выполнения.
Код, лежащий в основе программирования
18) Вызовите метод DataBind в методе Page_Load.
выполнить свою программу
19) Создайте и запустите свою программу!
Теперь вы можете использовать некоторые встроенные функции Crystal Reports непосредственно на веб-странице, например навигацию по страницам, масштабирование и т. д.
Использование Crystal Reports в Asp.Net (часть 2)
www.dotnet8.com 2002-9-6 DotNet
[HTML] Для выполнения Crystal Reports в режиме Push мы используем следующие шаги:
1. Создайте набор данных
2. Создайте файл .rpt и назначьте его набору данных, созданному на предыдущем шаге.
3. Перетащите элемент управления CrystalReportViewer на страницу aspx и соедините его с предыдущим файлом rpt.
4. Получите доступ к базе данных в коде и сохраните данные в DataSet.
5. Вызовите метод DataBind.
Проектирование набора данных
1) Щелкните правой кнопкой мыши «Браузер решений» и выберите «Добавить» — «Добавить новый элемент» —> «Набор данных».
2) Перетащите таблицу «Магазины» (расположенную в базе данных PUBS) из «SQL Server» в «Проводник серверов».
3) В это время в наборе данных появится структурная диаграмма таблицы «Магазины».
- Файл .xsd содержит только структурную схему, но данных в нем не будет.
Создайте файл .rpt:
4) Создайте этот файл, используя метод, представленный выше. Единственная разница заключается в использовании набора данных вместо предыдущих данных прямого подключения.
5) После создания файла .rpt щелкните правой кнопкой мыши «Подробности» -> «Добавить/удалить базу данных».
6) В окне «Эксперт базы данных» разверните «Данные проекта» (заменив предыдущий OleDb), разверните «Набор данных ADO.Net» — «DataSet1» и выберите таблицу «Хранилища».
7) Добавьте таблицу «Магазины» в «Выбранные таблицы» и нажмите «ОК».
8) Используйте метод в режиме PULL для создания веб-формы.
Создание элемента управления Crystal Report Viewer
9) Создайте элемент управления Crystal Report Viewer и настройте его свойства. Это соответствует режиму PULL.
Код позади кода:
10) Используйте следующую подфункцию в методе Page_Load:
Код VB.Net:
Суббиндрепорт()
Уменьшить myConnection как новый SqlClient.SqlConnection()
myConnection.ConnectionString= "server= (local)NetSDK;database=pubs;Trusted_Connection=yes"
Уменьшить MyCommand как новый SqlClient.SqlCommand()
МояКоманда.Соединение = моеСоединение
MyCommand.CommandText = "Выбрать * из магазинов"
МояКоманда.ТипКоманды = ТипКоманды.Текст
Уменьшить MyDA как новый SqlClient.SqlDataAdapter()
MyDA.SelectCommand = МояКоманда
Уменьшить myDS как новый набор данных1()
«Это набор данных, который мы используем в режиме разработки.
MyDA.Fill(myDS, «Магазины»)
«Вы должны использовать то же имя, что и ваш предыдущий набор данных.
Dim oRpt как новый CrystalReport1()
'Привязка отчета Crystal
oRpt.SetDataSource(myDS)
'Установим источник отчетов Crystal Report
CrystalReportViewer1.ReportSource = oRpt
Конец субтитра
Код С#:
частная пустота BindReport()
{
строка strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
CrystalReport1 oCR = новый CrystalReport1();
Набор данных1 ds = новый Набор данных1();
SqlConnection MyConn = новый SqlConnection (strProvider);
МойКонн.Открыть();
string strSel = "Выбрать * из магазинов";
SqlDataAdapter MyAdapter = новый SqlDataAdapter (strSel, MyConn);
MyAdapter.Fill(ds,"магазины");
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
}
Примечание. В приведенном выше коде следует отметить, что oRpt — это файл отчета со «строгой типизацией». Если вам нужно использовать «нетипизированные» отчеты, вам необходимо использовать объект ReportDocument, а затем вызвать файл отчета.
Запустите вашу программу.
11) Запустите вашу программу
Экспорт файлов отчетов в другие форматы.
Вы можете экспортировать файлы отчетов в следующие форматы:
1. PDF (формат переносимого документа)
1. 2. DOC (Документ MS Word)
2. 3. XLS (таблица MS Excel)
3. 4. HTML (язык гипертекстовой разметки – совместимость с версиями 3.2 или 4.0)
4. 5. RTF (формат расширенного текста)
использует режим извлечения для экспорта отчетов. При экспорте файлов, созданных в режиме извлечения, Crystal Reports точно открывает необходимые данные. Ниже приведен код для выполнения функции экспорта.
Код С#:
Код VB.Net:
Private Sub Button1_Click (отправитель ByVal As System.Object, ByVal e As System.EventArgs) Обрабатывает Button1.Click
Затемнить myReport как CrystalReport1 = Новый CrystalReport1()
'Примечание. Здесь мы создаем экземпляр Crystal Report со строгой типизацией.
Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions()
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
' Эта опция также необходима при экспорте в другие файлы
' Например, Microsoft Exchange, MAPI и т. д.
myReport.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
'Здесь мы экспортируем его в файл формата .pdf. Вы также можете выбрать другие типы файлов выше.
DiskOpts.DiskFileName = "c:Output.pdf"
'Если вы не укажете точный каталог, файл будет сохранен в каталоге [Windows]System32.
myReport.ExportOptions.DestinationOptions = DiskOpts
'Файлы Crystal Report не содержат прямого свойства FileName, поэтому вы не можете напрямую указать имя сохраненного файла.
«Поэтому вам нужно использовать объект DiskFileDestinationOptions и установить его свойство DiskFileName.
'Для нужного пути наконец укажите свойство DestinationsOptions Crystal Reports как DiskFileDestinationOption выше.
мойОтчет.Экспорт()
«Приведенный выше код выполнит работу по экспорту.
Конец субтитра
Экспорт отчетов Crystal Reports с использованием режима PUSH. Когда экспортируемый отчет создается в режиме PUSH, первым шагом является установка соединения и сборка набора данных посредством программирования, а также установка свойства SetDataSource отчета. Следующие шаги такие же, как и в режиме Pull.
[/HTML]
Краткое описание использования Crystal Reports в среде .NET
. Crystal Reports — отличный инструмент для разработки отчетов. Когда я разрабатывал общую систему управления, во всех отчетах использовался Crystal Reports. Его простота, удобство использования и мощные функции заставили меня полюбить его. подробнее Теперь я буду предоставлять всем желающим отчеты Crystal Reports с помощью заметок.
1. При использовании встроенного Crystal Report зарегистрируйтесь, в противном случае вы сможете использовать
Crystal Report только 30 раз. Регистрационный номер: 6707437608.
Пароль:AAP5GKS0000GDE100DS
2. Используйте CrystalReportViewer для предварительного просмотра.
Элемент управления CrystalReportViewer позволяет просматривать Crystal Report в приложении. Свойство ReportSource определяет, какой отчет просматривать. После установки этого свойства отчет отображается в средстве просмотра. Источником отчета может быть ReportDocument, путь к файлу отчета или строго типизированный отчет.
1. Откройте «Панель инструментов» и перетащите CrystalReportViewer на форму, которую мы назовем rptVew.
2. С помощью перетаскивания измените размер средства просмотра Windows Forms до нужного размера и переместите его в нужное положение.
3. При запуске приложения отчет отобразится во вьювере.
3. Создайте новый отчет
. 1. Укажите «Добавить» и нажмите «Добавить новый элемент».
2. В диалоговом окне «Добавить новый элемент» выберите Crystal Report в области «Шаблон», назовите отчет rptClient и нажмите «Открыть».
3. В галерее Crystal Report выберите один из следующих вариантов:
· Использовать эксперт отчетов — проведет вас через процесс создания отчета и добавит выбранные вами варианты в Crystal Report Designer.
· В качестве пустого отчета — открывает конструктор отчетов Crystal.
· Из существующего отчета: создается новый отчет с тем же дизайном, что и другой указанный вами отчет.
Примечание. В библиотеке Crystal Report есть специалисты, которые помогут вам создать несколько конкретных типов отчетов. Возможно, вы захотите воспользоваться помощью эксперта для создания первоначального отчета, чтобы определить, какой метод построения отчета соответствует вашим потребностям.
4. Нажмите кнопку ОК.
Если вы решите использовать эксперт отчетов, появится диалоговое окно «Эксперт отчетов» с проводником данных. Выберите необходимые данные для каждой папки, выполните операции в интерфейсе вкладки «Эксперт отчетов», а затем нажмите «Готово», чтобы получить доступ к Crystal Report Designer и отчету.
4. Вам нужно установить источник данных динамически?
Crystal Reports подключается к базе данных через драйвер базы данных. Каждый драйвер написан для работы с определенным типом базы данных или технологией доступа к базе данных.
Модели извлечения и отправки Чтобы предоставить разработчикам наиболее гибкие методы доступа к данным, драйвер базы данных Crystal Reports предназначен для обеспечения моделей доступа к данным как по запросу, так и по запросу.
вытащить модель
В модели извлечения драйвер подключается к базе данных и «извлекает» данные по мере необходимости. При использовании этой модели и подключение к базе данных, и команды SQL, выполняемые для получения данных, обрабатываются самим Crystal Reports, без необходимости написания кода разработчиками. Используйте модель извлечения, если вам не нужно писать специальный код во время выполнения.
нажмите модель
Напротив, модель push требует от разработчиков написать код для подключения к базе данных, выполнить команды SQL для создания набора записей или данных, соответствующего полям в отчете, и передать объект в отчет. Этот метод позволяет вам включить общий доступ к соединениям в ваше приложение и отфильтровать данные до того, как Crystal Reports их получит.
4. Создание отчетов на основе наборов данных ADO.NET и
создание объектов набора данных из базы данных
. 1. Создайте новый файл схемы в проекте:
а. В обозревателе решений щелкните правой кнопкой мыши имя проекта, выберите «Добавить» и выберите «Добавить». затем нажмите «Добавить новый элемент».
б. В области «Категории» диалогового окна «Добавить новый элемент» разверните папку и выберите «Данные».
c. Выберите Набор данных в области Шаблон.
г. Примите имя по умолчанию Dataset1.xsd.
При этом создается новый файл схемы (Dataset1.xsd), который будет использоваться позже для создания строго типизированного набора данных. Файл схемы появится в конструкторе наборов данных ADO.NET.
2. Укажите расположение базы данных:
a В обозревателе серверов щелкните правой кнопкой мыши Подключения к данным и выберите Добавить подключение.
б. В диалоговом окне «Свойства связи с данными» перейдите на вкладку «Поставщик» и выберите поставщика (например, поставщик Microsoft OLE DB для SQL Server).
в. Перейдите на вкладку «Соединение» и укажите расположение вашей базы данных. Введите свой сервер и данные для входа, где это необходимо.
г. Нажмите кнопку ОК.
Ваша база данных, ее таблицы и поля теперь отображаются в обозревателе серверов в узле «Соединения данных».
3. В обозревателе решений дважды щелкните Dataset1.xsd (если это еще не активное представление).
Dataset1.xsd теперь должен появиться на вкладке «Наборы данных».
4. Чтобы создать схему набора данных, перетащите необходимые таблицы из обозревателя серверов на вкладку «Наборы данных» в файле Dataset1.xsd.
5. Нажмите «Сохранить Dataset1.xsd», чтобы сохранить файл Dataset1.xsd.
6. В меню «Создать» нажмите «Создать», чтобы сгенерировать объект набора данных для проекта.
Объект ADO.NET DataSet предоставляет описание данных, из которых таблицы могут быть добавлены в отчет Crystal. Используйте эксперт баз данных в Crystal Report Designer, чтобы добавлять таблицы из объектов набора данных ADO.NET.
Пожалуйста, позвоните эксперту по базам данных, когда вы используете эксперта по отчетам для создания нового отчета. Или, чтобы получить доступ к эксперту баз данных из отчета, созданного с помощью ADO.NET, щелкните правой кнопкой мыши в конструкторе отчетов, выберите «Базы данных», а затем нажмите «Добавить/удалить базу данных».
Подключение отчета к объекту набора данных ADO.NET
. 1. В «Эксперте баз данных» разверните папку «Данные проекта».
2. Разверните папку «Наборы данных ADO.NET».
3. Выберите необходимый объект набора данных.
Например, если вы используете объект набора данных, созданный на основе файла схемы «Dataset1.xsd» проекта «WindowsApplication1», вам следует выбрать «WindowsApplication1.Dataset1».
4. Выберите таблицы для добавления в отчет так же, как и в случае с другими источниками данных.
5. Код для динамического изменения источников данных
Dim dsdataSet As New DataSet()
Dim oRpt As New rptClient() 'Установленный отчет rptClient
требует, чтобы читатели самостоятельно заполняли набор данных dsdataSet.
'Используйте объектную модель «механизма отчетов» для передачи заполненного набора данных в отчет
oRpt. SetDataSource(dsdataSet. Tables(0))
'Привязка объекта отчета с данными к средству просмотра Windows Forms, rptVew (элемент управления CrystalReportViewer)
rptVew.ReportSource = oRpt.
Обратите внимание, что метод FillDataSet может подключаться к указанной базе данных, извлекать данные, а затем отключить базу данных. Если вы хотите добавить в отчет несколько таблиц из базы данных, используйте оператор SQL JOIN, чтобы объединить эти таблицы, а затем укажите результирующую таблицу в методе FillDataSet.
6. Создайте отчет «основной-подробный»
В отчете содержится множество отчетов; Структура таблицы «Основная-подробная информация», такая как сведения о заказе и заказе продукта, заказ — это запись в одной таблице, а записи — это несколько записей в другой таблице. Эти две таблицы связаны через поле. Этот тип отчета может использовать реализацию функции группировки. :
1. Создайте новый проект
2. Добавьте элемент управления CrystalReportViewer в FORM1
3. Подключитесь к базе данных Northwind на SQL SERVER 2000 в диспетчере ресурсов службы
4. Добавьте набор данных Dataset1 и добавьте к данным заказы и сведения о заказе. набор.
5. Добавьте Crystal Report, используйте Report Expert, выберите «Набор данных ADO.NET» в данных проекта, вставьте таблицы Orders и Order Details, «Link» — это ссылка на связанное поле, выберите поле для отображения в «Поле» Для полей основной таблицы и детальной таблицы основой выбора группы в группе является поле OrdersID таблицы Orders, итог, диаграмма, выборка (можно фильтровать), стиль (можно задать заголовок отчета), а можно быть установлен самостоятельно. После настройки нажмите Готово.
6. Настройте положение, ширину и т. д. полей, которые будут отображаться в дизайнере отчетов.
7. Добавьте код в окно.
Private Sub Form1_Load(отправитель ByVal As System.Object, ByVal e As System.EventArgs) Обрабатывает MyBase.Load
Dim oRpt как новый CrystalReport1()
Dim dsdataSet As New Dataset1()
Dim CN As New Data.SqlClient.SqlConnection("источник данных=PMSERVER;начальный каталог=Northwind;user id=sa;пароль=sa")
CN.Open()
Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from заказы", CN)
daOrders.Fill(dsdataSet, "заказы")
Dim daDetails As New Data.SqlClient.SqlDataAdapter("выберите * из [Сведения о заказе]", CN)
daDetails.Fill(dsdataSet, "Сведения о заказе")
'Используйте объектную модель «Обработчик отчетов» для передачи заполненного набора данных в отчет
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8. Запустите программу
7. Используйте программу для изменения текста в отчете.
Код выглядит следующим образом:
Dim GetTextObject As TextObject
' Получите объект ReportObject по имени, преобразуйте его в TextObject и верните этот объект.
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "Система XXXX"
Резюме: Crystal Reports имеет очень мощные функции. Он также может экспортировать файлы WORD, EXCEL, RTF и другие, а также создавать сложные и красивые диаграммы. Это мощный инструмент для разработки отчетов WEB и WINDOWS.
(Часть информации в этой статье взята из MSDN)
Автор: Ли Хонгэн
ЭЛЕКТРОННАЯ ПОЧТА: [email protected]
У меня есть следующие идеи:
1. Получите данные, связанные с базой данных SQL, посредством запроса на соединение;
2. Поместите его в DataSet;
3. Вызовите Crystal Reports (линейный или столбчатый шаблон) для создания отчетов;
4. Выведите и создайте документ EXCEL.
Подскажите пожалуйста, герои, как реализовать вышеизложенные идеи? (Было бы лучше, если бы были примеры)
Большое спасибо!
-------------------------------------------------- -------------
1. Добавьте в свой проект новый набор данных проекта, подключитесь к базе данных и добавьте необходимые таблицы данных или хранимые процедуры.
Перетащите в этот набор данных и скомпилируйте набор данных.
2. Используйте Crystal Report, входящий в состав Vs.net, для создания отчета с DataSet в качестве источника данных.
3. Вставьте данные в этот отчет в программе.
4.Crystal Report имеет возможность вывода в Excel, что также можно сделать с помощью программы.
Dim conn как SqlConnection
Dim da As SqlDataAdapter
Dim strSQL как строка
conn = Новое SqlConnection()
conn.ConnectionString = "Идентификатор пользователя=sa; PWD=1234;Источник данных=xxxx; Исходный каталог =xxxxx"
конн.Открыть()
strSQL = "Выбрать * из имени таблицы"
da = Новый SqlDataAdapter (strSQL, conn)
Dim ds как новый набор данных()
da.Fill(ds, "ИмяТаблицы")
Dim RptDoc как новое имя отчета()
RptDoc.SetDataSource(ds)
'Указываем данные для RptDoc,
CrystalView1.ReportSource = RptDoc 'Укажите данные для CrystalView
КристаллВью1.ДанныеБинд()
конн.Закрыть()
5. Если вам нужно отобразить поля, связанные с несколькими таблицами, лучше всего создать набор данных с помощью хранимой процедуры.
-------------------------------------------------- -------------
Пожалуйста, обратитесь к следующему коду:
строка strconn=строка подключения;
SqlConnection myconn = новый SqlConnection (strconn);
string strcmd=@"оператор выбора ";
SqlCommand mycmd = новый SqlCommand (strcmd, myconn);
SqlDataAdapter myda = новый SqlDataAdapter (strcmd, myconn);
DataSet myds = новый DataSet();
мойконн.Открыть();
myda.Fill(myds, «имя отчета»);
Имя отчета myrpt = новое имя отчета();
myrpt.SetDataSource(myds);
this.CrystalReportViewer1.ReportSource=myrpt;
Экспорт в EXCEL:
myrpt.ExportOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myrpt.ExportOptions.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.Excel;
CrystalDecisions.Shared.DiskFileDestinationOptions opt=new CrystalDecisions.Shared.DiskFileDestinationOptions();
opt.DiskFileName=@"Имя файла";
myrpt.ExportOptions.DestinationOptions =opt;
myrpt.Export();
загрузка китайской справки для Crystal Reports 9:
http://www.ourfly.com/download/download.aspx
http://www.enwell.net/soft/
http://www.fast8.com/news.asp
Элементы
Crystal Reports для Visual Studio .NET
PictureObject см.
Класс PictureObject¦ CrystalDecisions.CrystalReports.Engine, свойства открытого экземпляра пространства имен
Граница (Унаследовано от ReportObject) Граница. Получите объект Border.
Высота (унаследованная от ReportObject) Int32. Получает или задает высоту объекта в твипах.
Вид (Унаследовано от ReportObject) ReportObjectKind. Получает тип объекта отчета.
Слева (Унаследовано от ReportObject) Int32. Получает или задает положение верхнего левого угла объекта в твиках.
Имя (унаследовано от ReportObject) Строка. Получите имя объекта.
ObjectFormat (Унаследовано от ReportObject) ObjectFormat. Получите объект ObjectFormat.
Вверх (Унаследовано от ReportObject) Int32. Получает или задает верхнюю позицию объекта в твиках.
Ширина (наследуется от ReportObject) Int32. Получает или задает ширину объекта в твипах.
Видеть
PictureObjectImports
CrystalDecisions.CrystalReports.Engine
Dim picObject As PictureObject
picObject = oRpt.ReportDefinition.ReportObjects.Item("картинка1")
Откуда: http://expert.csdn.net/Expert/topic/1896/1896874.xml?temp=.78677
Когда вы используете Crystal Reports на основе веб-формы, если вы просто следуете методу «Дао» в Интернете, вы Вам обязательно будет предложено: Не удалось войти.
Что касается этой проблемы, я потратил целый день на изучение файла справки Crystal Reports и наконец нашел решение.
Я не консервативный человек. Я считаю, что есть много пользователей сети, которые, как и я, тратят энергию на исследование этого вопроса. Я не хочу, чтобы все тратили энергию зря, как я.
Вот несколько шагов, которые я предпринял для реализации этого решения. Не волнуйтесь, вам будет очень полезно, если вы будете читать ее медленно.
Шаг 1: Посмотрите образец файла. В комплект поставки Crystal Reports входит образец файла, и доступ к базе данных возможен (без пароля). Сначала я запустил образец файла (на основе веб-формы и winform), и результат показал правильный отчет, как в примере с «летающим ножом».
Итак, я сам создал файл отчета и файл .aspx, но результат показал, что вход в систему не удался! Но я изменил файл отчета на образец файла отчета, и ошибок больше не возникло.
В чем проблема? Может быть, файл формата отчета имеет настройки разрешений на вход? Путем отслеживания и отладки я сравнил и проанализировал свой файл отчета и образец файла отчета и не обнаружил никакой разницы. Похоже, проблема не в файле отчета.
Это проблема с базой данных? Когда я создал доступ, вход не удался!
Не проблема ли это с базой данных (у моей собственной базы данных доступ без пароля, и то же самое относится и к базе данных в справке)? Не проблема ли в файле формата отчета (я внимательно проанализировал, что исходные коды у них одинаковые)?
Так где же возникает проблема? Я не могу этого понять!
Шаг 2: Найдите файл помощи. Поэтому я снова попросил о помощи. Я поискал с помощью Crystal Reports и, наконец, нашел слова «Доступ к защищенной базе данных [C#]» и нашел следующий абзац:
Процесс доступа к защищенной базе данных через Crystal Reports для Visual Studio .NET различается в веб-формах и Windows Forms. В Windows Forms диалоговое окно автоматически запрашивает у пользователя имя пользователя и пароль (тест проходит легко). В веб-формах вам необходимо разработать форму для получения этой информации от пользователя. В обоих случаях код может использоваться для указания имен пользователей и паролей, обеспечивая одинаковый уровень безопасности для всех пользователей приложения.
Поэтому я использовал ту же базу данных (сначала используя базу данных доступа из справочного примера, а затем используя созданную мной базу данных доступа). Обнаружено, что для одного и того же файла отчета winform может показывать успех, но веб-форма по-прежнему показывает ошибку входа в систему! Так что я примерно понимаю, что это значит!
Похоже, проблема кроется в настройках разрешений.
Шаг 3: Найдите помощь и, наконец, добейтесь успеха!
В справке я нашел слова «Установить параметры входа в базу данных», которые предоставили некоторую информацию, которая позже оказалась очень полезной:
В следующем примере показано, как передать параметры входа в таблицу отчета. В этом примере используется подключение к защищенной базе данных SQL Server.
Начните новый проект и добавьте в форму кнопку Button и четыре элемента управления TextBox.
Назовите элементы управления «Текстовое поле»: serverNameTxt, dbNameTxt, userNameTxt и парольTxt.
Дважды щелкните элемент управления «Кнопка», чтобы указать код для события Click. Вставьте соответствующий код в зависимости от используемого языка.
[С#]
// Объявляем необходимые переменные.
TableLogOnInfo logOnInfo = новый TableLogOnInfo ();
int i = 0
// Проходим по каждой таблице отчета.
for (i=0;i == Report.Database.Tables.Count - 1;i++)
{
//Устанавливаем информацию о соединении текущей таблицы.
logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text;
logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text;
logOnInfo.ConnectionInfo.UserID = userNameTxt.Text;
logOnInfo.ConnectionInfo.Пароль = парольTxt.Text;
Report.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}
Обратите внимание, что защищенные паролем базы данных ПК, такие как Microsoft Access и Paradox, также используют этот метод, но logoninfo.servername и logoninfo.databaseName следует оставить пустым.
Поэтому я попробовал это так и получил сообщение об ошибке: TableLogonInfo, и отчет не был найден.
Позже я обнаружил, что TableLogonInfo является членом Crystaldecisions.Shared имен. Итак, я добавил цитату:
Использование Crystaldecisions.Shared;
На этот раз проблема возникла в отчете.
Отчет? Что это? Я проверил всю помощь, но нет такой функции или класса!
[Серьезно! Эта проблема долго меня беспокоила! Я искал то, что такое отчет! Компания Waterscape Report также действительно полезна и не пишет подробно! Пришло время сражаться! ! ! ]
В конце концов, я наконец обнаружил, что отчет является просто определенным пользователем объектом, а не объектом самой системы.
Когда я был в замешательстве, я вдруг подумал, почему бы не взглянуть на базу данных, стоящая за отчетом, что это такое?
ReportDocument orpt = new ReportDocument ();
Отчет является членом документов.
Измените код: и добавьте ссылку
Использование Crystaldecisions.Shared; // Ответственно за интерпретацию класса TableGoninfo
Использование Crystaldecisions.crystalReports .Engine; // Отвечает за интерпретацию класса отчетов.
{
TABLELOGONINFO LOGONINFO = NEW TABLELOGONINFO ();
// Отчет о объекте отчетов должен быть объявлен заранее, и отчет данных должен быть загружен одновременно.
ReportDocument orpt = new ReportDocument ();
orpt.load ("c: \ inetpub \ wwwroot \ exer \ pagelet \ crystal \ cr1.rpt"); // изменение в собственном // правильное местоположение
// Создание информации о безопасности
// Базы данных ПК с защитой пароля, такие как Microsoft Access и Paradox, также используют этот метод, но logoninfo.servername // и logoninfo.databasename следует оставить пустым
logoninfo.connectioninfo.servername = "www";
logoninfo.connectioninfo.databasename = "archives";
logoninfo.connectioninfo.userid = "sa";
LogonInfo.connectionInfo.password = "123456
"
;
CrystalReportViewer1.ReportSource = ORPT;
}
Наконец -то появляется файл отчета!
Вау, я был так счастлив, что не мог не встать и растягиваться!
Шаг 4: Последняя полная версия кода. Есть два недостатка:
(1) Файл формата отчетов данных использует абсолютный путь
(2) После того, как разрешения на доступ к базе данных будут установлены, они не могут быть изменены в окончательном выпуске, в частности, сервер SQL Customer не может быть такой же, как и программа. Представьте две лучшие вещи:
(1), Server.mappath функция
(2) Читать web.config (в этом примере также рассказывается, как управлять файлом конфигурации web.config)
Окончательная модификация заключается в следующем: (Полный код) База данных - SQL Server2000
Использование Crystaldecisions.Shared; // Ответственно за интерпретацию класса TableGoninfo
Использование Crystaldecisions.crystalReports .Engine; // Отвечает за интерпретацию класса отчетов
.
{
TABLELOGONINFO LOGONINFO = NEW TABLELOGONINFO ();
// Отчет о объекте отчетов должен быть объявлен заранее, и отчет данных должен быть загружен одновременно.
ReportDocument orpt = new ReportDocument ();
// Получить реальный путь .rpt file
String Path1, Path2;
path1 = server.mappath (" \ exer \ pagelet ");
path2 = path1+" \ crystal \ cr1.rpt ";
//orpt.load("c:
orpt.load
(path2);
Строка A, B, C, D;
// Получить ServerName
a = System.Configuration. ConfigurationSettings. AppSettings ["ServerName"];
// Получить база данных
b = System.Configuration. ConfigurationSettings. AppSettings ["База данных"];
// Получить userId
c = System.Configuration. ConfigurationSettings. AppSettings ["userId"];
// Получить пароль
d = System.Configuration. ConfigurationSettings. AppSettings ["pass"];
// Установить параметры LogonInfo
logoninfo.connectioninfo.servername = a;
logoninfo.connectioninfo.databaseName = b;
logoninfo.connectioninfo.userid = c;
=
d
;
CrystalReportViewer1.ReportSource = ORPT;
}
Описание всего демонстрационного процесса:
1. В исследователе решения, где вам нужно хранить файл отчета, добавить новый элемент: отчет CrystalReport, названный CR1.RPT
2. При выборе источника данных в «Эксперте по отчетам», который появляется впоследствии, обязательно выберите OLE DB, а затем выберите соответствующий двигатель вождения в соответствии с требованиями вашей базы данных:
SQL Server: Microsoft OLE DB -провайдер для SQL Server
Доступ: Microsoft Jet.4.0
3. Введите правильное соединение базы данных.
4. Создайте отчет данных и сохраните файл CR1.RPT
5. Open Webform1.aspx. Добавить CrystalReportViewer Control: имя: CrystalReportViewer1
6. Добавьте приведенный выше код в событие Page_Load в webform1.aspx.cs:
(Примечание: не забудьте цитировать!)
************************************************* * ***
Ниже приведены подробности, связанные с этим контентом в web.config
<Настройки приложения>
<добавить key = "servername" value = "www"/>
<добавить key = "database" value = "archives"/>
<добавить key = "userId" value = "admin"/>
<добавить key = "pass" value = "123456"/>
*** Обратите внимание, что
// Получить пароль
d = System.Configuration. Конфигурирование. Конечно, вы можете выбрать любое имя, которое вам нравится, но оно должно быть последовательным.
http://www.cnblogs.com/zhangyd1080/archive/2006/11/15/561770.html