Masalah ini terjadi pada Microsoft SQL Server 2012 Reporting Services.
Gejala
Pertimbangkan skenario berikut:
- Anda membuat aplikasi Formulir Windows atau aplikasi Windows Presentation Foundation (WPF) yang didasarkan pada Microsoft .NET Framework 4.0.
- Di aplikasi Formulir Windows atau WPF, Anda menggunakan kontrol Microsoft Report Viewer 2010 untuk menampilkan laporan Microsoft SQL Server 2012 Reporting Services (SSRS 2012) yang berjalan dalam mode jarak jauh.
- Laporan menyertakan parameter tipe DateTime yang memiliki nilai default.
- Anda menjalankan aplikasi pada sistem operasi yang pengaturan regional diatur ke bahasa Italia. Selain itu, format Waktu Panjang diatur ke "HH:mm:ss".
Dalam skenario ini, Anda mungkin mengalami salah satu masalah berikut:
- Nilai default parameter tipe DateTime tidak ditampilkan di area perintah parameter.
- Jika Anda menetapkan nilai ke parameter tipe DateTime dan memperbarui laporan, nilai tersebut akan hilang setelah laporan dirender dan tidak ditampilkan.
Penyebab
Masalah ini terjadi karena perubahan dalam .NET Framework 4.0 yang mencegah aplikasi dan SSRS 2012 menggunakan informasi yang benar berdasarkan pengaturan regional sistem operasi. Aplikasi yang didasarkan pada .NET Framework 4.0 menggunakan pengaturan regional yang dihasilkan oleh Windows. Namun, SSRS 2012 dibuat di atas .NET Framework 3.5 Services Pack 1 (SP1). Oleh karena itu, SSRS 2012 menggunakan pengaturan regional yang disematkan dalam .NET Framework 3.5 SP1.
Saat server SSRS 2012 menjalankan laporan menggunakan simbol "." sebagai pemisah waktu, parameter tipe DateTime dikirim kembali ke klien sebagai string. Kontrol Penampil Laporan memanggil metode DateTimeOffset.TryParse untuk memvalidasi string dengan menggunakan simbol ":" sebagai pemisah waktu. Oleh karena itu, string divalidasi sebagai false dan tidak ditampilkan di area perintah parameter.
Catatan Masalah ini hanya terjadi jika format Waktu Lama diatur ke "HH:mm:ss", pengaturan default untuk pengaturan regional Italia. Pengaturan default untuk pengaturan regional Italia tergantung pada sistem operasi Anda. Selain itu, Anda dapat mengonfigurasi pengaturan default sistem operasi dengan mengubah format Waktu Lama.
Resolusi
Informasi pembaruan kumulatif
Pembaruan kumulatif 2 untuk SQL Server 2012 Paket Layanan 1 (SP1)
Perbaikan untuk masalah ini pertama kali dirilis di Pembaruan Kumulatif 2. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2012 Paket Layanan 1, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2790947 Paket pembaruan kumulatif 2 untuk SQL Server Paket Layanan 2012 1Note Karena build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server Paket Layanan 1 sebelumnya. Kami menyarankan Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2772858 Build SQL Server 2012 yang dirilis setelah SQL Server 2012 Paket Layanan 1 dirilis
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Solusi
Untuk mengatasi masalah tersebut, gunakan salah satu solusi berikut:
- Atur pengaturan regional pada aplikasi dan sistem operasi agar sesuai dengan pengaturan regional yang ada di klien.
- Buat bidang input string untuk diisi pengguna dengan teks. Kemudian, dalam laporan, konversikan string menjadi tanggal.
- Buat parameter tersembunyi atau tanpa perintah yang diisi dari bidang input string saat Anda menjalankan laporan.
- Buat parameter tipe DateTime yang tidak terlihat dan kontrol DateTimePicker di luar kontrol Penampil Laporan. Klik Lihat Laporan, lalu masukkan nilai string ke dalam parameter tipe DateTime di penanganan aktivitas SubmittingParameterValues.
Informasi Selengkapnya
Paket Redistributable Microsoft Report Viewer 2010 SP1 tersedia untuk diunduh dari situs web Pusat Unduhan Microsoft berikut:
Paket yang Dapat Didistribusikan Microsoft Report Viewer 2010 SP1 Untuk mengetahui selengkapnya tentang metode DateTimeOffset.TryParseExact dan Metode DateTimeOffset.TryParse, kunjungi situs web MSDN berikut:
Metode DateTimeOffset.TryParseExact (string, string, IFormatProvider, DateTimeStyles, DateTimeOffset%)
Metode DateTimeOffset.TryParse (string, dateTimeOffset%)