Jenis data dalam ekspresi dalam laporan paginated (Pembuat Laporan)

Berlaku untuk: Microsoft Report Builder (SSRS) Power BI Report Builder Perancang Laporan di SQL Server Data Tools

Jenis data mewakili berbagai jenis data dalam laporan paginasi sehingga dapat disimpan dan diproses secara efisien. Jenis data umum mencakup teks (juga dikenal sebagai string), angka dengan dan tanpa tempat desimal, tanggal dan waktu, dan gambar. Nilai dalam laporan harus merupakan tipe data Report Definition Language (RDL). Anda dapat memformat nilai sesuai dengan preferensi Anda saat menampilkannya dalam laporan. Misalnya, bidang yang mewakili mata uang disimpan dalam definisi laporan sebagai angka titik mengambang, tetapi dapat ditampilkan dalam berbagai format tergantung pada properti format yang Anda pilih.

Untuk informasi selengkapnya tentang format tampilan, lihat Memformat Item Laporan (Pembuat Laporan dan SSRS).

Catatan

Anda dapat membuat dan memodifikasi file definisi laporan yang dipaginasi (.rdl) di Microsoft Report Builder, Power BI Report Builder, dan di Perancang Laporan di SQL Server Data Tools.

Tipe Data Bahasa Definisi Laporan (RDL) dan Jenis Data Common Language Runtime (CLR)

Nilai yang ditentukan dalam file RDL harus merupakan jenis data RDL. Saat laporan dikompilasi dan diproses, jenis data RDL dikonversi ke jenis data CLR. Tabel berikut menampilkan konversi, yang ditandai Default:

Jenis RDL Jenis CLR
String Default: String

Bagan, GUID, Rentang Waktu
Boolean Default: Boolean
Bilangan bulat Default: Int64

Int16, Int32, Uint16, Uint64, Byte, Sbyte
DateTime Default: DateTime

DateTimeOffset
Float Default: Ganda

Tunggal, Desimal
Biner Default: Byte[]
Varian Salah satu hal di atas kecuali Byte[]
VariantArray Array Varian
Serializable Varian atau jenis yang ditandai dengan Serializable atau yang mengimplementasikan ISerializable.

Memahami Jenis Data dan Ekspresi Penulisan

Penting untuk memahami jenis data saat Anda menulis ekspresi untuk membandingkan atau menggabungkan nilai, misalnya, saat Anda menentukan ekspresi grup atau filter, atau menghitung agregat. Perbandingan dan perhitungan hanya valid di antara item dengan jenis data yang sama. Jika tipe data tidak cocok, Anda harus mengonversi tipe data secara eksplisit dalam item laporan dengan menggunakan ekspresi.

Daftar berikut ini menjelaskan kasus ketika Anda mungkin perlu mengonversi data ke jenis data yang berbeda:

  • Membandingkan nilai parameter laporan dari satu jenis data dengan bidang himpunan data dari jenis data yang berbeda.

  • Menulis ekspresi filter yang membandingkan nilai dari berbagai jenis data.

  • Menulis ekspresi pengurutan yang menggabungkan bidang dari berbagai jenis data.

  • Menulis ekspresi grup yang menggabungkan bidang dari berbagai jenis data.

  • Mengonversi nilai yang diambil dari sumber data dari satu jenis data ke jenis data yang berbeda.

Menentukan Jenis Data Data Laporan

Untuk menentukan tipe data item laporan, Anda bisa menulis ekspresi yang mengembalikan jenis datanya. Misalnya, untuk memperlihatkan tipe data untuk bidang MyField, tambahkan ekspresi berikut ke sel tabel: =Fields!MyField.Value.GetType().ToString(). Hasilnya menampilkan jenis data CLR yang digunakan untuk mewakili MyField, misalnya, System.String atau System.DateTime.

Mengonversi Bidang Himpunan Data ke Tipe Data yang Berbeda

