Jumat, 18 Juni 2010

Menggunakan xml subdataset

Contoh data xml:
untuk menampilkan beberapa telpon dari setiap nomor orang di address book.
Untuk menampilkan daftar nomor kita perlu menciptakan sebuah sub-dataset mulai dari node orang. Dataset utama akan bekerja pada node orang, sedangkan sub-dataset akan memproses semua tag telepon dari node orang tertentu.Untuk menampilkan data terus oleh Dataset-sub kita bisa menggunakan subreport (yang akan memungkinkan untuk memiliki beberapa tingkat, karena subreport dapat berisi subreports lainnya), atau kita bisa menggunakan elemen Daftar sederhana. Dalam tutorial ini kita akan menggunakan daftar sederhana, namun konsep tersebut dapat dengan mudah diterapkan pada subreports.Sebuah elemen Daftar memungkinkan untuk menampilkan satu set catatan yang berasal dari sumber data. Hapus bidang telepon dan menambah detail komponen Daftar (menyeretnya dari palet). Ketika komponen Daftar baru akan ditambahkan ke laporan, iReport menciptakan sebuah sub-dataset feed Daftar. Kita harus mengkonfigurasi sub-dataset untuk memilih semua node telepon ketik konteks orang node. Untuk melakukannya, klik kanan node sub-dataset pada tampilan laporan inspektur (simpul diberi label dataset1) dan pilih Edit Query. Dialog Permintaan untuk dataset-sub muncul.Pilih XPath sebagai bahasa query. Pada tampilan struktur pohon XML klik kanan node telepon dan pilih "node rekor". Sekarang kita bekerja seperti node akan merekam telepon. Harap dicatat bahwa XPath query yang dihasilkan untuk memilih node telepon akan tidak digunakan, karena kita akan melewati sebuah sumber data yang mencakup ekspresi XPath. Dengan node telepon sebagai root, tambahkan kolom jenis dan telepon. Harap perhatikan sintaks XPath digunakan dalam deskripsi ladang untuk mengekstrak nilai-nilai tag:
@ Jenis ekstrak nilai atribut "jenis" dari node saat ini
anak:: teks () ekstrak nilai teks node saat ini
Tutup dialog Query dengan mengklik tombol OK dan tambahkan di dalam elemen Daftar ladang dari dataset1 (objek bidang baru dalam laporan inspektur dalam subdataset node, menyeret mereka dari sini atas elemen Daftar di designer).
Tata letak harus serupa dengan yang ditunjukkan pada Gambar dibawah.
Klik kanan komponen Daftar dan pilih Edit daftar sumber data. Hal ini akan membuka dialog Run Dataset untuk menetapkan bagaimana untuk mengisi dataset1. Pilih "Gunakan dataset ekspresi" (yang biasanya dipilih secara default) dan untuk menetapkan ekspresi berikut:
$ P (REPORT_DATA_SOURCE). SubDataSource ("/ orang / telepon")

Baris kode ini sangat penting. Sintaks $ P () digunakan untuk referensi objek parameter, dalam kasus ini REPORT_DATA_SOURCE yang built-in parameter yang berisi sumber data yang digunakan untuk mengisi dataset utama. Sumber data dalam hal ini adalah turunan dari JRXmlDatasource yang menyediakan dua metode untuk bekerja dengan subdatasets: subDataSource () dan sumber data (), keduanya mendapatkan sebagai argumen ekspresi XPath.
Dalam kasus kami, metode subDataSource adalah apa yang kita butuhkan untuk mengeksplorasi pohon XML di bawah orang node. Secara khusus, sumber data akan digunakan sebagai node merekam semua telepon node anak-anak orang.
Tutup dialog menjalankan dataset dan menjalankan laporan. Hasilnya harus serupa dengan yang dalam gambar dibawah.

Tidak ada komentar:

Posting Komentar