Contoh ekspresi dalam laporan yang dipaginasi (Pembuat Laporan)

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

Ekspresi sering digunakan dalam laporan paginasi untuk mengontrol konten dan melaporkan tampilan. Ekspresi ditulis dalam Microsoft Visual Basic, dan dapat menggunakan fungsi bawaan, kode kustom, variabel laporan dan grup, dan variabel yang ditentukan pengguna. Ekspresi dimulai dengan tanda sama dengan (=). Untuk informasi selengkapnya tentang editor ekspresi dan jenis referensi yang bisa Anda sertakan, lihat Penggunaan Ekspresi dalam Laporan (Penyusun Laporan dan SSRS), dan Menambahkan Ekspresi (Penyusun Laporan dan SSRS).

Penting

Saat Sandboxing RDL diaktifkan, hanya jenis dan anggota tertentu yang dapat digunakan dalam teks ekspresi pada waktu penerbitan laporan. Untuk informasi selengkapnya, lihat Mengaktifkan dan Menonaktifkan Sandboxing RDL.

Topik ini menyediakan contoh ekspresi yang dapat digunakan untuk tugas umum dalam laporan.

  • Fungsi Visual Basic Contoh untuk fungsi tanggal, string, konversi, dan kondisional Visual Basic.

  • Fungsi Laporan Contoh untuk fungsi agregat dan laporan bawaan lainnya.

  • Tampilan Data Laporan Contoh untuk mengubah tampilan laporan.

  • Properti Contoh untuk mengatur properti item laporan untuk mengontrol format atau visibilitas.

  • Parameter Contoh untuk menggunakan parameter dalam ekspresi.

  • Kode Kustom Contoh kode kustom yang disematkan.

Untuk contoh ekspresi untuk penggunaan tertentu, lihat topik berikut:

Untuk informasi selengkapnya tentang ekspresi sederhana dan kompleks, di mana Anda bisa menggunakan ekspresi, dan jenis referensi yang bisa Anda sertakan dalam ekspresi, lihat topik di bawah Ekspresi (Pembangun Laporan dan SSRS). Untuk informasi selengkapnya tentang konteks di mana ekspresi dievaluasi untuk menghitung agregat, lihat Cakupan Ekspresi untuk Total, Agregat, dan Koleksi Bawaan (Pembuat Laporan dan SSRS).

Untuk mempelajari cara menulis ekspresi yang menggunakan banyak fungsi dan operator juga digunakan oleh contoh ekspresi dalam topik ini, tetapi dalam konteks menulis laporan, lihat Tutorial: Memperkenalkan Ekspresi.

Fungsi

Berbagai ekspresi dalam laporan mengandung fungsi. Anda dapat memformat data, menerapkan logika, dan mengakses metadata laporan menggunakan fungsi-fungsi ini. Anda dapat menulis ekspresi yang menggunakan fungsi dari pustaka run-time Microsoft Visual Basic, dan dari namespace Convert dan Math. Anda dapat menambahkan referensi ke fungsi dari rakitan atau kode kustom lainnya. Anda juga dapat menggunakan kelas dari Microsoft .NET Framework, termasuk System.Text.RegularExpressions.

Fungsi Visual Basic

Anda dapat menggunakan fungsi Visual Basic untuk memanipulasi data yang ditampilkan dalam kotak teks atau yang digunakan untuk parameter, properti, atau area laporan lainnya. Bagian ini menyediakan contoh yang menunjukkan beberapa fungsi ini. Untuk informasi selengkapnya, lihat Anggota Pustaka Runtime Visual Basic di MSDN.

.NET Framework menyediakan banyak opsi format kustom, misalnya, untuk format tanggal tertentu. Untuk informasi selengkapnya, lihat Jenis Pemformatan di MSDN.

