วันศุกร์ที่ 31 มีนาคม พ.ศ. 2560

Pentaho CDE DashBoard [Drill-Down ไปยังอีก DashBoard]

Drill-Down ไปยังอีก DashBoard นึง คือการที่เราจะมี 2 DashBoard ซึ่ง DashBoard แรกจะทำหน้าที่แสดงข้อมูลขั้นแรก ส่วน DashBoard ที่ 2 จะแสดงข้อมูลที่อยู่ในระดับที่ต่ำกว่า หรือคือละเอียดกว่า โดยจะใช้วิธีการ Passing Parameter ไปยังอีก DashBoard

1. DashBoard ที่ 1 จะแสดงกราฟเป็น Bar Chart
2. DashBoard ที่ 2 จะ Passing Parameter จาก DashBoard ที่ 1 จะแสดงกราฟเป็น Line Chart

เริ่มต้นให้เราสร้าง DashBoard ที่ 1 และ 2 ให้เรียบร้อย ซึ่ง DashBaord ที่ 2 ยังไม่ต้องสร้างอะไรเลยก็ได้

ตัวอย่าง DashBaord 1




ต่อมาให้ไปที่ Browse File ไป Path ที่เราสร้าง DashBaord ที่ 2 ไว้ และเลือก DashBoard 2 จากนั้นกด Open in a new window ให้เรา copy Url ไว้
 ในที่นี้ Url คือ "http://localhost:8080/pentaho/api/repos/%3Apublic%3ABar%20Chart%20Drill%20down%20Dashboard%20Example%3ADashboard2%20drilldown%20detailed.wcdf/generatedContent"


ไปที่ DashBaord ที่ 1 Components Panel มองหา Property ของ Bar Chart ที่ชื่อว่า "clickAction" กดปุ่ม "..." ขึ้นมาจะพบ Javascript Wizard


พิมพ์ Code นี้ลงไป
function f(scene) {
    var vars = scene.vars;
    var s = vars.series.value;
    var c = vars.category.value;
    var v = vars.value.value;
    alert("series: " + s + "\ncategory: " + c + "\nvalue: " + v);
   
    url='http://localhost:8080/pentaho/api/repos/%3Apublic%3ABar%20Chart%20Drill%20down%20Dashboard%20Example%3ADashboard2%20drilldown%20detailed.wcdf/generatedContent';
    window.location =url+'?param_Quarter='+c;
}
ซึ่ง url=' ' ให้เราใส่ Url ของ DashBaord ที่ 2 ลงไป จากนั้นกด OK

 ซึ่ง Code ส่วนนี้จะทำงานเมื่อเรากดคลิกที่ Bar ใด Bar หนึ่งของ Chart จะแสดง Alert ว่ามี Series, Category และ Value คืออะไร เท่าไหร่บ้างของ Bar นั้น
จากนั้นจะทำการ window.location = url+'?ชื่อ Parameter ที่จะใช้รับ='+Value
ซึ่ง Value ในที่นี้คือตัวแปร c ซึ่งตัวแปร c จะเป็น Category ของ Bar นั้น

ทดลองคลิกดูจะเกิด Alert ขึ้น และจะแสดงว่ามี Series, Category และ Value คืออะไร เท่าไหร่บ้าง จากนั้นจะไป DashBoard ที่ 2 ซึ่งจะยังไม่เกิดอะไรขึ้น แต่ให้สังเกตุ Url จะมี "?param_Quarter=Q3" ต่อเข้ามา

จากนั้นเราจะไปทำ DashBoard ที่ 2 ต่อเมื่อมีการส่งค่า Parameter มาแล้ว เราจะต้องสร้าง Generic แบบ Custom parameter มารับ โดยตั้งชื่อให้เหมือนกับที่ส่งมา "param_Quarter"

ใน Property ที่ชื่อว่า Javascript code ให้ใส่ Code ดังนี้
param_Quarter=Dashboards.getQueryParameter("param_Quarter");
เป็นการ Get Parameter ที่ส่งมาที่ชื่อว่า "param_Quarter" ใส่ลงในตัวแปร "param_Quarter" ซึ่งเป็นชื่อของ Generic นี้

จากนั้นให้ Line Chart ของเรารับค่า Parameter ตามปกติ และส่งค่า Parameter นี้ไป Query ด้วย


ทดสอบ Save และ Preview

เลือก Category : Q2

Url ที่เพิ่ม

ที่ DashBoard 2 จะแสดงเดือนใน Quarter ที่ 2

ไม่มีความคิดเห็น:

แสดงความคิดเห็น