Yapacağımız örnek uygulamada, 2005 yılı içinde sitenize gelen
ziyaretçilerin aylara göre dağılımının grafiksel olarak
göstereceğiz. İşe ilk önce değişkenleri tanımlamakla başlıyoruz,
daha sonra ilk değerlerini verip grafik yüzeyini oluşturacağız.
Grafiğimiz için gerekli verileri ayarlayıp, grafiğin tipini
seçerek özelleştireceğiz. Son adımda ise grafiğimizi bir gif
dosyasına yazıp sayfada görüntüleyeceğiz.
Grafiğin dışında sayfada gerekli olan ay ve ziyaretçi dizileriyle
(ay, ziyaretci), gif dosyasının adını tutacak olan değişkeni (DosyaAdi)
tanımlıyoruz.
|
Dim
oGrafik ' Grafik Nesnesi
Dim oSabitler ' Sabitler Nesnesi
Dim Grafik ' Grafiğimiz
Dim SC, SCA ' Sıra koleksiyonu
Dim ay(11), ziyaretci(11) ' Veriler
Dim DosyaAdi ' Oluşturduğumuz grafik dosyasının adı |
Grafik nesnesini OWC’nin sürümüne göre daha önce belirttiğim gibi
tanımlıyoruz. Her iki tanımlamayı da yapmam mümkün değil. Bu
yüzden sunucunuzun OWC sürümünü öğrenmenizde fayda var.
Bilgisayarınızdaki sürüm ile sunucudaki sürüm farklıysa mutlaka
sunucuya göndermeden önce gerekli değişikliği yapmanız gerekir.
|
'set
oGrafik = CreateObject("OWC.Chart") 'Office 2000 ve XP için
set oGrafik = CreateObject("OWC11.Chartspace") 'Office 2003
için oGrafik.Clear()
oGrafik.Refresh()
set
oSabitler = oGrafik.Constants 'Önceden tanımlanmış sabitlere
erişiyoruz
set Grafik = oGrafik.Charts.Add 'Yeni bir grafik
tanımlıyoruz
set SC = Grafik.SeriesCollection 'Seri koleksiyonuna ait
tanımlamalar
set SCA = Grafik.SeriesCollection.Add |
Dizi olarak tanımladığımız değişkenleri kendimize göre
dolduruyoruz. Ay dizisini Ocak ayından başlayarak Aralığa kadar,
ziyaretçi dizisini ise değişimi görebileceğimiz şekilde
istediğimiz sayılarla dolduruyoruz.
Oluşturduğumuz verileri grafiğe bağlamamız gerekiyor. Bu yüzden
grafik nesnesine eklediğimiz grafiğin seri koleksiyonuna verileri
tanımlayacağız. Gerekli parametreler için daha önceden yine grafik
nesnesinden türettiğimiz sabitler nesnesini kullanıyoruz.
|
ay(0) =
"Ocak"
...
ziyaretci(0) = "140"
...
SCA.setData
oSabitler.chDimCategories, oSabitler.chDataLiteral, ay
SCA.setData oSabitler.chDimValues, oSabitler.chDataLiteral,
ziyaretci
SCA.setData oSabitler.chDimSeriesNames, oSabitler.chDataLiteral,
"Ziyaretçi Sayısı" |
OWC’de önceden tanımlanmış atmışın üzerinde grafik türü var. Fakat
bunları kabaca 13 gruba indirebiliriz. Bu 13 grup birbirinden
tamamen farklı. Grup içindeki grafikler ise birbirleri arasında
küçük değişiklikler gösteriyor. Ben örneğimizde chChartTypeArea3D
tipini kullanacağım.
Grafik.Type =
oSabitler. chChartTypeArea3D
İstenilen etkiyi oluşturabilmek için grafiğimizi özelleştirmemiz
(süslememiz) gerekir. Ayları gösterecek bir açıklama tablosu,
başlık, değerler gibi öğeleri grafiğimize ekliyoruz. Arena3D
tipinde bir grafik için aslında açıklama tablosuna gerek yok.
Zaten gösterilmeyecekte. Fakat pie tarzında bir grafik yapsaydık
ihtiyaç olacaktı. Bu yüzden çalışmak istediğiniz grafiği
belirleyerek ona uyun olarak özelleştirme yapmanız gerekiyor.
Arena3D için örneğin boyutlandırmada grafiğin duracağı eksen veya
derinlik gibi özellikleri de kullanılabilir.
|
Grafik.HasLegend
= TRUE 'Açıklama tablosu var
Grafik.HasTitle = TRUE 'Başlık var
Grafik.title.caption = "www.sitem.com
Ziyaretçi Sayısı"
Grafik.title.font.name = "Tahoma"
Grafik.title.font.size = 10
Grafik.title.font.bold = TRUE
SC(0).DataLabelsCollection.Add.Interior.Color
= RGB(255, 255, 255)
SC(0).DataLabelsCollection.Add.Font.Size = 8 |
Sondan bir önceki adımda gif dosyasını oluşturacağız. Gif yerine
istenirse JPG veya PNG de kullanılabilir. Dosya sistemini
kullanarak istenirse farklı isimlerde dosyalar oluşturulabilir,
kopyalanabilir veya silinebilir. Biz örneğimizi basitleştirmek
için bunları kullanmayacağız. Tek bir dosya üzerine her defasında
yazacağız ve sadece ilgili dosyayı okuyacağız. Yazma işlemi
gerçekleştireceğimiz için sistem tarafımdan hem yazma hem de okuma
izinleri olan bir dizinde çalışmanız gerekiyor.
DosyaAdi =
Server.MapPath(".") & "\" & "byte.gif"
oGrafik.ExportPicture DosyaAdi, "gif", 600, 400
Gif dosyası olarak oluşturduğumuz grafiğimizi HTML’de basit bir
resim gösterir gibi ekranda görüntüleyeceğiz. Burada dikkat
edilmesi gerek husus, oluşturulan resmin tam yolunun, adının ve
boyutlarının verilmesi gerektiği.
<img border="0"
src="byte.gif" width="600" height="400">
Grafiğimizi üzerine yerleştireceğimiz bir grafik nesnesi (oGrafik)
tanımlamamız gerekiyor. Bu grafik nesnesinin üzerinde istediğimiz
sayıda grafik tanımlayabileceğimizden bahsetmiştim. Biz sadece bir
tane grafik oluşturacağımız için bir adet grafik değişkeni
(Grafik) tanımlıyoruz. Grafik nesnesine ait sabit değerlerini
almak için bir de sabitler nesnesi (oSabitler) nesnesi
tanımlamamız gerekir. Son olarak da sıra koleksiyonuna ait
değişkenleri (SC, SCA) tanımlıyoruz. Bu değişkenler sayesinde
grafiğimizi özelleştirme şansına sahip olacağız. Sadece bu
tanımlama adımından da anlaşılacağı gibi nesneye dayalı
programcılık (OOP) yapacağız.