Fungsi matematika

  • Fungsi Round berguna untuk membulatkan angka ke bilangan bulat terdekat. Ekspresi berikut membulatkan 1,3 menjadi 1:

    = Round(1.3)  
    

    Anda juga dapat menulis ekspresi untuk membulatkan nilai ke kelipatan yang Anda tentukan, mirip dengan fungsi MRound di Excel. Kalikan nilai dengan faktor yang membuat bilangan bulat, bulatkan angka tersebut, kemudian bagi dengan faktor yang sama. Misalnya, untuk membulatkan 1,3 ke kelipatan terdekat dari .2 (1.4), gunakan ekspresi berikut:

    = Round(1.3*5)/5  
    

Fungsi Tanggal

  • Fungsi Today menyediakan tanggal saat ini. Ekspresi ini dapat digunakan dalam kotak teks untuk menampilkan tanggal pada laporan, atau dalam parameter untuk memfilter data berdasarkan tanggal saat ini.

    =Today()  
    
  • Gunakan fungsi DateInterval untuk menarik bagian tertentu dari tanggal. Berikut beberapa parameter DateInterval yang valid:

    • DateInterval.Second
    • DateInterval.Minute
    • DateInterval.Hour
    • DateInterval.Weekday
    • DateInterval.Day
    • DateInterval.DayOfYear
    • DateInterval.WeekOfYear
    • DateInterval.Month
    • DateInterval.Quarter
    • DateInterval.Year

    Misalnya, ekspresi ini akan menampilkan jumlah minggu di tahun ini untuk tanggal hari ini:

    =DatePart(DateInterval.WeekOfYear, today()) 
    
  • Fungsi DateAdd berguna untuk menyediakan rentang tanggal berdasarkan parameter tunggal. Ekspresi berikut ini menyediakan tanggal yang berjarak enam bulan setelah tanggal dari parameter bernama StartDate.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)  
    
  • Fungsi Year menampilkan tahun untuk tanggal tertentu. Anda dapat menggunakan ini untuk mengelompokkan tanggal bersama-sama atau menampilkan tahun sebagai label untuk sekumpulan tanggal. Ekspresi ini menyediakan tahun untuk tanggal pemesanan grup penjualan tertentu. Fungsi Month dan fungsi lainnya juga dapat digunakan untuk memanipulasi tanggal. Untuk informasi selengkapnya, lihat dokumentasi Visual Basic.

    =Year(Fields!OrderDate.Value)  
    
  • Anda dapat menggabungkan fungsi dalam ekspresi untuk mengkustomisasi format. Ekspresi berikut mengubah format tanggal dalam format angka bulan-hari-tahun menjadi bulan-minggu-minggu. Misalnya, 12/23/2009 menjadi Desember Minggu Ke-3:

    =Format(Fields!MyDate.Value, "MMMM") & " Week " &   
    (Int(DateDiff("d", DateSerial(Year(Fields!MyDate.Value),   
    Month(Fields!MyDate.Value),1), Fields!FullDateAlternateKey.Value)/7)+1).ToString  
    

    Saat digunakan sebagai bidang terhitung dalam himpunan data, Anda dapat menggunakan ekspresi ini pada bagan untuk mengagregasi nilai menurut minggu dalam setiap bulan.

  • Ekspresi berikut memformat nilai SellStartDate sebagai MMM-YY. Bidang SellStartDate adalah jenis data tanggalwaktu.

    =FORMAT(Fields!SellStartDate.Value, "MMM-yy")  
    
  • Ekspresi berikut memformat nilai SellStartDate sebagai dd/MM/yyyy. Bidang SellStartDate adalah jenis data tanggalwaktu.

    =FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")  
    
  • Fungsi CDate mengonversi nilai menjadi tanggal. Fungsi Now mengembalikan nilai tanggal yang berisi tanggal dan waktu saat ini menurut sistem Anda. DateDiff mengembalikan nilai Panjang yang menentukan jumlah interval waktu di antara dua nilai Tanggal.

    Contoh berikut menampilkan tanggal mulai tahun ini

    =DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))  
    
  • Contoh berikut menampilkan tanggal mulai untuk bulan sebelumnya berdasarkan bulan ini.

    =DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))  
    
  • Ekspresi berikut menghasilkan tahun interval antara SellStartDate dan LastReceiptDate. Bidang ini berada dalam dua himpunan data yang berbeda, DataSet1 dan DataSet2. Fungsi Pertama (Report Builder dan SSRS), yang merupakan fungsi agregat, mengembalikan nilai pertama SellStartDate di DataSet1 dan nilai pertama LastReceiptDate di DataSet2.

    =DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))  
    
  • Fungsi DatePart mengembalikan nilai Bilangan Bulat yang berisi komponen yang ditentukan dari nilai Tanggal tertentu. Ekspresi berikut mengembalikan tahun untuk nilai pertama SellStartDate di DataSet1. Cakupan himpunan data ditentukan karena ada beberapa himpunan data dalam laporan.

    =Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))  
    
    
  • Fungsi DateSerial mengembalikan nilai Tanggal yang mewakili tahun, bulan, dan hari tertentu, dengan informasi waktu yang diatur hingga tengah malam. Contoh berikut menampilkan tanggal berakhir untuk bulan sebelumnya, berdasarkan bulan saat ini.

    =DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)  
    
  • Ekspresi berikut menampilkan berbagai tanggal berdasarkan nilai parameter tanggal yang dipilih oleh pengguna.

