Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

28 Februari 2008

Efek glass

Tau perbedaan utama antara grafik windows vista dengan windows XP, jika dilihat sekilas?

Tampilan taskbar windows xp

Tampilan taskbar windows vista

Coba lihat kedua taskbar di atas. Ternyata perbedaannya pada efek glass. Jika degradasi warna windows xp searah (dari warna terang di atas ke warna gelap di bawah) maka di vista degradasi waran di bagi menjadi dua bagian. Yaitu warna terang menuju ke warna antara gelap dan terang di tengah, kemudian dilanjutkan warna gelap dari tengah menuju warna setengah gelap dan terang di bawah.

Wah, ternyata dengan sedikit perubahan arah degradasi waran akan menimbulkan efek yang sangat berbeda.

Contoh lain:

dibanding dengan


Maka terlihat gambar ke-2 memiliki efek glass. Padahal komponen warnanya sama.
Proses pembuatannya hanya mengubah arah degradasi.

20 Februari 2008

Cara cepat pindah Direktory report di Jasper Server

Kadangkala, setelah data report sudah di kirim ke cabang, eh ada revisi yang harus mengubah letak direktory report tersebut.

Contoh, jika sebelumnya posisi direktory:

report
-------Penjualan
----------------Report A
-------Stok
----------------Report B

di ubah menjadi:

report
-------Penjualan
----------------Report A
----------------Report B
-------Stok

Jika kita menggunakan cara normal, ya kita harus Delete Report B, trus buat lagi Report B di direktory Penjualan. Tentu akan memakan waktu lama, karena proses membuat report tidak hanya upload jrmx saja, harus insert insert parameter-parameternya juga. Apalagi jumlah reportnya lebih dari satu, tambah juga prosesnya di cabang dengan bandwidth terbatas.

Ada cara yang cepat, yaitu dengan langsung mengubah internal database nya. Internal database yang dipakai untuk Jasper Server adalah MySQL. Struktur penyimpanan report di Jasper Server adalah menggunakan dua tabel. Pertama tabel resource yang digunakan untuk menyimpan seluruh resource, termasuk isi folder, paramter, dll. Kemudian tabel ke dua adalah resource_folder yang digunakan untuk menyimpan data folder.

Jadi secara logika untuk memindah report tersebut ke folder lain, tinggal ubah penanda foldernya ke folder lain.

--pindah folder
Update resource_folder
set uri = '/reports/Compiere_Report/X001/AX000/AX009_files',
name = 'AX009_files',
parent_folder = 113
where id = 266;

--pindah report
update resource
set name = 'AX009',
parent_folder = 113
where id = 1302;


Karena struktur penyimpanan report di jasper adalah dalam folder (1 folder untuk satu report, yang digunakan untuk menyimpan parameter-parameternya), maka untuk memindah report jg harus memindah folder.

Pada SQL diatas, kita ubah juga uri karena berhubungan dengan code JSPnya. Kemudian name di ubah untuk konsistensi penamaan dan yang paling penting parent_folder nya, karena merupakan penanda folder.
ID di atas adalah ID atas data. Untuk mengetahui ID, ya di query.

Selamat mencoba

18 Februari 2008

Antara BOM Bali dan Palestina

Saat ini, santer berita tentang ledakan yang terjadi di Denpasar. Sebuah mobil dilempar bom, hingga kaca-kacanya pecah. Tidak itu saja, body mobil juga berlubang karena serpihan bom. Ada dua penumpang yang terluka. Langsung saja publik menghubungkannya dengan aksi terorisme, karena sudah 2 kali Bali di incar bom. Tetapi, polisi menyatakan bahwa hal tersebut adalah murni kriminal.

Tetapi, pada saat yang sama, sebuah rumah di palestina dihantam rudal dari pesawat F-16. Rumah tersebut beserta rumah-rumah sekelilingnya hancur rata dengan tanah. Penghuni-penghuninya tentu saja tewas dengan tubuh yang hacur. Perlu diketahui, rumah tersebut terletak di area pengungsian Kamp el-Buraij Gaza.



Saya ingin membadingkan dua persitiwa peledakan antara Bom Bali I atau II dengan kejadian yang baru terjadi: Peledakan Rumah di area Kamp el-Buraij Gaza. Pertama, keduanya sama menghancurkan sebuah bangunan dan orang yang ada didalamnya. Kedua, para korban sama-sama penduduk sipil.

Tetapi ada perbedaan yang sangat mencolok di antara keduanya, pertama: Pada saat peledakan, jika di bali saat ini para korban sedang melakukan hura-hura, di PUB malam, menari-menari, mempertontonkan aurat, tertawa-tawa, meminum minuman keras, maka di pelestina, saat itu para korban dalam kondisi memprihatinkan, krisis listrik, krisis bahan bakar, krisis obat-obatan, dan dalam jajahan Israel. Selain itu, jika bom bali pelakukan adalah sebuah organisasi, maka di Palestina, pelakunya adalah sebuah negara. Ya! Negara. Tidak perlu melakukan investigasi panjang, tidak perlu mengejar sampai bertahun-tahun. Otak kejahatan di Palestina ada di TV-TV, malah bersalaman dengan presiden USA, George. W. Bush.

