Sebuah sumber data XML menggunakan file XML untuk menyediakan data untuk mencetak. Struktur XML tidak datar seperti meja, tidak ada baris dan kolom, lebih mirip dengan sebuah pohon, di mana kita dapat memiliki beberapa tingkatan data. Untuk alasan ini kita perlu menggunakan XPath query untuk mengidentifikasi node dari dokumen XML harus dianggap sebagai catatan. Berikut XML cukup sederhana untuk dengan mudah menjelaskan bagaimana untuk melakukannya:
Contoh data xml alamat orang yang berisi field nama dan notelp
Kita ingin menampilkan laporan daftar semua orang dalam buku alamat, dimana setiap orang menunjukkan nama dan nomor telepon. Setiap record dapat diidentifikasi dengan node XML berlabel "orang". Pemilihan tag xml spesifik dilakukan dengan XPath query seperti ini: /addressbook/person
XPath adalah bahasa query yang kuat untuk memilih data dalam file XML. Dalam hal ini istilah akan memilih semua node tipe "orang" child "addressbook". Hasil dari sumber data calon akan menjadi set tiga catatan (sejak kejadian child orang tag addressbook). [person->nama,notelp]Permintaan XPath dapat didefinisikan di dalam laporan tersebut, seperti yang kami lakukan dengan query SQL pada tutorial lainnya. Dalam hal ini JasperReports akan menjalankan XPath query untuk memilih node dari dokumen XML dengan menggunakan sumber data XML. Keuntungan menjaga permintaan XPath dalam laporan tersebut adalah bahwa kita dapat menggunakan parameter untuk membuat query yang dinamis.Pilihan lainnya adalah untuk menentukan ekspresi XPath ketika JRXmlDataSource adalah instanced, dalam hal ini permintaan laporan akan tetap kosong dan disediakan XPath query pada tingkat sumber data akan digunakan untuk memproses file XML sebelum melewati data ke mesin laporan.Gambar berikut ini menunjukkan sumber data XML dialog konfigurasi.
Ketika mengkonfigurasi sumber data XML adalah menentukan terlebih dulu di mana modus sumber data harus beroperasi. Informasi lain termasuk jalur dari file XML untuk digunakan dan Tanggal dan pola Nomor yang dapat digunakan untuk mengkonversi nilai teks dalam sebuah objek yang lebih cocok (seperti tanggal atau angka).
Sekarang kita pastikan node yang dipakai dengan menggunakan XPath query untuk memilih semua node orang, kita harus mendefinisikan laporan beberapa bidang pemetaan nilai XML (tag atau atribut). Dilakukan dengan menggunakan XPath query untuk memilih nilai waktu dan tidak satu set node seperti yang kita lakukan sebelumnya. Permintaan adalah relatif terhadap node "catatan" (node orang dalam kasus ini). Kita dapat memetakan misalnya nama tag dengan menggunakan istilah "nama" dan panggilan yang Person_name laporan lapangan. "Nama" adalah child orang, dan ekspresi XPath "nama" cukup pilih nilai tag "nama" (dengan asumsi bahwa node saat ini memiliki anak yang disebut "nama"). Harap dicatat bahwa kami tidak menggunakan path lengkap dari tag "nama" (yang akan /addressbook/orang/ nama) sejak simpul nama yang kita ingin membaca adalah relatif satu dengan simpul orang saat ini kami memproses.
Mari kita melihat segala sesuatu dalam praktek. Xml Simpan dalam file bernama addressbook.xml, buka sumber data dialog (dengan mengklik silinder pada panel alat utama) dan klik New. Pilih file XML data sumber tekan Next. Mengatur nama untuk sumber data, file XML (addressbook.xml) dan pilih opsi "Use the report XPath expression when filling the report".Buat laporan baru kosong dan terbuka Permintaan Dialog dengan mengklik tombol silinder pada tool bar desainer (hanya di sebelah kanan tombol Preview). Karena kita perlu menggunakan XPath sebagai bahasa query, pilih XPath Query Language (dari kotak kombo di atas jendela). Operasi ini mengaktifkan alat pemetaan XPath (lihat gambar 2).
Karena sambungan aktif adalah data XML sumber yang menunjuk ke addressbook.xml, iReport mengusulkan isi dari file itu di pohon XML di sebelah kanan. Kami visual dapat mengidentifikasi dan mengatur "catatan" node: klik kanan pada node orang dan pilih "node rekor (menghasilkan XPath)". Dengan cara ini iReport akan menghasilkan XPath query yang benar untuk memilih semua node tipe orang. Untuk peta bidang, klik kanan pada node (nama yaitu) dan pilih "Tambah node sebagai lapangan". Tambahkan bidang nama dan telepon.
Tutup dialog query dengan mengklik OK. Dalam laporan inspesi kita sekarang field dipilih dan ditempatkan dalam band detail (gambar 3).
Coba dipreview, akan menghasilkan tampilan kurang lebih seperti ini:
Tidak ada komentar:
Posting Komentar