Deskripsi Contoh Contoh
Kemarin =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1)
Dua Hari yang Lalu =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2)
Satu Bulan yang Lalu =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value))
Dua Bulan yang Lalu =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value))
Satu Tahun yang Lalu =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))
Dua Tahun yang Lalu =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))

Fungsi String

  • Gabungkan lebih dari satu bidang menggunakan operator perangkaian dan konstanta Visual Basic. Ekspresi berikut mengembalikan dua bidang, masing-masing pada baris terpisah dalam kotak teks yang sama:

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value   
    
  • Format tanggal dan angka dalam string dengan fungsi Format. Ekspresi berikut menampilkan nilai parameter StartDate dan EndDate dalam format tanggal panjang:

    =Format(Parameters!StartDate.Value, "D") & " through " &  Format(Parameters!EndDate.Value, "D")    
    

    Jika kotak teks hanya berisi tanggal atau angka, Anda harus menggunakan properti Format kotak teks untuk menerapkan pemformatan alih-alih fungsi Format dalam kotak teks.

  • Fungsi Right, Len, dan InStr berguna untuk mengembalikan substring, misalnya, memangkas DOMAIN\username hanya untuk nama pengguna. Ekspresi berikut mengembalikan bagian string di sebelah kanan karakter garis miring terbalik (\) dari parameter bernama Pengguna:

    =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))  
    

    Ekspresi berikut menghasilkan nilai yang sama dengan yang sebelumnya, menggunakan anggota kelas String .NET Framework alih-alih fungsi Visual Basic:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)  
    
  • Menampilkan nilai yang dipilih dari parameter multinilai. Contoh berikut menggunakan fungsi Join untuk merangkai nilai yang dipilih dari parameter MySelection ke dalam string tunggal yang dapat diatur sebagai ekspresi untuk nilai kotak teks dalam item laporan:

    = Join(Parameters!MySelection.Value)  
    

    Contoh berikut melakukan hal yang sama seperti contoh di atas, sekaligus menampilkan string teks sebelum daftar nilai yang dipilih.

    ="Report for " & JOIN(Parameters!MySelection.Value, " & ")  
    
    
  • Fungsi Regex dari .NET Framework System.Text.RegularExpressions berguna untuk mengubah format string yang ada, misalnya, memformat nomor telepon. Ekspresi berikut menggunakan fungsi Replace untuk mengubah format nomor telepon sepuluh digit dalam bidang dari "nnn-nnn-nnnn" menjadi "(nnn) nnn-nnnn":

    =System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")  
    

    Catatan

    Verifikasi bahwa nilai untuk Field!Phone.Value tidak memiliki spasi tambahan dan berjenis String.