Terus, bagaimana tanggapan dunia? Beda jauh pula. Tidak ada gembar-gembor pelanggaran HAM di palestina, padahal jelas-jelas terjadi pembantaian terhadap sipil.

Dari ini semua, tidakkah kita berpikir apa yang terjadi di dunia ini? Siapa melawan siapa? Siapa di pihak siapa? Silahkan berpikir sendiri. Jangan menutup mata, semuanya telah terjadi, dan cepat atau lambat akan terjadi di dekat kita.

11 Februari 2008

Scriptlet dan Jasper Server

Masih ingat posting sebelumnya tentang scriptlet dan iReport? Itu loh, modul object yang berisi event fill data di iReport. Waktu itu memang saya sudah berhasil membuat report yang menggunakan scriplet. Saya test, berhasil. Masalahnya adalah ketika akan meng-upload report tersebut ke Jasper Server.

JasperServer menggunakan server Tomcat (karena JSP), maka ketika saya upload report, class scriplet nya tidak ikut ter-upload. Ketika report di buka melalui JasperServer, maka akan muncul pesan:

SOBOScriptlet cannot be resolved to a type

Hal ini menunjukkan bahwa class scriptletnya tidak dikenali. Bagaimana caranya agar class tersebut dikenali? Dari manual JasperServer, kita harus menambah Resources berupa file JAR yang berisi class scriptlet.
Caranya, pertama buat JAR terlebih dahulu. Jika sudah, pilih report, kemudian Add Resource. Pilih Upload From File System dan ambil file JAR yang telah dibuat tadi.

Selanjutnya tekan next, dan isikan:

* Name
* Label
Description
Type Jar

Name dan Label harus diisi sesuai dengan nama Scriptlet, biasanya [Nama Scriptlet] + "Scriptlet". Untuk lebih jelasnya, coba liat di jrxml nya.

Setelah itu, tekan next sampai selesai dan save.
Sekarang, coba buka report ber scriptlet tersebut.
Loh!!! Sekarang koq malah errornya ganti?
org.springframework.webflow.ActionExecutionException:
Exception thrown executing [AnnotatedAction@59090
targetAction = com.jaspersoft.jasperserver.war.action.ViewReportAction@156186b,
attributes = map[[empty]]] in state 'verifyData' of flow 'viewReportFlow';
nested exception is com.jaspersoft.jasperserver.api.JSExceptionWrapper:
net.sf.jasperreports.engine.JRException:
Errors were encountered when compiling report expressions class file:
1. The type it.businesslogic.ireport.IReportScriptlet cannot be resolved.
It is indirectly referenced from required .class files
/*
^
1 errors
Lama sekali saya berkutat dengan error ini sampe akhirnya hari ini saya tahu solusinya! Error diatas adalah akibat class scriptlet yang kita buat membutuhkan parrent object yaitu it.businesslogic.ireport.IReportScriptlet
Sedangkan si JasperServer tidak meng-include JAR yang berisi IReportScriptlet (iReport-1.2.4.jar) di direktori library-nya. Untuk itu, coba copy JAR tersebut di [TOMCAT DIR]/common/lib dan [TOMCAT DIR]/webapps/jasperserver/WEB-INF/lib

Selanjutnya restart tomcat, dan semuanya beres.

Akhir kata...ceile...sok pidato, agar scriptlet anda dapat digunakan, maka hal yang perlu di lakukan:
  1. Bundle class-class scriptlet di satu JAR
  2. Upload jar
  3. Enable Scritplet di JasperServer dengan mengcopy iReport-1.2.4.jar (file bisa berbeda) ke direktory lib Tomcat

05 Februari 2008

Bola lagi...

Setelah lebih dari 2 tahun tidak pernah bermain sepak bola. Akhirnya kemarin saya rasakan kembali letihnya akibat bermain sepak bola. Jika dulu saya hampir tiap sore bermain sepak bola di lapangan, maka tidak salah jika kemarin langsung ngos-ngosan walau baru bermain sekitar 10 menit, dan itu di lapangan futsal. Cukup puas juga kemarin bermain futsal, lumayan menguras tenaga.
Wah....memang lapangannya sangat bagus. Tidak seperti dulu bermain di lapangan rumput yang kadang tidak rata dan banyak bebatuan, sangat mungkin membuat cidera.
Ya, awal yang bagus untuk memulai berolahraga secara teratur. Gak baik loh buat tubuh klo gak pernah olahraga.
Salam olahraga!!