Kecuali seseorang memiliki solusi yang lebih cepat/sederhana, berikut adalah pendekatan yang saya gunakan untuk membuat laporan kristal bekerja dengan MS Access di Visual Studio 2010. Ini sedikit lebih terlibat daripada metode normal dalam memilih sumber data, tetapi menawarkan lebih banyak kontrol, adalah basis data agnostik dan berfungsi di mana metode lain terkadang gagal (terutama dengan MS Access dalam pengalaman saya).
Saya akan merinci proses pembuatan laporan dari awal hingga akhir (karena seluruh proses mungkin berguna bagi orang lain) tetapi akan menyoroti bagian-bagian yang mungkin berguna bagi Anda.
1) Instal Crystal Reports dari situs SAP. Pastikan Anda mengunduh file exe, BUKAN yang msi (tidak berfungsi):
http://scn.sap.com/docs/DOC-7824
2) Ubah Kerangka Target aplikasi Anda menjadi .Net Framework 4 (BUKAN klien). Barang-barang Crystal tidak termasuk dalam profil dasar.
3) Tambahkan referensi ke perpustakaan Crystal (Crystal Reports untuk .NET)
4) Tambahkan formulir, pada formulir itu tempatkan kontrol Crystal Report Viewer (dari bagian Reporting pada Toolbox):
5) Tambahkan CrystalReportDocument dan tetapkan ke kontrol CrystalReportViewer:
Untuk benar-benar mengisi laporan dengan data, Anda melakukan hal berikut:
1) Keluarkan skema laporan Anda dengan mengeksekusi kode yang mengambil data laporan Anda (dari gateway) dan mengekspor skema. Misalnya:
<TestMethod()>
Public Sub SchemaTest()
Dim dataSet As DataSet = StaticDataGateway.AccountingIncomeTotals
dataSet.WriteXmlSchema("I:\Myschema.xml")
End Sub
Jika Anda sudah membuat laporan, Anda mungkin tidak memerlukan ini. Sama jika Anda dapat menulis xml dengan tangan (mudah setelah Anda memiliki template untuk bekerja)
2) Anda kemudian memuat ini ke dalam laporan Anda untuk mendapatkan bidang yang kemudian dapat Anda manipulasi untuk menghasilkan laporan Anda. Untuk melakukan ini, Anda klik kanan pada bidang basis data di Penjelajah Bidang Laporan:
3) Dari sini pilih Database Expert dan pilih ADO.net (xml). Pilihan logis Access/Excel DAO sebenarnya tidak berfungsi sama sekali di VS 2010. Pilih file skema Anda dan muat, lalu klik dua kali pada Table1 untuk mengisi tampilan Selected Tables:
4) Sekarang setelah skema Anda dimuat, Anda akan dapat melihat bidang di bidang tarik-turun yang dapat Anda seret n lepas ke laporan Anda:
5) Terakhir, Anda memuat kumpulan data ke dalam laporan Anda dengan mengeksekusi kode di acara pemuatan formulir Anda di mana Anda menempatkan kontrol reportviewer di:
i) Pastikan Anda mengeluarkan set data (tidak dapat didata) dari gateway Anda (atau di mana pun):
Public Shared Function AccountingIncomeTotals() As DataSet
Dim dataSet As New DataSet
Dim dataTable As DataTable = Database.GetDataTable(GetCommand(DBC.Reporting.SPs.AccountingIncomeTotals))
dataSet.Tables.Add(dataTable)
Return dataSet
End Function
ii) Kemudian tetapkan ke sumber data pada laporan:
Private Sub AccountingIncomeTotals_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
AccountingIncomeTotalsReport1.SetDataSource(StaticDataGateway.AccountingIncomeTotals)
End Sub
Bagian di atas mungkin akan sangat menarik bagi Anda karena memungkinkan Anda menetapkan sumber data secara langsung ke laporan tanpa harus menggunakan panel UI Sumber Data pilihan kristal.
Ada satu hal lagi yang diperlukan, Anda perlu menambahkan "useLegacyV2RuntimeActivationPolicy"Ke file app.config:
http:// /www.codeproject.com/Questions/390643/Error-When-use-of-crystal-report-sap-crystal-13-an
Saya harap ini membantu, maaf itu sangat terlibat, jika Anda memiliki pertanyaan, silakan bertanya