Berikut isi kode programnya:
Sebelum kita mempelajari Crystal Reports di VS.Net, saya dan teman saya sangat penasaran bagaimana cara menambahkan hal rumit ini ke aplikasi web kita. Seminggu kemudian, setelah membaca banyak dokumen "HOWTO", kami berhasil menambahkan beberapa laporan sederhana ke program Asp.net kami dan mendapatkan beberapa tips.
Artikel ini mengajarkan Anda cara menggunakan Crystal Reports dalam aplikasi .Net Web, dan juga dapat membantu Anda menghindari jalan memutar dalam proses pembelajaran. Untuk mendapatkan hasil terbaik, pembaca harus memiliki pengetahuan dasar tentang akses database Asp.Net dan pengalaman pengembangan menggunakan VS.Net.
Perkenalan
Crystal Reports dapat diperoleh dengan banyak cara, salah satunya adalah dengan menggunakan VS.Net untuk membuatnya, yang menyediakan model yang sangat kaya yang memungkinkan kita mengoperasikan properti dan metode saat runtime. Jika Anda menggunakan VS.Net untuk mengembangkan program .Net, maka Anda tidak perlu menginstal software lain karena sudah tertanam di VS.Net.
keuntungan:
VS.Net Crystal Reports memiliki keunggulan utama sebagai berikut:
Perkembangan laporan yang cepat
Kemampuan untuk mengekspor ke grafik interaktif yang kompleks
Dapat digunakan di WebForm dengan kontrol lain
Mampu mengekspor laporan secara dinamis ke .pdf, .doc, xls, html, rtf, dan format lainnya
struktur:
Beberapa komponen membentuk struktur dua tingkat Crystal Reports. Aplikasi web yang diperlukan adalah:
Klien:
Klien hanya membutuhkan browser yang dapat mengakses laporan yang tertanam di halaman aspx.
pelayan:
- Mesin Crystal Report (CREngine.dll)
Itu dapat menyelesaikan beberapa tugas, seperti menggabungkan data dalam file laporan, mengonversi laporan ke format lain, dll. Justru karena mesin pelaporan Crystal Reports di Asp.Net dapat diubah menjadi format HTML biasa.
- Desainer Crystal Report (CRDesigner.dll)
Crystal Reports dibuat di desainer, tempat Anda dapat mendesain judul, menyisipkan data, rumus, bagan, sublaporan, dll.
- File laporan .rpt
Langkah pertama dalam menjalankan laporan adalah membuat laporan ini di antarmuka Crystal Report Designer. Microsoft telah menyediakan beberapa contoh .rpt yang sudah jadi dalam instalasi default.
- Sumber Data
Metode untuk mendapatkan database dari file .rpt bergantung pada metode pilihan Anda. Anda dapat memilih untuk membiarkan Crystal Reports memilih datanya sendiri tanpa menggunakan kode apa pun atau Anda dapat memilih untuk merakit DataSet secara manual dan kemudian mentransfernya ke file laporan. .
- Kontrol formulir web Crystal Report Viewer (CRWebFormViewer.dll)
Kontrol Tampilan Crystal Report adalah kontrol WebForm, yang dapat dianggap sebagai wadah yang menyimpan laporan dalam halaman .aspx. Catatan: Dalam beberapa operasi kompleks, server laporan dan server Web mungkin tidak berada pada host fisik yang sama, dan server Web mengirimkan permintaan HTTP ke server laporan. Crystal Reports juga dapat dijalankan sebagai Layanan Web.
Mengambil data dari Crystal Reports dalam mode eksekusi dapat dilakukan dengan menggunakan metode berikut:
- Mode tarik:
Ketika diminta, Crystal Reports langsung terhubung ke database berdasarkan driver yang ditentukan dan mengumpulkan data.
- Modus dorong:
Saat ini, tabel pengembangan harus menulis kodenya sendiri untuk menghubungkan data dan merakit DataSet, dan mentransfernya ke laporan pada saat yang bersamaan. Dalam kasus ini, Anda dapat memaksimalkan performa laporan dengan menggunakan berbagi koneksi dan membatasi ukuran kumpulan data.
Jenis laporan:
Crystal Report Designer dapat memasukkan laporan langsung ke dalam proyek atau menggunakan objek laporan independen.
- Laporan yang diketik dengan kuat:
Saat Anda menambahkan file laporan ke proyek, itu menjadi laporan yang "diketik dengan kuat". Dalam kasus ini, Anda akan memiliki kemampuan untuk membuat objek laporan secara langsung, yang akan mengurangi beberapa kode dan dapat memberikan beberapa kinerja.
- Laporan Tidak Diketik:
Laporan-laporan di sini tidak dimasukkan langsung ke dalam proyek dan oleh karena itu disebut laporan 'tidak diketik'. Dalam hal ini, Anda harus membuat instance menggunakan objek "ReportDocuemt" dari Crystal Reports dan menggunakan laporan "secara manual".
Hal lain yang perlu diperhatikan
- Meskipun Crystal Report Viewer memiliki beberapa fitur keren seperti zoom, navigasi halaman, dll. Namun tidak menyediakan fungsi pencetakan, Anda harus memanggil fungsi pencetakan browser.
- Jika Crystal Report di VS.Net tidak didaftarkan, hanya dapat digunakan 30 kali, setelah 30 kali fungsi "simpan" tidak dapat digunakan lagi. Untuk menghindari hal ini, Anda sebaiknya tidak mendaftarkan produk ini di sini di http://www.crystaldecisions.com/ . (Sepertinya tidak demikian. Tampaknya dapat digunakan dalam waktu lama tanpa mendaftar, tetapi dukungan tidak dapat diberikan)
- Instalasi default Crystal Reports hanya dapat mendukung 5 pengguna. Untuk mendukung lebih banyak pengguna, Anda harus membeli lisensi di http://www.crystaldecisions.com/ .
Mari kita rasakan - menggunakan file Crystal Report yang sudah jadi di Asp.net 1) Tarik kontrol Crystal Report Viewer (Crystal Report Viewer) dari toolbar WebForm ke halaman .aspx.
2) Panggil jendela properti kontrol Crystal Report Viewer
3) Klik tombol [...] untuk melihat properti "Data Binding", dan jendela DataBinding muncul.
4) Pilih "Sumber Laporan" dari area "Properti yang Dapat Diikat" di sebelah kiri
5) Pilih tombol radio "Custom Binding Expression" dan tentukan nama file dan jalur file .rpt di jendela bawah di sebelah kanan, misalnya: "C:\Program Files\Microsoft Visual Studio.NET\ Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt" lalu "OK"
Catatan: File "Laporan Penjualan Dunia.rpt" dibuat selama instalasi VS.Net. Jika Anda menentukan direktori lain selama proses instalasi, sebaiknya konfirmasi kebenaran jalurnya saat ini.
Langkah-langkah di atas sebenarnya memasukkan kode berikut ke dalam file Asp.Net:
maupun:
id="CrystalReportViewer1"
runat="server" Lebar="350px" Tinggi="50px"
Sumber Laporan=''>
Catatan: Gaya yang dihasilkan oleh ReportSource dalam kode yang dibuat secara otomatis di versi resmi VS.Net saya tidak seperti ini, yaitu:
Sumber Laporan=""
Ini salah dan pesan kesalahan akan muncul. Ada dua kesalahan:
Itu harus dimodifikasi secara manual sesuai dengan format yang diperkenalkan dalam artikel ini. Ini dapat dianggap sebagai bug VS.Net.
6) Panggil metode DataBind dalam metode Page_Load. (Kodenya adalah VB.Net)
Sub Page_Load Pribadi (Pengirim ByVal Sebagai System.Object, ByVal dan Sebagai System.EventArgs)
Ikatan Data()
Akhiri Sub
7) Simpan dan kompilasi halaman Anda. Sekarang, Anda memiliki halaman WebForm dengan Crystal Reports tertanam di dalamnya.
Catatan: Pada perkembangan sebenarnya akan terjadi error yaitu direktori inetsrv tidak dapat diakses di awal. Solusinya adalah dengan mengubah atribut keamanan direktori sehingga user User mempunyai izin untuk menulis. Flying Knife Saya menemukan bahwa solusi yang diberikan oleh sistem .Net tidak berguna, dan mungkin karena saya menggunakan sistem operasi Windows.Net.
Menggunakan Crystal Reports di Asp.Net (Bagian 2)
www.dotnet8.com 2002-9-6 DotNet Bar
Konten berikut adalah kode program:
Menggunakan Pull Mode Kita akan menggunakan langkah-langkah berikut untuk menjalankan Crystal Reports melalui mode Pull
1. Pertama buat file rpt dan gunakan antarmuka desain Crystal Report untuk mengatur beberapa koneksi data yang diperlukan.
2. Drag dan drop kontrol CrystalReportViewer ke halaman aspx, atur propertinya untuk menentukan file .rpt yang kita buat pada langkah sebelumnya.
3. Panggil metode DataBind dalam kode.
Buat file .rpt:
1) Klik kanan "Solution Browser" dan pilih "Add"--"Add New Item"-->"Crystal Report" di menu pop-up
2) Pilih tombol radio "Sebagai Laporan Kosong" di "Crystal Report Library" dan terakhir klik "OK".
3) Perancang Crystal Report akan muncul di sini.
4) Klik kanan "Area Detail" di laporan dan pilih "Database" -> "Tambah/Hapus Database..."
5) Di pop-up "Database Expert", perluas opsi "OLE DB(ADO)", dan jendela "OLE DB(ADO)" lainnya akan muncul.
6) Di jendela pop-up "OLE DB (ADO)", pilih "Microsoft OLE DB Provider for SQL Server" dan kemudian "Next"
7) Tentukan server informasi yang akan disambungkan: ASPCN (tulis apa pun nama mesin Anda)
ID Pengguna: sa
kata sandi:
Basis Data: Pub
8) Klik "Berikutnya" dan terakhir klik tombol "Selesai".
9) Saat ini Anda dapat melihat database yang kami pilih di jendela "Database Expert".
10) Perluas database "Pub", perluas "Tabel", pilih tabel "Toko" dan tambahkan ke area "Tabel yang Dipilih", klik tombol "OK".
11) Sekarang di "Field Resource Browser", tabel yang Anda pilih dan bidang dalam tabel akan ditampilkan di area "Database Field" di sebelah kiri.
12) Seret dan lepas bidang yang wajib diisi ke dalam area "Detail" pada laporan. Nama field secara otomatis akan muncul di area "Header". Jika Anda ingin mengubah teks header, Anda dapat mengklik kanan teks di area "Header", pilih opsi "Edit Objek Teks" dan edit.
13) Simpan sehingga kita mempunyai file Crystal Report.
Buat kontrol CrystalReportViewer
14) Kembali ke WebForm sebelumnya, drag dan drop kontrol Crystal Report Viewer ke halaman.
15) Panggil jendela properti kontrol Crystal Report Viewer, pilih area "DataBindings" dan klik [...]
16) Di "Jendela Pengikatan Data Penampil Laporan Kristal", pilih "ReportSource" di "Properti yang Dapat Diikat" di sebelah kanan, dan pilih "Ekspresi Pengikatan Khusus" di sudut kanan bawah untuk menentukan jalur file .rpt.
17) Pada titik ini Anda dapat melihat pratinjau file laporan yang terdiri dari beberapa data virtual dari kontrol Crystal Report Viewer.
Catatan: Pada contoh di atas, CrystalReportViewer dapat langsung memanggil data sebenarnya pada waktu desain karena data telah disimpan saat ini. Dalam hal ini, jika data tidak disimpan pada waktu desain, data tidak dapat ditampilkan. Sebaliknya, beberapa data dummy ditampilkan, dan data nyata dipilih hanya pada waktu eksekusi.
Kode Dibalik Pemrograman
18) Panggil metode DataBind dalam metode Page_Load.
jalankan program Anda
19) Buat dan jalankan program Anda!
Anda sekarang dapat menggunakan beberapa fungsi bawaan Crystal Reports langsung di halaman web, seperti navigasi halaman, zoom, dll.
Menggunakan Crystal Reports di Asp.Net (Bagian 2)
www.dotnet8.com 2002-9-6 DotNet
[HTML] Kami menggunakan langkah-langkah berikut untuk menjalankan Crystal Reports menggunakan mode Push:
1. Rancang Kumpulan Data
2. Buat file .rpt dan tetapkan ke DataSet yang dibuat pada langkah sebelumnya.
3. Drag dan drop kontrol CrystalReportViewer di halaman aspx dan hubungkan dengan file rpt sebelumnya.
4. Akses database dalam kode dan simpan data di DataSet
5. Panggil metode DataBind.
Rancang Kumpulan Data
1) Klik kanan "Solution Browser" dan pilih "Tambah" -- "Tambahkan Item Baru" --> "Kumpulan Data"
2) Tarik dan lepas tabel "Toko" (terletak di database PUBS) dari "SQL Server" di "Server Explorer".
3) Saat ini, akan ada diagram struktur tabel Toko di kumpulan data.
- File .xsd hanya berisi diagram struktur, tetapi tidak akan ada data di dalamnya.
Buat file .rpt:
4) Buat file ini menggunakan metode yang diperkenalkan di atas. Satu-satunya perbedaan adalah menggunakan kumpulan data, bukan data koneksi langsung sebelumnya.
5) Setelah membuat file .rpt, klik kanan "Detail" --> "Tambah/Hapus Database"
6) Di jendela "Database Expert", perluas "Project Data" (menggantikan OleDb sebelumnya), perluas "ADO.Net Data Set" -- "DataSet1", dan pilih tabel "Stores".
7) Tambahkan tabel "Toko" ke "Tabel yang Dipilih" dan klik "OK"
8) Gunakan metode dalam mode PULL untuk membuat WebForm
Buat kontrol Crystal Report Viewer
9) Buat kontrol Crystal Report Viewer dan atur propertinya. Ini konsisten dengan mode PULL.
Kode Dibalik Kode:
10) Gunakan subfungsi berikut dalam metode Page_Load:
Kode VB.Net:
Laporan SubBind()
Redupkan myConnection Sebagai SqlClient.SqlConnection() Baru
myConnection.ConnectionString= "server= (lokal)NetSDK;database=pub;Trusted_Connection=yes"
Redupkan MyCommand Sebagai SqlClient.SqlCommand() Baru
Perintah Saya.Koneksi = Koneksi saya
MyCommand.CommandText = "Pilih * dari Toko"
MyCommand.CommandType = CommandType.Teks
Redupkan MyDA Sebagai SqlClient.SqlDataAdapter() Baru
MyDA.SelectCommand = Perintah Saya
Redupkan myDS Sebagai Kumpulan Data Baru1()
'Ini adalah DataSet yang kami gunakan pada mode desain
MyDA.Fill(myDS, "Toko")
'Anda harus menggunakan nama yang sama dengan DataSet Anda sebelumnya.
Redupkan oRpt Sebagai CrystalReport1() Baru
'Laporan kristal mengikat
oRpt.SetDataSource(myDS)
'Atur Sumber Laporan Crystal Report
CrystalReportViewer1.ReportSource = oRpt
Akhiri Sub
kode C#:
kekosongan pribadi BindReport()
{
string strProvider = "Server=(lokal);DataBase=pub;UID=sa;PWD=";
CrystalReport1 oCR = CrystalReport1 baru();
Kumpulan Data1 ds = Kumpulan Data1() baru;
SqlConnection MyConn = SqlConnection baru(strProvider);
MyConn.Buka();
string strSel = "Pilih * dari Toko";
SqlDataAdapter MyAdapter = baru SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"toko");
oCR.SetDataSource(ds);
ini.CrystalReportViewer1.ReportSource = oCR;
}
Catatan: Pada kode di atas, Anda harus mencatat bahwa oRpt adalah file laporan "Diketik dengan Kuat". Jika Anda perlu menggunakan laporan "Tidak Diketik", Anda harus menggunakan objek ReportDocument dan kemudian memanggil file laporan.
Jalankan program Anda.
11) Jalankan program Anda
Mengekspor file laporan ke format lain
Anda dapat mengekspor file laporan ke format berikut:
1. PDF (Format Dokumen Portabel)
1. 2. DOC (Dokumen MS Word)
2. 3. XLS (Lembar Kerja MS Excel)
3. 4. HTML (Hyper Text Markup Language – sesuai 3.2 atau 4.0)
4. 5. RTF (Rich Text Format)
menggunakan mode Pull untuk mengekspor laporan. Saat mengekspor file yang dibuat menggunakan mode Pull, Crystal Reports secara akurat membuka data yang diperlukan.
kode C#:
Kode VB.Net:
Sub Pribadi Button1_Click(Pengirim ByVal Sebagai System.Object, ByVal dan Sebagai System.EventArgs) Menangani Button1.Click
Redupkan myReport Sebagai CrystalReport1 = CrystalReport1() Baru
'Catatan: Di sini kita membuat instance Crystal Report dengan tipe kuat.
Redupkan DiskOpts Sebagai CrystalDecisions.Shared.DiskFileDestinationOptions = CrystalDecisions.Shared.DiskFileDestinationOptions() Baru
myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Dibagikan].ExportDestinationType.DiskFile
' Opsi ini juga diperlukan saat mengekspor ke file lain
' Seperti Microsoft Exchange, MAPI, dll.
myReport.ExportOptions.ExportFormatType = CrystalDecisions.[Dibagikan].ExportFormatType.PortableDocFormat
'Di sini kami mengekspornya ke file berformat .pdf, Anda juga dapat memilih jenis file lain di atas
DiskOpts.DiskFileName = "c:Output.pdf"
'Jika Anda tidak menentukan direktori pastinya, file akan disimpan di direktori [Windows]System32.
myReport.ExportOptions.DestinationOptions = DiskOpts
'File Crystal Report tidak berisi properti FileName langsung, jadi Anda tidak bisa langsung menentukan nama file yang disimpan
'Jadi, Anda harus menggunakan objek DiskFileDestinationOptions dan mengatur properti DiskFileName-nya
'Untuk jalur yang Anda inginkan, terakhir tentukan properti DestinationsOptions Crystal Reports seperti DiskFileDestinationOption di atas
Laporan saya.Ekspor()
'Kode di atas akan melakukan pekerjaan ekspor.
Akhiri Sub
Ekspor Crystal Reports menggunakan mode PUSH. Ketika laporan yang diekspor dibuat dengan mode PUSH, langkah pertama adalah membuat koneksi dan merakit DataSet melalui pemrograman, dan mengatur properti SetDataSource laporan. Langkah-langkah berikut ini sama seperti pada mode Tarik.
[/HTML]
Ringkasan penggunaan Crystal Reports di lingkungan .NET
. Crystal Reports adalah alat pengembangan laporan yang luar biasa. Saat saya mengembangkan sistem manajemen umum, semua laporan menggunakan Crystal Reports lebih lanjut. Sekarang saya akan Crystal Reports disajikan kepada semua orang menggunakan catatan.
1. Saat menggunakan Crystal Report bawaan, silakan mendaftar, jika tidak, Anda hanya dapat menggunakan
Crystal Report sebanyak 30 kali. Nomor registrasi: 6707437608
Kata sandi:AAP5GKS0000GDE100DS
2. Gunakan CrystalReportViewer untuk pratinjau.
Kontrol CrystalReportViewer memungkinkan Anda melihat Crystal Report dalam aplikasi. Properti ReportSource menetapkan laporan mana yang akan dilihat. Setelah properti ini disetel, laporan ditampilkan di penampil. Sumber laporan dapat berupa ReportDocument, jalur file laporan, atau laporan yang diketik dengan kuat.
1. Buka "Toolbox" dan seret CrystalReportViewer ke formulir, yang kita beri nama rptVew.
2. Gunakan drag-and-drop untuk mengubah ukuran Windows Forms Viewer ke ukuran yang diinginkan dan memindahkannya ke posisi yang diinginkan.
3. Saat Anda menjalankan aplikasi, laporan akan ditampilkan di viewer.
3. Membuat laporan baru
1. Arahkan ke "Tambah" dan klik "Tambahkan Item Baru".
2. Dalam kotak dialog "Tambahkan Item Baru", pilih Crystal Report dari area "Template", beri nama laporan rptClient, dan klik "Buka".
3. Di galeri Crystal Report, pilih salah satu opsi berikut:
· Gunakan Report Expert—Memandu Anda melalui proses pembuatan laporan dan menambahkan pilihan Anda ke Crystal Report Designer.
· Sebagai laporan kosong—Membuka Crystal Report Designer.
· Dari laporan yang ada—Membuat laporan baru dengan desain yang sama dengan laporan lain yang Anda tentukan.
Catatan Pustaka Crystal Report berisi pakar yang dapat memandu Anda dalam pembuatan beberapa jenis laporan tertentu. Anda mungkin ingin menggunakan seorang ahli untuk membuat laporan awal guna menentukan metode pembuatan laporan mana yang sesuai dengan kebutuhan Anda.
4. Klik tombol OK.
Jika Anda memilih untuk menggunakan Pakar Laporan, kotak dialog Pakar Laporan akan muncul dengan Data Explorer. Pilih data yang diperlukan untuk setiap folder, selesaikan operasi pada antarmuka tab Report Expert, lalu klik Finish untuk mengakses Crystal Report Designer dan laporan Anda
4. Apakah Anda perlu mengatur sumber data secara dinamis?
Crystal Reports terhubung ke database melalui driver database. Setiap driver ditulis untuk menangani tipe database tertentu atau teknologi akses database.
Model Tarik dan Dorong Untuk memberikan metode akses data yang paling fleksibel kepada pengembang, driver database Crystal Reports dirancang untuk menyediakan model akses data tarik dan dorong.
model tarik
Pada model pull, driver akan terhubung ke database dan "menarik" data sesuai kebutuhan. Saat menggunakan model ini, koneksi ke database dan perintah SQL yang dijalankan untuk memperoleh data ditangani oleh Crystal Reports sendiri, tanpa perlu pengembang menulis kode. Gunakan model tarik jika Anda tidak perlu menulis kode khusus apa pun saat runtime.
model dorong
Sebaliknya, model push mengharuskan pengembang untuk menulis kode untuk menyambung ke database, menjalankan perintah SQL untuk membuat kumpulan data atau kumpulan data yang cocok dengan bidang dalam laporan, dan meneruskan objek ke laporan. Metode ini memungkinkan Anda untuk memasukkan berbagi koneksi ke dalam aplikasi Anda dan memfilter data sebelum Crystal Reports menerimanya.
4. Membuat laporan dari kumpulan data ADO.NET dan
membuat objek kumpulan data dari database
1. Buat file skema baru di proyek:
a. Di penjelajah solusi, klik kanan nama proyek, arahkan ke "Tambah", dan lalu klik " Tambahkan item baru".
b. Di area Kategori pada kotak dialog Tambah Item Baru, perluas folder, lalu pilih Data.
c. Pilih Kumpulan Data di area Templat.
d.Terima nama default Dataset1.xsd.
Ini membuat file skema baru (Dataset1.xsd) yang nantinya akan digunakan untuk menghasilkan kumpulan data yang diketik dengan kuat. File skema akan muncul di ADO.NET Dataset Designer.
2. Tentukan lokasi database:
a. Di Server Explorer, klik kanan Data Connections dan pilih Add Connection.
b. Di kotak dialog Properti Tautan Data, klik tab Penyedia, lalu pilih penyedia (misalnya Penyedia Microsoft OLE DB untuk SQL Server).
c.Klik tab Connection dan tentukan lokasi database Anda. Masukkan server Anda dan informasi login jika diperlukan.
d.Klik tombol OK.
Basis data Anda beserta tabel dan bidangnya sekarang muncul di Server Explorer di bawah simpul Koneksi Data.
3. Di Solution Explorer, klik dua kali Dataset1.xsd (jika belum menjadi tampilan aktif).
Dataset1.xsd sekarang akan muncul di tab Datasets.
4. Untuk membuat skema kumpulan data, seret tabel yang diperlukan dari Server Explorer ke tab Kumpulan Data di Dataset1.xsd.
5. Klik Save Dataset1.xsd untuk menyimpan file Dataset1.xsd.
6. Pada menu Generate, klik Generate untuk menghasilkan objek dataset untuk proyek tersebut.
Objek ADO.NET DataSet memberikan deskripsi data dari tabel mana yang dapat ditambahkan ke laporan Crystal. Gunakan Pakar Basis Data di Crystal Report Designer untuk menambahkan tabel dari objek Kumpulan Data ADO.NET.
Silakan hubungi Pakar Basis Data saat Anda menggunakan Pakar Laporan untuk membuat laporan baru. Atau, untuk mengakses Pakar Basis Data dari laporan yang telah dibuat menggunakan ADO.NET, klik kanan di Perancang Laporan, arahkan ke Basis Data, lalu klik Tambah/Hapus Basis Data.
Menyambungkan laporan ke objek Himpunan Data ADO.NET
1. Di Pakar Basis Data, perluas folder Data Proyek.
2. Perluas folder "Kumpulan Data ADO.NET".
3. Pilih objek dataset yang diperlukan.
Misalnya, jika Anda menggunakan objek kumpulan data yang dihasilkan dari file skema "Dataset1.xsd" dari proyek "WindowsApplication1", Anda harus memilih "WindowsApplication1.Dataset1".
4. Pilih tabel yang akan ditambahkan ke laporan, sama seperti yang Anda lakukan dengan sumber data lainnya.
5. Kode untuk mengubah sumber data secara dinamis
Redupkan dsdataSet Sebagai DataSet Baru()
Redupkan oRpt Sebagai Baru rptClient() 'Laporan rptClient yang telah dibuat
mengharuskan pembaca untuk mengisi sendiri kumpulan data dsdataSet
'Gunakan model objek "mesin laporan" untuk meneruskan kumpulan data yang telah diisi ke
oRpt laporan. SetDataSource(dsdataSet.Tables(0))
'Ikat objek laporan dengan data ke Windows Forms Viewer, rptVew (kontrol CrystalReportViewer)
rptVew.ReportSource = oRpt
Perhatikan bahwa metode FillDataSet dapat terhubung ke database yang ditentukan, mengekstrak data, dan kemudian putuskan sambungan basis data. Jika Anda ingin menambahkan beberapa tabel dalam database ke laporan, gunakan pernyataan SQL JOIN untuk menggabungkan tabel-tabel ini bersama-sama; lalu tentukan tabel hasil dalam metode FillDataSet
6. Buat laporan detail master
Dalam laporan, ada banyak laporan Struktur tabel detail utama, seperti pesanan dan detail produk pesanan, pesanan adalah catatan dalam satu tabel, dan entri adalah beberapa catatan di tabel lain. Kedua tabel tersebut dihubungkan melalui suatu bidang. Laporan semacam ini dapat menggunakan implementasi fungsi pengelompokannya :
1. Buat proyek baru
2. Tambahkan kontrol CrystalReportViewer ke FORM1
3. Hubungkan ke database Northwind di SQL SERVER 2000 di manajer sumber daya layanan
4. Tambahkan kumpulan data Dataset1 dan tambahkan Pesanan dan Detail Pesanan ditambahkan ke data mengatur.
5. Tambahkan Crystal Report, gunakan Report Expert, pilih "ADO.NET Data Set" di data proyek, masukkan tabel Pesanan dan Detail Pesanan, "Link" adalah tautan ke bidang terkait, pilih bidang yang akan ditampilkan "Field" Untuk field tabel utama dan tabel detail, dasar pemilihan grup dalam grup tersebut adalah field tabel Pesanan OrdersID, total, chart, seleksi (bisa difilter), style (bisa atur judul laporan), dan bisa diatur sendiri. Setelah pengaturan, klik Selesai.
6. Sesuaikan posisi, lebar, dan lain-lain dari kolom yang akan ditampilkan di pembuat laporan.
7. Tambahkan kode di jendela.
Sub Pribadi Form1_Load(Pengirim ByVal Sebagai System.Object, ByVal dan Sebagai System.EventArgs) Menangani MyBase.Load
Dim oRpt Sebagai New CrystalReport1()
Redupkan dsdataSet Sebagai New Dataset1()
Redupkan CN Sebagai Data Baru.SqlClient.SqlConnection("sumber data=PMSERVER;katalog awal=Northwind;user id=sa;password=sa")
CN.Open()
Redupkan daOrders Sebagai Data Baru.SqlClient.SqlDataAdapter("pilih * dari pesanan", CN)
daOrders.Fill(dsdataSet, "pesanan")
Redupkan daDetails Sebagai Data.SqlClient.SqlDataAdapter("pilih * dari [Detail Pesanan]", CN)
daDetails.Fill(dsdataSet, "Detail Pesanan")
'Gunakan model objek "Mesin Laporan" untuk meneruskan kumpulan data yang diisi ke laporan
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8. Jalankan program
7. Gunakan program untuk mengubah teks dalam laporan.
Kodenya adalah sebagai berikut:
Redupkan GetTextObject As TextObject
' Dapatkan ReportObject berdasarkan nama, ubah menjadi TextObject, dan kembalikan objek ini.
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "sistem XXXXX"
Ringkasan: Crystal Reports memiliki fungsi yang sangat kuat, juga dapat mengekspor WORD, EXCEL, RTF dan file lainnya, dan juga dapat menghasilkan grafik yang kompleks dan indah.
(Sebagian informasi dalam artikel ini berasal dari MSDN)
Penulis: Li Honggen
E-MAIL: [email protected]
Saya punya ide berikut:
1. Dapatkan data terkait database SQL melalui permintaan koneksi;
2. Tempatkan di DataSet;
3. Hubungi Crystal Reports (templat linier atau kolom) untuk menghasilkan laporan;
4. Keluarkan dan hasilkan dokumen EXCEL.
Tolong beritahu saya, para pahlawan, bagaimana menerapkan ide-ide di atas? (Akan lebih baik jika ada contohnya)
Terima kasih banyak!
--------------------------------------------------- -------------
1. Tambahkan DataSet proyek baru ke proyek Anda, sambungkan ke database, dan tambahkan tabel data atau prosedur tersimpan yang diperlukan
Tarik ke DataSet ini dan kompilasi DataSet
2. Gunakan Crystal Report yang disertakan dengan Vs.net untuk membuat laporan dengan DataSet sebagai sumber datanya.
3. Masukkan data ke dalam laporan ini di program
4.Crystal Report memiliki opsi untuk menghasilkan output ke Excel, yang juga dapat dicapai melalui suatu program.
Redupkan koneksi Sebagai SqlConnection
Redupkan Sebagai SqlDataAdapter
Redupkan strSQL Sebagai String
samb = SqlConnection Baru()
conn.ConnectionString = "ID Pengguna=sa; PWD=1234;Sumber Data=xxxx; Katalog Awal =xxxxx"
samb.Buka()
strSQL = "Pilih * dari Nama Tabel"
da = SqlDataAdapter Baru(strSQL, samb)
Redupkan ds Sebagai DataSet Baru()
da.Isi(ds, "NamaTabel")
Redupkan RptDoc Sebagai ReportName Baru()
RptDoc.SetDataSource(ds)
'Tentukan data untuk RptDoc,
CrystalView1.ReportSource = RptDoc 'Tentukan data untuk CrystalView
CrystalView1.DataBind()
samb.Tutup()
5. Jika Anda perlu menampilkan bidang yang terkait dengan beberapa tabel, yang terbaik adalah membuat Kumpulan Data menggunakan prosedur tersimpan.
--------------------------------------------------- -------------
Silakan lihat kode berikut:
string strconn=string koneksi;
SqlConnection myconn=SqlConnection baru(strconn);
string strcmd=@"pilih pernyataan";
SqlCommand mycmd=baru SqlCommand(strcmd,myconn);
SqlDataAdapter myda=baru SqlDataAdapter(strcmd,myconn);
DataSet myds=DataSet baru();
myconn.Buka();
myda.Fill(myds,"nama laporan");
Nama laporan myrpt =nama laporan baru();
myrpt.SetDataSource(myds);
this.CrystalReportViewer1.ReportSource=myrpt;
Ekspor ke EXCEL:
myrpt.ExportOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myrpt.ExportOptions.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.Excel;
CrystalDecisions.Shared.DiskFileDestinationOptions opt=baru CrystalDecisions.Shared.DiskFileDestinationOptions();
opt.DiskFileName=@"Nama File";
myrpt.ExportOptions.DestinationOptions = memilih;
myrpt.Export();
unduhan bantuan berbahasa Mandarin untuk Crystal Reports 9:
http://www.ourfly.com/download/download.aspx
http://www.enwell.net/soft/
http://www.fast8.com/news.asp
Crystal Reports untuk
anggota Visual Studio .NET PictureObject lihat
Kelas PictureObject¦ CrystalDecisions.CrystalReports.Properti instance publik namespace mesin
Perbatasan(Diwarisi dari ReportObject) Perbatasan. Dapatkan objek Perbatasan.
Tinggi (diwarisi dari ReportObject) Int32. Mendapatkan atau mengatur ketinggian objek dalam twips.
Jenis (Diwarisi dari ReportObject) ReportObjectKind. Mendapatkan jenis objek laporan.
Kiri (Diwarisi dari ReportObject) Int32. Mendapatkan atau mengatur posisi pojok kiri atas objek dalam twips.
Nama (diwarisi dari ReportObject) String. Dapatkan nama objeknya.
ObjectFormat (Diwarisi dari ReportObject) ObjectFormat. Dapatkan objek ObjectFormat.
Atas (Diwarisi dari ReportObject) Int32. Mendapatkan atau menetapkan posisi teratas objek dalam twips.
Lebar (diwarisi dari ReportObject) Int32. Mendapatkan atau menyetel lebar objek dalam twips.
Melihat
PictureObject
ClassImports CrystalDecisions.CrystalReports.Engine
Redupkan picObject Sebagai PictureObject
picObject = oRpt.ReportDefinition.ReportObjects.Item("gambar1")
Dari: http://expert.csdn.net/Expert/topic/1896/1896874.xml?temp=.78677
Saat Anda menggunakan Crystal Reports berdasarkan formulir web, jika Anda cukup mengikuti metode "A Dao" di Internet, Anda pasti akan diminta. Anda: Login gagal.
Mengenai masalah ini, saya menghabiskan waktu seharian mempelajari file bantuan Crystal Reports dan akhirnya mendapatkan solusinya.
Saya bukan orang yang konservatif. Saya yakin banyak netizen yang menghabiskan energinya untuk meneliti masalah ini seperti saya. Saya tidak ingin semua orang membuang energi dengan sia-sia seperti saya.
Berikut adalah beberapa langkah yang saya ambil untuk menerapkan solusi ini. Jangan cemas, akan sangat membantu Anda jika membacanya perlahan.
Langkah 1: Lihat file contoh. Crystal Reports dilengkapi dengan file contoh, dan database dapat diakses (tanpa kata sandi). Saya pertama kali menjalankan file contoh (berdasarkan webform dan winform) dan hasilnya menunjukkan laporan yang benar, seperti contoh "pisau terbang".
Jadi saya sendiri yang membuat file laporan dan file .aspx, namun hasilnya login gagal! Namun saya mengubah file laporan menjadi contoh file laporan dan tidak terjadi kesalahan lagi.
Apa masalahnya? Mungkinkah file format laporan tersebut memiliki pengaturan izin login? Melalui pelacakan dan debugging, saya membandingkan dan menganalisis file laporan saya dan contoh file laporan, dan tidak menemukan perbedaan. Tampaknya masalahnya bukan pada file laporan.
Apakah ini masalah basis data? Saat saya membuat akses, login gagal!
Bukankah ini masalah database (database saya sendiri memiliki akses yang tidak memiliki kata sandi, dan hal yang sama berlaku untuk database di bantuan)? Bukankah ada masalah dengan file format laporan (saya analisa dengan cermat bahwa kode asli keduanya sama)?
Jadi dimana masalahnya terjadi? Saya tidak dapat memahaminya!
Langkah 2: Temukan file bantuan Jadi saya meminta bantuan lagi. Saya mencari melalui bantuan Crystal Reports dan akhirnya menemukan tulisan "Access Secure Database [C#]" dan menemukan paragraf berikut:
Proses untuk mengakses database aman melalui Crystal Reports untuk Visual Studio .NET berbeda antara Formulir Web dan Formulir Windows. Di Windows Forms, kotak dialog secara otomatis meminta nama pengguna dan kata sandi kepada pengguna (pengujian berhasil dengan mudah). Di Formulir Web, Anda perlu mendesain formulir untuk memperoleh informasi ini dari pengguna. Dalam kedua kasus tersebut, kode dapat digunakan untuk menentukan nama pengguna dan kata sandi, sehingga memberikan tingkat keamanan yang sama untuk semua pengguna aplikasi.
Jadi saya menggunakan database yang sama (pertama menggunakan database akses pada contoh bantuan, dan kemudian menggunakan database akses yang saya buat). Ditemukan bahwa untuk file laporan yang sama, winform dapat menunjukkan keberhasilan, tetapi formulir web masih menunjukkan kegagalan login! Jadi saya agak mengerti maksudnya!
Tampaknya masalahnya terletak pada pengaturan izin.
Langkah 3: Lakukan riset untuk mendapatkan bantuan dan akhirnya berhasil!
Dalam bantuan, saya menemukan kata-kata "Atur Parameter Login Basis Data", yang memberikan beberapa informasi yang kemudian saya temukan sangat berguna:
Contoh berikut menunjukkan cara meneruskan parameter login ke tabel laporan. Contoh ini menggunakan koneksi ke database SQL Server yang aman.
Mulai proyek baru dan tambahkan satu Tombol dan empat kontrol Kotak Teks ke formulir.
Beri nama kontrol Kotak Teks: serverNameTxt, dbNameTxt, userNameTxt, dan passwordTxt.
Klik dua kali kontrol Tombol untuk menentukan kode untuk acara Klik. Masukkan kode yang sesuai berdasarkan bahasa yang digunakan.
[C#]
// Deklarasikan variabel yang diperlukan.
TableLogOnInfo logOnInfo = TableLogOnInfo baru();
int i = 0;
// Ulangi setiap tabel dalam laporan.
untuk (i=0;i == Laporan.Database.Tabel.Hitungan - 1;i++)
{
//Atur informasi koneksi tabel saat ini.
logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Teks;
logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Teks;
logOnInfo.ConnectionInfo.UserID = namapenggunaTxt.Teks;
logOnInfo.ConnectionInfo.Password = kata sandiTxt.Teks;
Laporan.Database.Tabel [i].ApplyLogOnInfo (logOnInfo);
}
Perhatikan bahwa database PC yang dilindungi kata sandi seperti Microsoft Access dan Paradox juga menggunakan metode ini, tetapi LOGONINFO.SERVERNAME dan LOGONINFO.DataBASENAME harus dibiarkan kosong.
Jadi saya mencobanya seperti ini dan mendapat pesan kesalahan: tablelogoninfo dan laporan tidak ditemukan.
Kemudian saya menemukan bahwa tablelogoninfo adalah anggota Crystaldecisions. Jadi saya menambahkan kutipan:
menggunakan crystaldecisions.hared;
Kali ini masalah terjadi dalam laporan.
Laporan? Apa ini?
[Dengan serius! Masalah ini telah mengganggu saya sejak lama! Saya telah mencari apa laporannya! Perusahaan Laporan Waterscape juga sangat membantu dan tidak menulis secara detail! Saatnya bertarung! ! ! ]
Pada akhirnya, saya akhirnya menemukan bahwa laporan hanyalah objek yang ditentukan pengguna, bukan objek sistem itu sendiri.
Ketika saya bingung, saya tiba -tiba berpikir, mengapa tidak melihat database di balik laporan itu, apa akhirnya masalahnya diselesaikan, saya menemukan informasi berikut dalam bantuan tersebut
ReportDocument orpt = ReportDocument baru ();
Laporan adalah anggota dari kelas DocumentCrystalDecisions.CrystalReports.Engine.
Ubah kode: dan tambahkan referensi
menggunakan crystaldecisions.shared; // bertanggung jawab untuk menafsirkan kelas tablelogoninfo
menggunakan crystaldecisions.crystalreports .Engine; // Bertanggung jawab untuk menafsirkan KelasDocument kelas Void Private Page_Load (pengirim objek, System.eventArgs e)
{
Tablelogoninfo logoninfo = tablelogoninfo baru ();
// Laporan objek ReportDocument harus dinyatakan sebelumnya dan laporan data harus dimuat pada saat yang sama.
ReportDocument orpt = ReportDocument baru ();
orpt.load ("c: \ inetpub \ wwwroot \ exer \ pagelet \ crystal \ cr1.rpt"); // ubah ke lokasi Anda sendiri // yang benar
// Buat informasi keamanan Anda
// Database PC yang dilindungi kata sandi seperti Microsoft Access dan Paradox juga menggunakan metode ini, tetapi LOGONINFO.SERVERNAME // dan LOGONINFO.DataBASENAME harus dibiarkan kosong
LogonInfo.ConnectionInfo.Servername = "www";
LOGONINFO.ConnectionInfo.databasename = "arsip";
logoninfo.connectionInfo.userid = "SA";
LogonInfo.connectionInfo.password = "123456
"
;
CrystalReportViewer1.ReportSource = orpt;
}
File laporan akhirnya muncul!
Wow, saya sangat senang bahwa saya tidak bisa menahan diri untuk tidak berdiri dan meregangkan!
Langkah 4: Versi lengkap kode akhir. Ada dua kelemahan:
(1) File format laporan data menggunakan jalur absolut
(2) Setelah izin akses basis data ditetapkan, mereka tidak dapat dimodifikasi dalam rilis akhir. Memperkenalkan dua hal yang lebih baik:
(1), fungsi server.mappath
(2) Baca web.config (contoh ini juga memberi tahu Anda cara mengoperasikan file konfigurasi web.config)
Modifikasi akhir adalah sebagai berikut: (kode lengkap) Basis data adalah SQL Server2000
menggunakan crystaldecisions.shared; // bertanggung jawab untuk menafsirkan kelas tablelogoninfo
menggunakan crystaldecisions.crystalreports .Engine; // Bertanggung jawab untuk menafsirkan KelasDocument kelas
Void Private Page_Load (pengirim objek, System.eventArgs e)
{
Tablelogoninfo logoninfo = tablelogoninfo baru ();
// Laporan objek ReportDocument harus dinyatakan sebelumnya dan laporan data harus dimuat pada saat yang sama.
ReportDocument orpt = ReportDocument baru ();
// Dapatkan jalur nyata dari file .rpt
string path1, path2;
path1 = server.mappath (" \ exer \ pagelet ");
path2 = path1+" \ crystal \ cr1.rpt ";
//orpt.Load("c: OtpubwwwrootroTer\PageletRyStryStalr1.rpt ");
orpt.load
(path2);
String A, B, C, D;
// Dapatkan Servername
a = System.configuration .configurationsettings .AppSettings ["Servername"];
// Dapatkan nama data
b = System.configuration. Configurationsettings .AppSettings ["Database"];
// Dapatkan userid
c = System.configuration. Configurationsettings .AppSettings ["UserId"];
// Dapatkan kata sandi
d = System.configuration. Configurationsettings .AppSettings ["Pass"];
// Atur parameter LogonInfo
LogonInfo.ConnectionInfo.Servername = a;
LogonInfo.ConnectionInfo.databasename = b;
LogonInfo.ConnectionInfo.userid = C;
=
D
;
CrystalReportViewer1.ReportSource = orpt;
}
Deskripsi seluruh proses demonstrasi:
1. Di Solution Explorer, di mana Anda perlu menyimpan file laporan, tambahkan item baru: Laporan CrystalReport, bernama CR1.RPT
2. Saat memilih sumber data di "Pakar Laporan" yang muncul kemudian, pastikan untuk memilih OLE DB, dan kemudian pilih mesin penggerak yang sesuai sesuai dengan persyaratan database Anda:
SQL Server : Microsoft OLE DB Provider untuk SQL Server
Akses: Microsoft Jet.4.0
3. Masukkan koneksi basis data yang benar.
4. Buat laporan data dan simpan file CR1.RPT
5. Buka WebForm1.aspx. Tambahkan Kontrol CrystalReportViewer: Nama: CrystalReportViewer1
6. Tambahkan kode di atas di acara Page_Load di WebForm1.aspx.cs:
(Catatan: Jangan lupa mengutip!)
******************************************************* ****
Di bawah ini adalah detail yang terkait dengan konten ini di web.config
*** Perhatikan bahwa
// Dapatkan kata sandi
d = System.configuration. Configurationsettings .AppSettings ["Pass"]; The "Pass" di AppSettings ["Pass"] di sini tetap konsisten. Tentu saja, Anda dapat memilih nama apa pun yang Anda suka, tetapi harus konsisten.
http://www.cnblogs.com/zhangyd1080/archive/2006/11/15/561770.html