Saya menghadapi masalah serupa, misalnya memilih label mana yang akan dicetak, tetapi juga harus mencetak lebih dari 1 label per klien. Masalah saya adalah saya tidak dapat mengakses SQL (kami menggunakan kubus). Saya menggunakan SSRS 2012 dengan SharePoint. Itu tidak cantik, tapi berhasil.
Saya memiliki 1 kumpulan data di laporan saya. Saya memiliki 14 label - 7 di bawah & 2 melintang. Setiap label diatur sebagai tablixnya sendiri.
Tablix diberi nomor 1 sampai 14, dimulai dari kiri atas. Jadi, 1-7, di bawah "kolom" kiri & kemudian 8-14 dari atas "kolom" kanan.
Yang menjengkelkan adalah nilai parameter dimulai dari 0, jadi diberi nomor 0-13 Setiap tablix diatur untuk disesuaikan dengan nilai parameter tertentu, misalnya tablix 1 diatur untuk difilter berdasarkan nilai parameter 0, tablix 2 difilter berdasarkan nilai parameter 1, tablix 3 difilter berdasarkan nilai parameter 2, tablix 4 difilter berdasarkan nilai parameter 3, dst.
Saya harus mencetak data dua kali di label jadi saya menggunakan 2 kotak teks di dalam tablix saya.
Buat parameter
Pengguna akan menggunakan Id Klien (angka 6 digit) sebagai nilai parameter. Saya membuat parameter yang disebut ClientID. Untuk prompt saya masukkan "Ganti 000000 untuk setiap label yang diperlukan. 000000 = label kosong"
Di bawah opsi Umum, saya:
- changed Data type to Text
- diaktifkan Izinkan nilai kosong ("")
- diaktifkan Izinkan beberapa nilai
- atur Pilih visibilitas parameter ke Terlihat
Nilai yang Tersedia
- Default Values
- selected Specify values
- klik Tambah dan atur Nilai menjadi 00000 Saya melakukan ini 14 kali (jadi saya memiliki nilai default 000000 untuk setiap label)
Buat tablik
Saya kemudian membuat tablix untuk setiap label. Mereka semua menunjuk ke kumpulan data saya (secara imajinatif disebut "DataSet1"). Mereka terdiri dari satu sel. Ini cocok dengan tinggi dan lebar area cetak label saya.
Buat kotak teks
Saya menambahkan kotak teks pertama saya di dalam sel tablix. Saya membuatnya sedikit lebih kecil dari lebar tablix dan tepat di bawah bagian atas tablix.
Membuat kotak teks kedua & memindahkannya ke bawah hingga sesuai dengan kebutuhan saya. Itu menggunakan rumus yang sama seperti kotak teks pertama. (ingat saya perlu mencetak nama klien dua kali).
Saya menggunakan pencarian kumpulan data di laporan saya. Ya, meskipun tablix sudah didasarkan pada kumpulan data ini.
Untuk label pertama, rumus untuk kedua kotak teks adalah:
=lookup(Parameters!ClientID.Value(0),
Fields!ID.Value,
UCase(Fields!Surname.Value),
"DataSet1")
& ", " &
lookup(Parameters!ClientID.Value(0),
Fields!ID.Value,
Fields!Given.Value,
"DataSet1")
Buat filter untuk tablix
Saya juga harus menerapkan filter ke setiap tablix, sehingga akan mencetak informasi klien yang dipilih melalui parameter.
Pada Tablix Properties di bawah opsi Filters + klik Add + dari ekspresi, saya memilih ClientID saya + dari Operator, saya memilih In + di Value, saya mengklik tombol Fx untuk membuat rumus =Parameters!ClientID.Value(0 )
Jangan tampilkan nilai parameter default
Tentunya jika Anda membiarkan nilai parameter sebagai default (000000), maka nilai ini akan dicetak.
Satu-satunya cara agar saya dapat mencegah hal ini adalah dengan menggunakan warna Font (saya tidak dapat mengaktifkan Visibilitas). + Klik kanan pada Kotak Teks + Pilih Properti Kotak Teks + Klik pada opsi Font + Di bawah Warna, klik tombol Fx + Gunakan rumus ini:
=iif(Parameters!ClientID.Value(0)="000000", "White", "Black")
Untuk label berikutnya
Untuk label kedua, saya mengindeks nilainya di dalam tanda kurung, misal (0) hingga (1) baik untuk rumus kotak teks maupun untuk filternya, misal
=lookup(Parameters!ClientID.Value(1),
Fields!ID.Value,
UCase(Fields!Surname.Value),
"DataSet1")
& ", " &
lookup(Parameters!ClientID.Value(1),
Fields!ID.Value,
Fields!Given.Value,
"DataSet1")
dan di filter Properti Tablix,
=Parameters!ClientID.Value(1)
dan dalam rumus Font Kotak Teks
=iif(Parameters!ClientID.Value(1)="000000", "White", "Black")
Saya kemudian mengindeks nomor ini untuk setiap label berikutnya, sehingga label terakhir (label 14), nilainya adalah:
=lookup(Parameters!ClientID.Value(13) etc
dan di filter Properti Tablix,
=Parameters!ClientID.Value(13)
dan dalam rumus Font Kotak Teks =iif(Parameters!ClientID.Value(13)="000000", "White", "Black")
Jadi, ketika pengguna menjalankan laporan, mereka mengganti 000000, 000000, 000000, dll dengan ID Klien yang sesuai
person
Adrift
schedule
05.10.2017