27 Mart 2009 Cuma

iReport I

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.

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...

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
  • isim (name)
  • renk (color)
  • doğurganlık (breed)
  • aç (hungry)
Behaviour'ları
  • havlama (barking)
  • tipi (fetching)
  • kuyruk sallaması (wagging tail)
Mesala Bisiklet;

State'leri
  • current gear, (geçerli vites)
  • current pedal cadence, (geçerli pedal)
  • current speed (geçerli hız)
Behaviour'ları
  • changing gear, (vites değiştirme)
  • changing pedal cadence, (pedal ayarını değiştirme)
  • applying brakes (fren değiştirme)
object-oriented (nesneye Yönelik)programlamayı düşünmek için gerçek dünyadaki nesnelerle bağlantı kurmak en iyi yoldur.

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.

  1. Birimsellik: bir nesne için kaynak kodu yazılır ve bağımsız başka nesneler için kaynak kod korunur.

  2. Bilgi gizleme: Bir nesnenin yöntemleri ile etkileşimlie olarak, kendi iç uygulama detayları dış dünyadan gizli kalır.

  3. Kodu yeniden kullanım: Eğer bir nesne zaten yazılı varsa, kendi programınızda bu nesneyi kullanabilirsiniz.

  4. Hata ayıklama kolaylığı: Eğer bir nesne sorunlu olunca sadece nesneyi kaldırabilirsini. tüm maikne yerine sadece bir civatayı çıkarmış olursunuz.
alıntı. kaynak: java.sun

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ı.