Lookup

  • Dengan menentukan bidang kunci, Anda dapat menggunakan fungsi Lookup untuk mengambil nilai dari himpunan data untuk hubungan satu-ke-satu, misalnya, pasangan kunci-nilai. Ekspresi berikut menampilkan nama produk dari himpunan data ("Product"), mengingat pengidentifikasi produk untuk dicocokkan:

    =Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields!ProductName.Value, "Product")  
    

LookupSet

  • Dengan menentukan bidang kunci, Anda dapat menggunakan fungsi LookupSet untuk mengambil sekumpulan nilai dari himpunan data untuk hubungan satu-ke-banyak. Misalnya, seseorang dapat memiliki beberapa nomor telepon. Dalam contoh berikut, asumsikan himpunan data PhoneList berisi pengidentifikasi orang dan nomor telepon di setiap baris. LookupSet mengembalikan array nilai. Ekspresi berikut menggabungkan nilai yang dikembalikan ke dalam string tunggal dan menampilkan daftar nomor telepon untuk orang yang ditentukan oleh ContactID:

    =Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")  
    

Fungsi Konversi

Anda dapat menggunakan fungsi Visual Basic untuk mengonversi bidang dari satu jenis data ke jenis data yang berbeda. Fungsi konversi dapat digunakan untuk mengonversi jenis data default untuk suatu bidang ke jenis data yang diperlukan untuk perhitungan atau untuk menggabungkan teks.

  • Ekspresi berikut mengonversi konstanta 500 menjadi jenis Desimal untuk membandingkannya dengan jenis data uang Transact-SQL di bidang Nilai untuk ekspresi filter.

    =CDec(500)  
    
  • Ekspresi berikut menampilkan jumlah nilai yang dipilih untuk parameter multinilai MySelection.

    =CStr(Parameters!MySelection.Count)  
    

Fungsi Keputusan

  • Fungsi Iif mengembalikan salah satu dari dua nilai tergantung pada apakah ekspresi tersebut benar atau tidak. Ekspresi berikut menggunakan fungsi Iif untuk mengembalikan nilai Boolean True jika nilai LineTotal melebihi 100. Jika tidak, akan mengembalikan False:

    =IIF(Fields!LineTotal.Value > 100, True, False)  
    
  • Gunakan beberapa fungsi IIF (juga dikenal sebagai "IIF berlapis") untuk mengembalikan salah satu dari tiga nilai tergantung pada nilai PctComplete. Ekspresi berikut dapat ditempatkan dalam warna isian kotak teks untuk mengubah warna latar belakang tergantung pada nilai dalam kotak teks.

    =IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))  
    

    Nilai lebih besar dari atau sama dengan 10 menampilkan dengan latar belakang hijau, antara 1 dan 9 menampilkan dengan latar belakang biru, dan kurang dari 1 menampilkan dengan latar belakang merah.

  • Cara berbeda untuk mendapatkan fungsionalitas yang sama menggunakan fungsi Switch. Fungsi Switch berguna ketika Anda memiliki tiga kondisi atau lebih untuk diuji. Fungsi Switch mengembalikan nilai yang terkait dengan ekspresi pertama dalam seri yang dievaluasi ke true:

    =Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")  
    

    Nilai lebih besar dari atau sama dengan 10 menampilkan dengan latar belakang hijau, antara 1 dan 9 menampilkan dengan latar belakang biru, sama dengan 1 menampilkan dengan latar belakang kuning, dan 0 atau kurang menampilkan dengan latar belakang merah.

  • Uji nilai bidang dan kembalikan ImportantDate "Merah" jika berusia lebih dari seminggu, dan "Biru" jika tidak. Ekspresi ini dapat digunakan untuk mengontrol properti Warna kotak teks dalam item laporan:

    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")  
    
  • Uji nilai PhoneNumber bidang dan kembalikan "Tidak Ada Nilai" jika null (Tidak ada di Visual Basic); jika tidak, kembalikan nilai nomor telepon. Ekspresi ini dapat digunakan untuk mengontrol nilai kotak teks dalam item laporan.

    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)  
    
  • Uji nilai bidang Department dan mengembalikan nama sublaporan atau null (Tidak ada dalam Visual Basic). Ekspresi ini dapat digunakan untuk sublaporan drillthrough kondisional.

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)  
    
  • Uji apakah nilai bidang null. Ekspresi ini dapat digunakan untuk mengontrol properti Tersembunyi dari item laporan gambar. Dalam contoh berikut, gambar yang ditentukan oleh bidang [LargePhoto] ditampilkan hanya jika nilai bidang tidak null.

    =IIF(IsNothing(Fields!LargePhoto.Value),True,False)  
    
  • Fungsi MonthName mengembalikan nilai string yang berisi nama bulan yang ditentukan. Contoh berikut menampilkan NA di bidang Bulan saat bidang berisi nilai 0.

    IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))  
    
    

