Iseng-iseng ikutan WPF Champion Competition yang diumumkan di web site INDC, saya mencoba ikutan dengan membuat Organization Chart Viewer. Semoga apa yang saya buat bisa bermanfaat bagi orang lain, syukur-syukur bisa mendapatkan XDA Atom Life + Certificate from Microsoft, Amin. Program ini menampilkan organzation chart dari tabel Employee pada database Nortwind.
Karena kesibukan aktifitas, saya baru bisa memulai membuatnya pada akhir minggu kemaren. Kemaren seharian libur saya manfaatkan untuk menyelesaikan proyek ini (baca: dibuat dalam waktu 7 malam, satu hari). Alhamdulillah semalam selesai juga dan tadi pagi sudah saya kirim ke WPF Champion Competition organizer.
Organization chart ini saya buat dengan WPF dan LINQ to Entity Framework. Saya gunakan library Fluidkit untuk membut efek window glass dan animasi. Cuplikan layar aplikasi tersebut seperti terlihat pada gambar di bawah.
Sourcee-code, sql script dan panduan singkat dapat diunduh dari link di bawah.
Untuk menjalankan aplikasi tersebut, download database Nortwind dari Microsoft Download Center. Attach Nortwind.mdf ke SQL Server dan buat satu stored procedure di bawah untuk membatu mengambil data berdasaryan ReportTo employee.
/****** Object: StoredProcedure [dbo].[GetEmployeesByReportsTo] Script Date: 12/26/2008
02:37:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author : Ahmad Masykur
-- Create date : 22 December 2008
-- Description : Get employees filter by ReportTo field
-- =============================================
CREATE PROCEDURE [dbo].[GetEmployeesByReportsTo]
-- Add the parameters for the stored procedure here
@ReportsTo int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT [EmployeeID]
,[LastName]
,[FirstName]
,[Title]
,[TitleOfCourtesy]
,[BirthDate]
,[HireDate]
,[Address]
,[City]
,[Region]
,[PostalCode]
,[Country]
,[HomePhone]
,[Extension]
,[Photo]
,[Notes]
,[ReportsTo]
,[PhotoPath]
FROM [Northwind].[dbo].[Employees]
WHERE
([ReportsTo] = @ReportsTo) OR (([ReportsTo] IS NULL) AND (@ReportsTo IS NULL))
END
GO
Jika diperlukan, modifikasi connection string pada app.config sesuai dengan database Anda. Jika semua sudah dikonfigurasi dengan benar, applikasi siap digunakan.
Semoga bermanfaat.