Bagikan melalui


Contoh ekspresi dalam laporan paginated Report Builder

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 paginasi (Pembuat Laporan), dan Menambahkan ekspresi ke laporan yang dipaginasi (Pembuat Laporan).

Penting

Saat Sandboxing RDL diaktifkan, Anda hanya dapat menggunakan jenis dan anggota tertentu dalam teks ekspresi pada waktu penerbitan laporan. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan sandboxing RDL untuk Reporting Services dalam mode terintegrasi SharePoint.

Untuk contoh ekspresi untuk penggunaan tertentu, lihat artikel berikut ini:

Untuk informasi selengkapnya tentang ekspresi sederhana dan kompleks, di mana Anda bisa menggunakan ekspresi, dan jenis referensi yang bisa Anda sertakan dalam ekspresi, lihat artikel di bawah Ekspresi dalam laporan paginasi (Pembuat Laporan). Untuk informasi selengkapnya tentang konteks di mana ekspresi dievaluasi untuk menghitung agregat, lihat Cakupan ekspresi untuk total, agregat, dan koleksi bawaan dalam laporan paginated (Pembuat Laporan).

Untuk mempelajari cara menulis ekspresi yang menggunakan banyak fungsi dan operator yang juga digunakan oleh contoh ekspresi dalam artikel ini, lihat Tutorial: Memperkenalkan ekspresi.

Fungsi

Berbagai ekspresi dalam laporan mengandung fungsi. Anda dapat memformat data, menerapkan logika, dan mengakses metadata laporan dengan menggunakan fungsi-fungsi ini. Anda dapat menulis ekspresi yang menggunakan fungsi dari pustaka run-time Microsoft Visual Basic dan dari Convert namespace layanan 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 parameter, properti, atau area lain dari laporan Anda. Bagian ini menyediakan contoh yang menunjukkan beberapa fungsi ini. Untuk informasi selengkapnya, lihat Anggota pustaka runtime Visual Basic.

.NET Framework menyediakan banyak opsi format kustom, misalnya, untuk format tanggal tertentu.

Fungsi matematika

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

    = Round(1.3)  
    

    Anda juga dapat menulis ekspresi untuk membulatkan nilai ke kelipatan yang Anda tentukan, mirip dengan fungsi MRound di Excel. Dengan fungsi ini, Anda dapat mengalikan nilai dengan faktor yang membuat bilangan bulat, membulatkan angka, lalu membagi dengan faktor yang sama. Misalnya, untuk membulatkan 1,3 ke kelipatan terdekat 0,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 menunjukkan jumlah minggu dalam 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 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 fungsi ini untuk mengelompokkan tanggal bersama-sama atau untuk menampilkan tahun sebagai label untuk sekumpulan tanggal. Ekspresi ini menyediakan tahun untuk tanggal pemesanan grup penjualan tertentu. Fungsi Bulan dan fungsi lainnya juga dapat digunakan untuk memanipulasi tanggal:

    =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 ke December Week 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 Datetime:

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

    =FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")  
    
  • Fungsi CDate mengonversi nilai menjadi tanggal. Fungsi Sekarang mengembalikan nilai Tanggal yang berisi tanggal dan waktu saat ini sesuai dengan 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 saat 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 Pembuat Laporan - Fungsi pertama dalam laporan paginasi (Pembuat Laporan), 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 ke 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 ke 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 sama dengan contoh sebelumnya dan 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 Ganti untuk mengubah format nomor telepon di 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.