Fungsi Laporan

Dalam ekspresi, Anda dapat menambahkan referensi ke fungsi laporan tambahan yang memanipulasi data dalam laporan. Bagian ini menyediakan contoh untuk dua fungsi ini. Untuk informasi selengkapnya tentang fungsi dan contoh laporan, lihat Referensi Fungsi Agregat (Pembuat Laporan dan SSRS).

Jumlah total

  • Fungsi Sum dapat menjumlahkan nilai dalam grup atau wilayah data. Fungsi ini dapat berguna di header atau footer grup. Ekspresi berikut menampilkan jumlah data dalam grup Pesanan atau wilayah data:

    =Sum(Fields!LineTotal.Value, "Order")  
    
  • Anda juga dapat menggunakan fungsi Sum untuk penghitungan agregat bersyarat. Misalnya, jika himpunan data memiliki bidang yang diberi nama Status dengan kemungkinan nilai Tidak Dimulai, Dimulai, Selesai, ekspresi berikut, saat ditempatkan di header grup, menghitung jumlah agregat hanya untuk nilai Selesai:

    =Sum(IIF(Fields!State.Value = "Finished", 1, 0))  
    

RowNumber

  • Fungsi RowNumber, saat digunakan dalam kotak teks dalam wilayah data, menampilkan nomor baris untuk setiap instans kotak teks tempat ekspresi muncul. Fungsi ini dapat berguna untuk menomori baris dalam tabel. Fungsi ini juga dapat berguna untuk tugas yang lebih kompleks, seperti menyediakan pemisah halaman berdasarkan jumlah baris. Untuk informasi selengkapnya, lihat Pemisah Halaman dalam topik ini.

    Cakupan yang Anda tentukan untuk kontrol RowNumber saat penomoran ulang dimulai. Kata kunci Tidak ada menunjukkan bahwa fungsi akan mulai dihitung pada baris pertama di wilayah data terluar. Untuk mulai menghitung dalam wilayah data berlapis, gunakan nama wilayah data. Untuk mulai menghitung dalam grup, gunakan nama grup.

    =RowNumber(Nothing)  
    

Tampilan Data Laporan

Anda dapat menggunakan ekspresi untuk memanipulasi bagaimana data muncul pada laporan. Misalnya, Anda dapat menampilkan nilai dua bidang dalam satu kotak teks, menampilkan informasi tentang laporan, atau memengaruhi bagaimana pemisah halaman disisipkan dalam laporan.

Header dan Catatan Kaki Halaman

Saat mendesain laporan, Anda mungkin ingin menampilkan nama laporan dan nomor halaman di footer laporan. Untuk melakukan ini, Anda dapat menggunakan ekspresi berikut:

  • Ekspresi berikut ini menyediakan nama laporan dan waktu laporan dijalankan. Ini dapat ditempatkan dalam kotak teks di footer laporan atau di badan laporan. Waktu diformat dengan string pemformatan .NET Framework untuk tanggal pendek:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")  
    
  • Ekspresi berikut, ditempatkan dalam kotak teks di footer laporan, menyediakan nomor halaman dan halaman total dalam laporan:

    =Globals.PageNumber & " of " & Globals.TotalPages  
    

