Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Peta ulang sumber data Crystal Report

Anda akan menemukan selanjutnya prosedur yang saya gunakan (saya menyederhanakannya dengan cepat, menekan objek kita sendiri dan variabel global). Prosedur ini memungkinkan untuk mengarahkan laporan dari koneksi asli yang digunakan pada waktu pengembangan ke server SQL aktif. Itu ditulis dalam VB dan menggunakan 2 objek utama:

  1. Objek laporan asli dibuka melalui instance laporan kristal
  2. Koneksi ADODB menjadi koneksi aktif (disebut P_currentConnection) ke server SQL saat ini

Fungsi ini (bisa juga sub) dipanggil sebelum melihat/mencetak objek laporan di aplikasi. Ini dapat digunakan saat mendistribusikan laporan di antara basis data yang direplikasi di mana pengguna, bergantung pada lokasinya, terhubung ke server/basis data yang berbeda.

Public Function connectReportToDatabase( _
    P_report As CRAXDRT.Report)

Dim table As CRAXDRT.DatabaseTable, _

For Each table In P_report.Database.tables

    If table.DllName <> "crdb_ado.dll" Then
        table.DllName = "crdb_ado.dll"
    End If

    table.ConnectionProperties.DeleteAll

    table.ConnectionProperties.Add "Provider", P_currentConnection.Provider
    table.ConnectionProperties.Add "Data source", P_currentConnection.Properties("Data source").Value
    table.ConnectionProperties.Add "Database", P_currentConnection.DefaultDatabase
    table.ConnectionProperties.Add "Integrated security",  P_currentConnection.Properties("Integrated security").Value
    table.ConnectionProperties.Add "Persist Security Info", P_currentConnection.Properties("Persist Security Info").Value
    table.ConnectionProperties.Add "Initial Catalog", P_currentConnection.Properties("Initial Catalog").Value

    table.SetTableLocation table.location, "", P_currentConnection.ConnectionString

    table.TestConnectivity

Next table

Itu bisa dipanggil dengan prosedur seperti:

Dim crystal As CRAXDRT.Application, _
    m_report as CRAXDRT.report        

Set crystal = New CRAXDRT.Application
Set m_rapport = crystal.OpenReport(nameOfTheReport & ".rpt")

connectreportToDatabase(m_report)

Jika laporan Anda menyertakan sublaporan, Anda mungkin juga harus mengarahkannya ke koneksi aktif. Dalam hal ini, Anda harus menelusuri semua objek dalam laporan Anda, memeriksa yang merupakan jenis laporan dan mengarahkannya ke koneksi baru. Saya yakin Anda akan senang menambahkan baris tambahan yang sesuai ke prosedur asli ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memanggil API dari prosedur tersimpan SQL Server

  2. Cara memilih tanggal tanpa waktu di SQL

  3. Bagaimana cara memasukkan karakter Arab ke dalam database SQL?

  4. Kolom yang dihitung di EF Code First

  5. SQL Server 2008 melewatkan tipe data sebagai parameter untuk fungsi