Membuat Organizational Chart dengan Kode GetShapesByData Untuk Dynamic Glue

Visio tidak memiliki alat otomasi secara umum dalam memberikan koneksi antara shape. Demonstrasi ini akan menulusuri berbagai cara membuat koneksi otomatis (automating connections). Sebagai contoh, saya gunakan Splace Plan dari template Maps and Floor Plans. Saya cancel wizardnya karena tidak diperlukan. Data yang ingin saya gunakan dalam demonstrasi ini adalah file DBSample.mdb untuk membuat organization chart data nya dengan menggunakan Link Data to Shapes. Pergi ke menu Data pilih Link Data to Shapes, pilih Microsoft Access database, dan cari lokasi file DBSample.mdb lalu pilih Organizationa Chart Data lalu Next. Biarkan yang lainnya secara default dan klik Finish.

Shape yang akan saya gunakan pada Space Plan diagram ini adalah Person shape dibagian Resource stencil. Kolum pada External Data harus sesuai dengan Person shape ini oleh karena itu akan saya edit dengan cara mengklik tombol kanan mouse di External Data window dan pilih Column Settings. Saya ubah Email menjadi Email Alias, Telephone menjadi Phone Number, dan Reports To menjadi Manager. Saya hilangkan centang pada Master Shape karena tidak diperlukan lalu klik OK. Nah sekarang semua kolumnya sudah berubah. Pilih Person shape di Resource stencil dan Select All semua data di External Data window, ambil dan taruh di halaman seperti ini. Data Graphic tidak diperlukan maka pilih None.
Kali ini saya tinggal menghubungkan shape ini sesuai dengan kriteria manager to subordinate yakni aka nada koneksi antara atasan dengan bawahan sesuai dengan yang tertampil pada External Data window. Contohnya Suzanne Fine dan Clair Hektor adalah bawahannya Joseph Goldberg maka akan ada link antara manager dengan bawahannya. Untuk jenis connector – nya saya gunakan dari stencil Organization Chart dari template Business. Pergi ke menu File pilih Shapes dan Business dan klik Organization Chart, maka stencil baru muncul pada window Shapes disebelah kiri anda. Pilih Dotted-line report dan taruh di halaman sehingga shape ini akan tersimpan pada Master seperti demikian. Anda bisa lihat bahwa di Master tidak ada attribute Dotted-line report sebelum anda menaruhnya di halaman. Setelah anda menaruh Dotte-line report, delete shape itu.
Kini di halaman saya sudah ada shape yang terhubung ke table Organization Chart Data pada file DBSample.mdb serta connector nya yaitu dotted-line report namun belum ada koneksi diantara shape-nya.
Untuk melakukan Automating Connection ini, terlebih dahulu, saya harus membuat kode yang akan mencari shape yang kemudian dihubungkan satu sama lain. Buka VBA Editor dengan menekan tombol Alt dan F11, lalu buatlah 2 module baru. Di 2 module inilah saya akan menulis kode GetShapesByData dan ConnectSubOrdinates.
Sebelum saya terjun ke bagian kode, perlu saya jelaskan beberapa point. Visio sebetulnya menawarkan berbagai cara untuk memilih shape, contohnya, anda bisa pergi ke menu Edit, Select by Type untuk memilih shape berdasarkan tipe atau pergi ke layer dan pilih Edit, Find untuk mencari shape. Tidak seperti di kode, anda bisa gunakan metode CreateSelection untuk mendapatkan list shape berdasarkan, layer dan data graphic, dan master bahkan tipe. Sayangnya, tidak ada interface yang memiliki semua metode ini apalagi mencari shape tertentu sesuai dengan kriteria yang telah diberikan untuk mencari shape data tersebut. Oleh karena itu, kode yang akan saya tunjukkan kepada anda adalah metode cara pencarian shape, sehingga shape tersebut bisa dihubungkan secara otomatis. Tujuan utama dari kode GetShapesByData ini adalah untuk menyediakan kriteria pada shape data yang bisa memberikan identitas shape data tersebut pada halaman utama ataupun keseluruhan dokumen. Berikutnya, ia akan memperbolehkan group subshape pada tingkat pertama untuk ditemukan dalam pencarian dan anda bisa memberikan spesifikasi baik dengan memberikannya nama atau label pada Shape Data row.
Fungsi kode GetShapeByData memungkinkan anda untuk mendapatkan list shape yang memiliki nilai tertentu pada shape data, dan sekarang anda perlu menggunakan list shape tersebut untuk membuat koneksinya secara otomatis.
Sedangkan kode ConnectSubOrdinates akan mencari keseluruhan shape di halaman untuk memastikan bahwa shape tersebut memang betul betul Person shape yang memiliki attribute Name dan Manager shape data. Kemudian disetiap shape yang lolos kualifikasi, fungsi FindMySubordinates, yang memanggil fungsi GetShapesByData, mengembalikan list semua shape yang memiliki nilai Person sebagai manager, dan kemudian mengkoneksikan dirinya dengan connector dotted-line report yang menghubungkan antara si manager dengan bawahannya (subordinate). Terdapat 2 macam metode untuk penghubungan, yaitu AutoConnect atau GlueTo. Anda hanya bisa menggunakan salah satu metode saja dan tidak bisa menggunakannya secara bersamaan. Pastikan untuk memberikan tanda kutip komen bila tidak ingin menggunakannya.
Dan terakhir untuk menjalankan kode tersebut, buatlah UserForm dan berikan tombol dimana pada saat anda menekan tombol ini, metode ConnectSuOrdinates akan terpanggil.

0 comments:

Posting Komentar