Contoh berikut menjelaskan cara menampilkan nilai pertama dan terakhir dari halaman di header halaman, mirip dengan apa yang mungkin Anda temukan di daftar direktori. Contoh mengasumsikan wilayah data yang berisi kotak teks bernama LastName.

  • Ekspresi berikut, ditempatkan dalam kotak teks di sisi kiri header halaman, menyediakan nilai pertama kotak teks LastName di halaman:

    =First(ReportItems("LastName").Value)  
    
  • Ekspresi berikut, ditempatkan dalam kotak teks di sisi kanan header halaman, menyediakan nilai terakhir kotak teks LastName di halaman:

    =Last(ReportItems("LastName").Value)  
    

Contoh berikut menjelaskan cara menampilkan total halaman. Contoh mengasumsikan wilayah data yang berisi kotak teks bernama Cost.

  • Ekspresi berikut, ditempatkan di header atau footer halaman, menyediakan jumlah nilai dalam kotak teks Cost untuk halaman:

    =Sum(ReportItems("Cost").Value)  
    

Catatan

Anda hanya dapat merujuk ke satu item laporan per ekspresi di header atau footer halaman. Selain itu, Anda dapat merujuk ke nama kotak teks, tetapi bukan ekspresi data aktual dalam kotak teks, pada ekspresi header dan footer halaman.

Pemisah Halaman

Dalam beberapa laporan, Anda mungkin ingin menempatkan pemisah halaman di akhir jumlah baris tertentu alih-alih, atau selain, pada grup atau item laporan. Untuk melakukan ini, buat grup yang berisi grup atau rekaman detail yang Anda inginkan, tambahkan pemisah halaman ke grup, kemudian tambahkan ekspresi grup untuk dikelompokkan menurut jumlah baris tertentu.

  • Ekspresi berikut, saat ditempatkan dalam ekspresi grup, menetapkan angka untuk setiap set 25 baris. Saat pemisah halaman ditentukan untuk grup, ekspresi ini menghasilkan pemisah halaman setiap 25 baris.

    =Ceiling(RowNumber(Nothing)/25)  
    

    Untuk memungkinkan pengguna mengatur nilai untuk jumlah baris per halaman, buat parameter bernama RowsPerPage dan dasarkan ekspresi grup pada parameter, seperti yang ditunjukkan dalam ekspresi berikut:

    =Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)  
    

    Untuk informasi selengkapnya tentang pengaturan hentian halaman untuk grup, lihat Menambahkan Pemisah Halaman (Pembuat Laporan dan SSRS).

Properti

Ekspresi tidak hanya digunakan untuk menampilkan data dalam kotak teks. Mereka juga dapat digunakan untuk mengubah cara properti diterapkan untuk melaporkan item. Anda dapat mengubah informasi gaya untuk item laporan, atau mengubah visibilitasnya.

Pemformatan

  • Ekspresi berikut, saat digunakan dalam properti Warna kotak teks, mengubah warna teks tergantung pada nilai bidang Profit:

    =Iif(Fields!Profit.Value < 0, "Red", "Black")  
    

    Anda juga dapat menggunakan variabel objek Me Visual Basic. Variabel ini adalah cara lain untuk merujuk ke nilai kotak teks.

    =Iif(Me.Value < 0, "Red", "Black")

  • Ekspresi berikut, saat digunakan dalam properti BackgroundColor dari item laporan di wilayah data, mengubah warna latar belakang setiap baris antara hijau pucat dan putih:

    =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")  
    

    Jika menggunakan ekspresi untuk cakupan tertentu, Anda mungkin harus menunjukkan himpunan data untuk fungsi agregat:

    =Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")  
    

Catatan

Warna yang tersedia berasal dari enumerasi .NET Framework KnownColor.

Warna Bagan

Untuk menentukan warna untuk bagan Bentuk, Anda dapat menggunakan kode kustom untuk mengontrol urutan warna yang dipetakan ke nilai titik data. Ini membantu Anda menggunakan warna yang konsisten untuk beberapa bagan yang memiliki grup kategori yang sama. Untuk informasi selengkapnya, lihat Menentukan Warna Konsisten di Beberapa Bagan Bentuk (Pembuat Laporan dan SSRS).