Pencarian

  • 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 yang disebut Produk, mengingat pengidentifikasi produk yang cocok dengan:

    =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 pengembalian ke dalam satu string 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. Anda dapat menggunakan fungsi konversi untuk mengonversi jenis data default untuk bidang ke jenis data yang diperlukan untuk perhitungan atau untuk menggabungkan teks.

  • Ekspresi berikut mengonversi konstanta 500 untuk mengetik 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, nilai "False":

    =IIF(Fields!LineTotal.Value > 100, True, False)  
    
  • Gunakan beberapa fungsi IIF (juga dikenal sebagai "pernyataan 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 bergantung pada nilai dalam kotak teks:

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

    Nilai yang lebih besar dari atau sama dengan 10 tampilan dengan latar belakang hijau. Nilai antara satu dan sembilan tampilan dengan latar belakang biru. nilai kurang dari satu tampilan 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 mengevaluasi ke TRUE:

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

    Nilai yang lebih besar dari atau sama dengan 10 tampilan dengan latar belakang hijau. Nilai antara satu dan sembilan tampilan dengan latar belakang biru. Nilai sama dengan satu tampilan dengan latar belakang kuning. Nilai 0 atau kurang ditampilkan dengan latar belakang merah.

  • Uji nilai bidang ImportantDate dan kembalikan "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 bidang PhoneNumber dan kembalikan "Tidak Ada Nilai" jika nilainya null, yang disebut 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 Departemen dan kembalikan nama sublaporan atau nilai null, yang disebut Tidak Ada di Visual Basic. Ekspresi ini dapat digunakan untuk sublaporan penelusuran kondisional:

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)  
    
  • Uji apakah nilai bidang adalah nilai 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 bukan nilai 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 lebih banyak fungsi laporan yang memanipulasi data dalam laporan. Bagian ini menyediakan contoh untuk dua fungsi ini. Untuk informasi selengkapnya tentang fungsi dan contoh laporan, lihat Fungsi Pembuat Laporan - referensi fungsi agregat dalam laporan paginated (Pembuat Laporan).

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, bayangkan Anda memiliki himpunan data yang memiliki bidang bernama Status dengan nilai yang mungkin Tidak Dimulai, Dimulai, dan 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 Hentian halaman.

    Cakupan yang Anda tentukan untuk kontrol RowNumber saat penomoran ulang dimulai. Kata kunci Tidak ada menunjukkan bahwa fungsi 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 footer halaman

Saat mendesain laporan, Anda mungkin ingin menampilkan nama laporan dan nomor halaman di footer laporan. Anda bisa 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 Biaya. Saat Anda menempatkan ekspresi ini di header halaman atau footer, ekspresi ini menyediakan jumlah nilai dalam kotak teks Biaya 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 hentian halaman di akhir jumlah baris tertentu alih-alih, atau selain, pada grup atau item laporan. Buat grup yang berisi grup atau rekaman detail yang Anda inginkan. Tambahkan pemisah halaman ke grup, lalu tambahkan ekspresi grup untuk dikelompokkan menurut jumlah baris tertentu.

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

    =Ceiling(RowNumber(Nothing)/25)  
    

    Untuk mengizinkan 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 hentian halaman ke laporan yang dipaginasi (Pembuat Laporan).

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 item laporan di wilayah data, mengubah warna latar belakang setiap baris antara hijau pucat dan putih:

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

    Jika Anda 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 bisa menggunakan kode kustom untuk mengontrol urutan warna yang dipetakan ke nilai titik data. Kode kustom ini membantu Anda menggunakan warna yang konsisten untuk beberapa bagan yang memiliki grup kategori yang sama. Untuk informasi selengkapnya, lihat Menentukan warna yang konsisten dalam beberapa bagan bentuk dalam laporan paginasi (Pembuat Laporan).

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, memperlihatkan baris detail untuk semua penjualan melebihi 90 persen di bidang PctQuota :

    =Iif(Fields!PctQuota.Value>.9, False, True)  
    
  • Ekspresi berikut, saat diatur dalam properti Tersembunyi tabel, memperlihatkan tabel hanya jika 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 himpunan data EmployeeID sebagai parameter URL:

    ="https://contoso/MyInfo?ID=" & Fields!EmployeeID.Value  
    

    Untuk informasi selengkapnya, lihat Menambahkan hyperlink ke URL dalam laporan paginasi (Pembuat Laporan).

  • 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 lalu menampilkan laporan, Anda bisa mengekspor laporan Microsoft Excel tanpa hyperlink:

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

Melaporkan data

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. Saat 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 dalam laporan paginasi 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 variabel laporan dan grup dalam laporan paginasi (Pembuat Laporan).

Menekan nilai null atau nol pada waktu proses

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

Untuk menghindari kondisi ini, gunakan salah satu strategi berikut:

  • Atur pembilang 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 penyedenominator 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. Nilai ini dapat digunakan untuk menghitung perbedaan antara dua nilai berturut-turut. Ini menangani kasus tepi perbandingan pertama ketika tidak ada nilai sebelumnya, dan berfungsi dalam kasus apakah nilai sebelumnya atau nilai saat ini adalah nilai null, yang disebut Tidak ada di 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 "ColumnGroupByYear", grup atau wilayah data:

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

    Kode 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.