bu bilgileri iReport öğrenme aşamasında bir yerlere not almak yerine her zaman ulaşabileceğim yer olan blog sitesine koyuyorum :)
iReport, rapor tasarımcıları ve geliştiricileri için grafiksel bir rapor aracıdır. Yani bir tür raporlama programı.
şuan bendeki son sürümü iReort 3.5.0 indirmek için tıklayınız. işletim sisteminize göre seçip indirebilirsiniz.
veritabanı olarak; postgres kullanıyoruz.
(Java & iReport & JasperReport & JSF & Seam) ~ {Aklımdan gelip geçen java ile ilgili herşey :) }
27 Mart 2009 Cuma
5 Mart 2009 Perşembe
Pie Chart (Pasta Grafik)
Her ne kadar programcılık eğitimi almış olsanızda uygulamaya geldiğinde olaylar biraz zorlaşıyor gibi.
Programlamaya balıklama daldım sayılır.
Şirketimizin ücretsiz olarak sunmuş olduğu tazminat hesaplama modulüne ilaveten bir pasta grafik koyaklım dedik. Dedik ama nasıl olacak o iş diye de düşünmeden edemedim tabi.
neyse sonuç olarak şuan da uygulamamızda bir adet pasta grafik var.
adres : Hesap Modülü
bunu yaparken önce bir html sayfasında deneme yaptım. Html'de bu grafik nasıl ortaya çıkar diye.
Tabi bunu oluşturmak için de yabancı bir sitede oluşturulmuş bir kaynaktan yardım aldım.
site: http://www.lutanho.net/diagram/ sol taraftaki pie Chart ı seciyoruz.
bu örnekten yararlanarak benim oluşturduğum html dosyası ise şöyle :
devamı gelecek...
Programlamaya balıklama daldım sayılır.
Şirketimizin ücretsiz olarak sunmuş olduğu tazminat hesaplama modulüne ilaveten bir pasta grafik koyaklım dedik. Dedik ama nasıl olacak o iş diye de düşünmeden edemedim tabi.
neyse sonuç olarak şuan da uygulamamızda bir adet pasta grafik var.
adres : Hesap Modülü
bunu yaparken önce bir html sayfasında deneme yaptım. Html'de bu grafik nasıl ortaya çıkar diye.
Tabi bunu oluşturmak için de yabancı bir sitede oluşturulmuş bir kaynaktan yardım aldım.
site: http://www.lutanho.net/diagram/ sol taraftaki pie Chart ı seciyoruz.
bu örnekten yararlanarak benim oluşturduğum html dosyası ise şöyle :
devamı gelecek...
3 Mart 2009 Salı
Object nedir (What is an object)?
http://java.sun.com/docs/books/tutorial/java/concepts/index.html
java.sun'ın sitesinden öğrendiklerim, bir nevi çeviri gibi oldu, anlayabildiğim kadarıyla...
What Is An Object (Nesne NEdir?) (State and Behavior olmalı)
Object (Nesne'ler), object-oriented technolojinin anahtarı gibidir. Bildiğimiz gibi java ile ilgili ne kadar araştırma yaparsanız yapın her yer de hava nesne tabanlıdır object oriented teknolojidir gibi laflar okumuşsunuzdur.
Diyor ki, Etrafınıza bir göz atın, gerçek dünyadaki çevrenizdeki nesneleri düşünün, sıran, masan, köpeğin, televizyonun, bisikletin... gerçek dünyadaki nesneler iki karekter taşır.: State ve Behaviour. Hepsininde bir state'i ve behaviour'ı olmak zorundadır ve vardır.
Mesala Köpek:
State'leri
State'leri
gerçek dünyadaki nesnelere odaklanın, düşünün ve kendinize şu iki soruyu sorun:
Bu nesnenin ne gibi durumları (state) var? ve
Bu nesne ne gibi davranışlar (behaviour) sergileyibilir?
Bunları bir kağıda yazmayı deneyin.
Mesala masa lambası örneğini verimiş:
Masalambası iki duruma (state) sahiptir : açık, kapalı (on,off)
iki davranışa (behaviour'a): açmak, kapatmak (turn on, turn off)
ama masaüstü radyonuz varsa bunlara ilaveten ekstra state'leri vardır. ( on ,off, current volume, current station,
ayrıca ekstra behaviour'ı (turn on, turn off, increase volume (ses açma), decrease volume(ses kısma), seek (arama), scan (tarama), and tune (ayar)
ayrıca bazen, bazı nesnlerin özelliklerini başka nesnelerinde içerdiğini görürsünüz.
Bir yazılım nesnesi
.....
Bir bisiklet düşünün :
Bisiklet yazılım nesnesi olarak modellenmiştir.
State'lerini alalım : (geçerli vites - current gear, pedal ritmi- current pedal cadence, geçerli hız - current speed)
Bisikleti kullanacak diğer kullanıcıları kontrol için State (durum) değiştirmek için bir metod(method) geliştirmeliyiz. Mesala bisiklet 6 vitesli olsun. (Kullanıcıların bunun altına indiğinde veya üstüne çıktığında uyarılmasını istiyoruz gibi.)
kullanıcı vitesi değiştirdiğinde , 1'den az ve 6'dan fazla girildiğinde reddedecek bir method yazabiliriz.
Nesneye yönelik kod yazılmasının birkaç faydası vardır.
java.sun'ın sitesinden öğrendiklerim, bir nevi çeviri gibi oldu, anlayabildiğim kadarıyla...
What Is An Object (Nesne NEdir?) (State and Behavior olmalı)
Object (Nesne'ler), object-oriented technolojinin anahtarı gibidir. Bildiğimiz gibi java ile ilgili ne kadar araştırma yaparsanız yapın her yer de hava nesne tabanlıdır object oriented teknolojidir gibi laflar okumuşsunuzdur.
Diyor ki, Etrafınıza bir göz atın, gerçek dünyadaki çevrenizdeki nesneleri düşünün, sıran, masan, köpeğin, televizyonun, bisikletin... gerçek dünyadaki nesneler iki karekter taşır.: State ve Behaviour. Hepsininde bir state'i ve behaviour'ı olmak zorundadır ve vardır.
Mesala Köpek:
State'leri
- isim (name)
- renk (color)
- doğurganlık (breed)
- aç (hungry)
- havlama (barking)
- tipi (fetching)
- kuyruk sallaması (wagging tail)
State'leri
- current gear, (geçerli vites)
- current pedal cadence, (geçerli pedal)
- current speed (geçerli hız)
- changing gear, (vites değiştirme)
- changing pedal cadence, (pedal ayarını değiştirme)
- applying brakes (fren değiştirme)
gerçek dünyadaki nesnelere odaklanın, düşünün ve kendinize şu iki soruyu sorun:
Bu nesnenin ne gibi durumları (state) var? ve
Bu nesne ne gibi davranışlar (behaviour) sergileyibilir?
Bunları bir kağıda yazmayı deneyin.
Mesala masa lambası örneğini verimiş:
Masalambası iki duruma (state) sahiptir : açık, kapalı (on,off)
iki davranışa (behaviour'a): açmak, kapatmak (turn on, turn off)
ama masaüstü radyonuz varsa bunlara ilaveten ekstra state'leri vardır. ( on ,off, current volume, current station,
ayrıca ekstra behaviour'ı (turn on, turn off, increase volume (ses açma), decrease volume(ses kısma), seek (arama), scan (tarama), and tune (ayar)
ayrıca bazen, bazı nesnlerin özelliklerini başka nesnelerinde içerdiğini görürsünüz.
Bir yazılım nesnesi
.....
Bir bisiklet düşünün :
Bisiklet yazılım nesnesi olarak modellenmiştir.
State'lerini alalım : (geçerli vites - current gear, pedal ritmi- current pedal cadence, geçerli hız - current speed)
Bisikleti kullanacak diğer kullanıcıları kontrol için State (durum) değiştirmek için bir metod(method) geliştirmeliyiz. Mesala bisiklet 6 vitesli olsun. (Kullanıcıların bunun altına indiğinde veya üstüne çıktığında uyarılmasını istiyoruz gibi.)
kullanıcı vitesi değiştirdiğinde , 1'den az ve 6'dan fazla girildiğinde reddedecek bir method yazabiliriz.
Nesneye yönelik kod yazılmasının birkaç faydası vardır.
- Birimsellik: bir nesne için kaynak kodu yazılır ve bağımsız başka nesneler için kaynak kod korunur.
- Bilgi gizleme: Bir nesnenin yöntemleri ile etkileşimlie olarak, kendi iç uygulama detayları dış dünyadan gizli kalır.
- Kodu yeniden kullanım: Eğer bir nesne zaten yazılı varsa, kendi programınızda bu nesneyi kullanabilirsiniz.
- Hata ayıklama kolaylığı: Eğer bir nesne sorunlu olunca sadece nesneyi kaldırabilirsini. tüm maikne yerine sadece bir civatayı çıkarmış olursunuz.
BigDecimal, 2, ROUND_HALF_UP
Birkaç tane BigDecimalli değeri önce 100 ile çarpıp herhangi bir BigDecimal'e bölmek istedim fakat, debug modda hatanın nerede olduğunu anlamaya çalışırken, o satırları direk atlıyordu...
Bunun nedeni ise devirli sayılar yüzünden işlemin kesin bir sonucu olmamasıydı.
Devirli sayırları düzeltmek için ise ; BigDecimal, 2, ROUND_HALF_UP kalıbını kullanıyoruz. Bu devirli sayılarda yuvarlama yapıyor. Mesala : 72.9944 lu bir sayıyı 73 olarak ayarlıyor.
yapmak istediğim kod işlemi
netX= net.multiply(100).divide(ykNetToplam);
gibi bir satırdı. Tüm değişkenlerin değerleri gelmesine rağmen sonuc netX'e aktarılmıyordu.
Bunun devamına ise:
netX= net.multiply(100).divide(ykNetToplam,2, BigDecimal.ROUND_HALF_UP);
değerlerini atadık. ve sorunsuz bir sekilde hata kontrolü (debug) yapıldı.
Bunun nedeni ise devirli sayılar yüzünden işlemin kesin bir sonucu olmamasıydı.
Devirli sayırları düzeltmek için ise ; BigDecimal, 2, ROUND_HALF_UP kalıbını kullanıyoruz. Bu devirli sayılarda yuvarlama yapıyor. Mesala : 72.9944 lu bir sayıyı 73 olarak ayarlıyor.
yapmak istediğim kod işlemi
netX= net.multiply(100).divide(ykNetToplam);
gibi bir satırdı. Tüm değişkenlerin değerleri gelmesine rağmen sonuc netX'e aktarılmıyordu.
Bunun devamına ise:
netX= net.multiply(100).divide(ykNetToplam,2, BigDecimal.ROUND_HALF_UP);
değerlerini atadık. ve sorunsuz bir sekilde hata kontrolü (debug) yapıldı.
Etiketler:
BigDecimal,
ROUND_HALF_UP
Kaydol:
Kayıtlar (Atom)