Visibilitas

Anda dapat menampilkan dan menyembunyikan item dalam laporan menggunakan properti visibilitas untuk item laporan. Di wilayah data seperti tabel, Anda di awal dapat menyembunyikan baris detail berdasarkan nilai dalam ekspresi.

  • Ekspresi berikut, saat digunakan untuk visibilitas awal baris detail dalam grup, menampilkan baris detail untuk semua penjualan yang melebihi 90 persen di bidang PctQuota:

    =Iif(Fields!PctQuota.Value>.9, False, True)  
    
  • Ekspresi berikut, saat diatur dalam properti Tersembunyi tabel, menampilkan tabel hanya jika tabel tersebut memiliki lebih dari 12 baris:

    =IIF(CountRows()>12,false,true)  
    
  • Ekspresi berikut, saat diatur dalam properti Tersembunyi dari kolom, menampilkan kolom hanya jika bidang ada dalam himpunan data laporan setelah data diambil dari sumber data:

    =IIF(Fields!Column_1.IsMissing, true, false)  
    

Anda dapat mengkustomisasi URL menggunakan data laporan dan juga mengontrol secara kondisional apakah URL ditambahkan sebagai tindakan untuk kotak teks.

  • Ekspresi berikut, saat digunakan sebagai tindakan pada kotak teks, menghasilkan URL yang dikustomisasi yang menentukan bidang EmployeeID himpunan data sebagai parameter URL.

    ="https://adventure-works/MyInfo?ID=" & Fields!EmployeeID.Value  
    

    Untuk informasi selengkapnya, lihat Menambahkan Hyperlink ke URL (Penyusun Laporan dan SSRS).

  • Ekspresi berikut secara kondisional mengontrol apakah akan menambahkan URL dalam kotak teks. Ekspresi ini bergantung pada parameter bernama IncludeURLs yang memungkinkan pengguna memutuskan apakah akan menyertakan URL aktif dalam laporan. Ekspresi ini diatur sebagai tindakan pada kotak teks. Dengan mengatur parameter ke False kemudian menampilkan laporan, Anda dapat mengekspor laporan Microsoft Excel tanpa hyperlink.

    =IIF(Parameters!IncludeURLs.Value,"https://adventure-works.com/productcatalog",Nothing)  
    

Data Laporan

Ekspresi dapat digunakan untuk memanipulasi data yang digunakan dalam laporan. Anda dapat merujuk ke parameter dan informasi laporan lainnya. Anda bahkan dapat mengubah kueri yang digunakan untuk mengambil data untuk laporan.

Parameter

Anda dapat menggunakan ekspresi dalam parameter untuk memvariasikan nilai default untuk parameter. Misalnya, Anda dapat menggunakan parameter untuk memfilter data ke pengguna tertentu berdasarkan ID pengguna yang digunakan untuk menjalankan laporan.

  • Ekspresi berikut, saat digunakan sebagai nilai default untuk parameter, mengumpulkan ID pengguna orang yang menjalankan laporan:

    =User!UserID  
    
  • Untuk merujuk ke parameter dalam parameter kueri, ekspresi filter, kotak teks, atau area laporan lainnya, gunakan koleksi global Parameter. Contoh ini mengasumsikan bahwa parameter diberi nama Departemen:

    =Parameters!Department.Value  
    
  • Parameter dapat dibuat dalam laporan tetapi diatur ke tersembunyi. Ketika laporan berjalan di server laporan, parameter tidak muncul di toolbar dan pembaca laporan tidak dapat mengubah nilai default. Anda dapat menggunakan parameter tersembunyi yang diatur ke nilai default sebagai konstanta kustom. Anda dapat menggunakan nilai ini dalam ekspresi apa pun, termasuk ekspresi bidang. Ekspresi berikut mengidentifikasi bidang yang ditentukan oleh nilai parameter default untuk parameter bernama ParameterField:

    =Fields(Parameters!ParameterField.Value).Value  
    