Anda juga dapat mengonversi bidang himpunan data sebelum menggunakannya dalam laporan. Daftar berikut ini menjelaskan cara mengonversi bidang himpunan data yang sudah ada:

  • Ubah kueri himpunan data untuk menambahkan bidang kueri baru dengan data yang dikonversi. Untuk sumber data relasional atau multidampingan, ini menggunakan sumber daya sumber data untuk melakukan konversi.

  • Buat bidang terhitung berdasarkan bidang himpunan data laporan yang sudah ada dengan menulis ekspresi yang mengonversi semua data dalam satu kolom tataan hasil ke kolom baru dengan jenis data yang berbeda. Misalnya, ekspresi berikut mengonversi bidang Tahun dari nilai bilangan bulat menjadi nilai string: =CStr(Fields!Year.Value). Untuk informasi selengkapnya, lihat Menambahkan, Mengedit, Merefresh Bidang di Panel Data Laporan (Pembuat Laporan dan SSRS).

  • Periksa apakah ekstensi pemrosesan data yang Anda gunakan menyertakan metadata untuk mengambil data yang telah diformat sebelumnya. Misalnya, kueri MDX SQL Server Analysis Services menyertakan properti FORMATTED_VALUE diperluas untuk nilai kubus yang telah diformat saat memproses kubus. Untuk informasi selengkapnya, lihat Properti Bidang yang Diperluas untuk Database Analysis Services (SSRS).

Memahami Jenis Data Parameter

Parameter laporan harus salah satu dari lima jenis data: Boolean, DateTime, Integer, Float, atau Text (juga dikenal sebagai String). Saat kueri himpunan data menyertakan parameter kueri, parameter laporan secara otomatis dibuat dan ditautkan ke parameter kueri. Jenis data default untuk parameter laporan adalah String. Untuk mengubah jenis data default parameter laporan, pilih nilai yang benar dari daftar drop-down Jenis data di halaman Umum kotak dialog Properti Parameter Laporan.

Catatan

Parameter laporan yang merupakan jenis data DateTime tidak mendukung milidetik. Meskipun Anda dapat membuat parameter berdasarkan nilai yang menyertakan milidetik, Anda tidak dapat memilih nilai dari daftar drop-down nilai yang tersedia yang menyertakan nilai Tanggal atau Waktu yang menyertakan milidetik.

Menulis Ekspresi yang Mengonversi Jenis Data atau Mengekstrak Bagian Data

Saat Anda menggabungkan bidang teks dan himpunan data menggunakan operator penggabungan (&), runtime bahasa umum (CLR) umumnya menyediakan format default. Saat Anda perlu mengonversi bidang himpunan data atau parameter secara eksplisit ke jenis data tertentu, Anda harus menggunakan metode CLR atau fungsi pustaka runtime Visual Basic untuk mengonversi data.

Tabel berikut ini memperlihatkan contoh konversi tipe data.

Jenis konversi Contoh
DateTime ke String =CStr(Fields!Date.Value)
String ke DateTime =DateTime.Parse(Fields!DateTimeinStringFormat.Value)
String ke DateTimeOffset =DateTimeOffset.Parse(Fields!DateTimeOffsetinStringFormat.Value)
Mengekstrak Tahun =Year(Fields!TimeinStringFormat.Value)

-- or --

=Year(Fields!TimeinDateTimeFormat.Value)
Boolean ke Bilangan Bulat =CInt(Parameters!BooleanField.Value)

-1 benar dan 0 adalah False.
Boolean ke Bilangan Bulat =System.Convert.ToInt32(Fields!BooleanFormat.Value)

1 adalah True dan 0 adalah False.
Hanya bagian DateTime dari nilai DateTimeOffset =Fields!MyDatetimeOffset.Value.DateTime
Hanya bagian Offset dari nilai DateTimeOffset =Fields!MyDatetimeOffset.Value.Offset

Anda juga dapat menggunakan fungsi Format untuk mengontrol format tampilan untuk nilai. Untuk informasi selengkapnya, lihat Fungsi (Visual Basic).

Contoh Tingkat Lanjut

Saat Anda menyambungkan ke sumber data dengan penyedia data yang tidak menyediakan dukungan konversi untuk semua jenis data pada sumber data, jenis data default untuk jenis sumber data yang tidak didukung adalah String. Contoh berikut memberikan solusi untuk jenis data tertentu yang dikembalikan sebagai string.

Menggabungkan String dan Jenis Data DateTimeOffset CLR

Untuk sebagian besar jenis data, CLR menyediakan konversi default sehingga Anda dapat menggabungkan nilai yang merupakan jenis data yang berbeda menjadi satu string dengan menggunakan operator &. Misalnya, ekspresi berikut menggabungkan teks "Tanggal dan waktu adalah: " dengan bidang himpunan data StartDate, yang merupakan DateTime nilai: ="The date and time are: " & Fields!StartDate.Value.

