Mondrian‎ > ‎

Schema Color Formatting

Pendahuluan

Pada schema Mondrian sering sekali kita perlu memberikan format warna pada kolom-kolom yang bersifat indikator. Misalkan jika terjadi kenaikan penjualan dari tahun lalu, maka field "GROWTH" kita tandai dengan warna hijau dan sebaliknya dengan warna merah.

Artikel berikut menerangkan syarat dan cara kita memberikan format tersebut. Hanya dalam kasus ini kita mengedit melalui text editor.

Calculated Member dan HTML Special Character

Buka file schema Analysis Anda dengan editor favorit Anda. Untuk memberikan formatting, saat ini calculated member yang bisa diberikan format dengan property tambahan style warna. Contoh calculated member adalah sebagai berikut.

Calculated Member : YTD Sales

    <CalculatedMember name="YTD Sales" formula="Sum(YTD([Time].CurrentMember), [Measures].[value_sales])" dimension="Measures">
    </CalculatedMember>

Setelah itu, katakanlah jika penjualan YTD lebih kecil dari Rp 1.000.000.000.- maka kita berikan tanda merah, sebaliknya berikan warna hijau.

Berikut adalah konfigurasi rulenya dengan penggunaan fungsi kondisional Iif :

CalculatedMember

 <CalculatedMember name="YTD Sales" formula="Sum(YTD([Time].CurrentMember), [Measures].[value_sales])" dimension="Measures">
      <CalculatedMemberProperty name="FORMAT_STRING" expression="Iif([Measures].[YTD Sales] &#60; 1000000000, &#39;|($#,##0.00)|style=red&#39;, &#39;|$#,##0.00|style=green&#39;)">
      </CalculatedMemberProperty>
</CalculatedMember>


Waduh, kok rumit begitu ? Iya, karena pada schema tersebut terdapat beberapa HMTL special characters seperti berikut :
  • &#60; yang merupakan kode dari simbol tanda lebih kecil ( < )
  • &#39; yang merupakan kode dari simbol tanda kutip tunggal ( ' )
  • &#35; yang merupakan kode dari simbol tanda pagar ( # )
Jadi kalau kita ganti kode tersebut dengan tanda ASCII sebenarnya maka schema tadi maka akan kelihatan sebagai berikut :

CalculatedMemberProperty

 <CalculatedMember name="YTD Sales" formula="Sum(YTD([Time].CurrentMember), [Measures].[value_sales])" dimension="Measures">
      <CalculatedMemberProperty name="FORMAT_STRING" expression="Iif([Measures].[YTD Sales] < 1000000000'|($#,##0.00)|style=red''|$#,##0.00|style=green')">
      </CalculatedMemberProperty>
</CalculatedMember>

Untuk referensi lengkap mengenai HTML special character silahkan lihat URL berikut : 

Jika kita melakukan hasil eksekusi maka sebagian porsi value di JPivot akan kelihatan sebagai berikut :



Pengecekan dua Nilai Threshold

Oke, dengan pemahaman yang sudah kita dapatkan kita akan melangkah lebih jauh dengan pemanfaatan sering sekali kita memiliki 2 nilai threshold sebagai warna KPI (Key Performance Indicator) kita. 

Dengan penggunaan nested Iif kita dapat mencapai tujuan tersebut. Misalkan threshold kita  di bawah 500.000,-  diberikan warna merah, untuk 500.000,- s/d 1.000.000.000,-  berwarna kuning dan di atas 1.000.000.000,- baru berwarna hijau. 

Berikut adalah codenya :

CalculatedMemberProperty

 <CalculatedMember name="YTD Sales" formula="Sum(YTD([Time].CurrentMember), [Measures].[value_sales])" dimension="Measures">
            <CalculatedMemberProperty name="FORMAT_STRING" expression="Iif([Measures].[YTD Sales] &#60; 500000000, &#39;|(Rp #,##0.00)|style=red&#39;, Iif([Measures].[YTD Sales] &#60; 1000000000, &#39;|Rp #,##0.00|style=yellow&#39;, &#39;|Rp #,##0.00|style=green&#39;))">
      </CalculatedMemberProperty>
</CalculatedMember>


dan hasilnya...


Kelemahan Style di Mondrian

Tidak mendukung inline format style, tapi harus predefined di beberapa tempat terutama file mdxtable.css, mdxcell.xsl dan mdxtable.xsl untuk transformasi formatnya.

Untuk workaroundnya bisa melihat Jira Pentaho berikut : http://jira.pentaho.com/browse/BISERVER-3089

Dan sebagai tambahan untuk customization lebih lanjut, gunakan web developer browser toolkit yang baik untuk memformat lebih lanjut terhadap file css. 

Sebagai contoh di Firefox saya menggunakan web developer extension untuk melihat style yang terbentuk :



Penutup

Demikian, semoga artikel untuk format Mondrian/JPivot ini berguna. Sampai ketemu di artikel terkait lainnya terutama dashboard building di situs ini. Untuk bergabung dengan komunitas kita, Anda dapat mengirimkan email ke pentaho-id+subscribe@googlegroups.com.


Link Terkait
Comments