Kode Kustom

Anda dapat menggunakan kode kustom dalam laporan. Kode kustom disematkan dalam laporan atau disimpan dalam rakitan kustom yang digunakan dalam laporan. Untuk informasi selengkapnya tentang kode kustom, lihat Kode Kustom dan Referensi Perakitan dalam Ekspresi di Perancang Laporan (SSRS).

Menggunakan Variabel Grup untuk Agregasi Kustom

Anda dapat menginisialisasi nilai untuk variabel grup yang bersifat lokal untuk cakupan grup tertentu, kemudian menyertakan referensi ke variabel tersebut dalam ekspresi. Salah satu cara Anda dapat menggunakan variabel grup dengan kode kustom adalah dengan mengimplementasikan agregat kustom. Untuk informasi selengkapnya, lihat Menggunakan Variabel Grup di Reporting Services 2008 untuk Agregasi Kustom.

Untuk informasi selengkapnya tentang variabel, lihat Referensi Koleksi Variabel Laporan dan Grup (Report Builder dan SSRS).

Menekan Nilai Null atau Nol pada Durasi

Beberapa nilai dalam ekspresi dapat mengevaluasi ke null atau tidak terdefinisi pada waktu pemrosesan laporan. Ini dapat membuat kesalahan run-time yang mengakibatkan #Error ditampilkan di kotak teks alih-alih ekspresi yang dievaluasi. Fungsi IIF sensitif khususnya terhadap perilaku ini karena, tidak seperti pernyataan If-Then-Else, setiap bagian dari pernyataan IIF dievaluasi (termasuk panggilan fungsi) sebelum diteruskan ke rutinitas yang menguji untuk true atau false. Pernyataan =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) menghasilkan #Error dalam laporan yang dirender jika Fields!Sales.Value TIDAK ADA.

Untuk menghindari kondisi ini, gunakan salah satu strategi berikut:

  • Atur numerator ke 0 dan denominator ke 1 jika nilai untuk bidang B adalah 0 atau tidak terdefinisi; jika tidak, atur numerator ke nilai untuk bidang A dan denominator ke nilai untuk bidang B.

    =IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))  
    
  • Gunakan fungsi kode kustom untuk mengembalikan nilai untuk ekspresi. Contoh berikut mengembalikan selisih persentase antara nilai saat ini dan nilai sebelumnya. Ini dapat digunakan untuk menghitung perbedaan antara dua nilai berturut-turut dan menangani kasus tepi perbandingan pertama (ketika tidak ada nilai sebelumnya) dan kasus apakah nilai sebelumnya atau nilai saat ini adalah null (Tidak ada dalam Visual Basic).

    Public Function GetDeltaPercentage(ByVal PreviousValue, ByVal CurrentValue) As Object  
        If IsNothing(PreviousValue) OR IsNothing(CurrentValue) Then  
            Return Nothing  
        Else if PreviousValue = 0 OR CurrentValue = 0 Then  
            Return Nothing  
        Else   
            Return (CurrentValue - PreviousValue) / CurrentValue  
        End If  
    End Function  
    

    Ekspresi berikut menunjukkan cara memanggil kode kustom ini dari kotak teks, untuk kontainer (grup atau wilayah data) "ColumnGroupByYear".

    =Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))  
    

    Ini membantu menghindari pengecualian run-time. Sekarang Anda dapat menggunakan ekspresi seperti =IIF(Me.Value < 0, "red", "black") di properti Warna kotak teks untuk menampilkan teks secara kondisional berdasarkan apakah nilainya lebih besar dari atau kurang dari 0.

Lihat juga

Contoh Persamaan Filter (Penyusun Laporan dan SSRS)
Contoh Ekspresi Grup (Penyusun Laporan dan SSRS)
Penggunaan Ekspresi dalam Laporan (Penyusun Laporan dan SSRS)
Ekspresi (Report Builder dan SSRS)
Filter yang Umum Digunakan (Penyusun Laporan dan SSRS)