Untuk beberapa jenis data, Anda mungkin perlu menyertakan fungsi ToString. Misalnya, ekspresi berikut menunjukkan contoh yang sama menggunakan jenis DateTimeOffsetdata CLR , yang mencakup tanggal, waktu, dan offset zona waktu relatif terhadap zona waktu UTC: ="The time is: " & Fields!StartDate.Value.ToString().

Mengonversi Tipe Data String menjadi Tipe Data DateTime CLR

Jika ekstensi pemrosesan data tidak mendukung semua jenis data yang ditentukan pada sumber data, data dapat diambil sebagai teks. Misalnya, nilai jenis data datetimeoffset(7) dapat diambil sebagai jenis data String. Di Perth, Australia, nilai string untuk 1 Juli 2008, pada 6:05:07.9999999 A.M. akan menyerupai:

2008-07-01 06:05:07.9999999 +08:00

Contoh ini menunjukkan tanggal (1 Juli 2008), diikuti oleh waktu ke presisi 7 digit (6:05:07.9999999 A.M.), diikuti oleh offset zona waktu UTC dalam jam dan menit (ditambah 8 jam, 0 menit). Untuk contoh berikut, nilai ini telah ditempatkan di bidang String yang disebut MyDateTime.Value.

Anda dapat menggunakan salah satu strategi berikut untuk mengonversi data ini menjadi satu atau beberapa nilai CLR:

  • Dalam kotak teks, gunakan ekspresi untuk mengekstrak bagian string. Misalnya:

    • Ekspresi berikut mengekstrak hanya bagian jam dari offset zona waktu UTC dan mengonversinya menjadi menit: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60

      Hasilnya adalah 480.

    • Ekspresi berikut mengonversi string menjadi nilai tanggal dan waktu: =DateTime.Parse(Fields!MyDateTime.Value)

      MyDateTime.Value Jika string memiliki offset UTC, DateTime.Parse fungsi pertama-tama menyesuaikan offset UTC (7 A.M. - [+08:00] ke waktu UTC 11 P.M. malam sebelumnya). Fungsi kemudian DateTime.Parse menerapkan offset UTC server laporan lokal dan, jika perlu, menyesuaikan waktu lagi untuk Daylight Saving Time. Misalnya, di Redmond, Washington, offset waktu lokal yang disesuaikan untuk Daylight Saving Time adalah [-07:00], atau 7 jam lebih awal dari pukul 23.00. Hasilnya adalah nilai DateTime berikut: 2007-07-06 04:07:07 PM (6 Juli 2007 pukul 4:07 P.M).

Untuk informasi selengkapnya tentang mengonversi string ke jenis data DateTime , lihat Mengurai String Tanggal dan Waktu, Memformat Tanggal dan Waktu untuk Budaya Tertentu, dan Memilih Antara DateTime, DateTimeOffset, dan TimeZoneInfo.

  • Tambahkan bidang terhitung baru ke himpunan data laporan yang menggunakan ekspresi untuk mengekstrak bagian string. Untuk informasi selengkapnya, lihat Menambahkan, Mengedit, Merefresh Bidang di Panel Data Laporan (Pembuat Laporan dan SSRS).

  • Ubah kueri himpunan data laporan untuk menggunakan fungsi Transact-SQL untuk mengekstrak nilai tanggal dan waktu secara independen untuk membuat kolom terpisah. Contoh berikut menunjukkan cara menggunakan fungsi DatePart untuk menambahkan kolom untuk tahun dan kolom untuk zona waktu UTC yang dikonversi menjadi menit:

    SELECT

    MyDateTime,

    DATEPART(year, MyDateTime) AS Year,

    DATEPART(tz, MyDateTime) AS OffsetinMinutes

    FROM MyDates

    Kumpulan hasil memiliki tiga kolom. Kolom pertama adalah tanggal dan waktu, kolom kedua adalah tahun, dan kolom ketiga adalah offset UTC dalam hitungan menit. Baris berikut ini memperlihatkan contoh data:

    2008-07-01 06:05:07 2008 480

Untuk informasi selengkapnya tentang jenis data database SQL Server, lihat Jenis Data (Transact-SQL), dan Jenis dan Fungsi Data Tanggal dan Waktu (Transact-SQL).

Untuk informasi selengkapnya tentang jenis data SQL Server Analysis Services, lihat Jenis Data di Analysis Services.

Lihat Juga

Memformat Item Laporan (Pembuat Laporan dan SSRS)