Horizontal Tablo Nasıl Yapılır?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sapelli
Üye
Mesajlar: 3
Kayıt: 31 Ağu 2010 12:30

Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen sapelli »

Arkadaşlar hepinize kolay gelsin.
Elimde bi tablom var



Resim


Tabloya sürekli yeni veri geliyor.ISLEM_GRUBU alanı a-b-c-x-y-z şeklinde yeni alanlar da gelebiliyor.
bunu yatay şekilde gridde göstermem gerekiyor Daha önce böyle birşey yapmıştım Query'nin lookup özelliğini kullanarak fakat bu sefer öyle yapmak istemiyorum çok uzun sürüyor.Bu şekilde tablomu nasıl yaparım yardımcı olabilir misiniz?

Sonuç :
Resim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen Battosai »

Tablonuzu bir stringGrid içinde oluşturabilirsiniz...Verileri yükledikten sonra bir kaç procedure ile yapılabilir. Ayrıca böyle bir istek vardı galiba forumda bir araştırın isterseniz. Şimdi kod yazamıyorum zira çok üşeniyorum... :) Yapılması gereken tarih alanını döngü ile listenin ilk kolununa yazdırmak ve tekil işlem grubu sayısını belirleyip strinGGrid 'in kolon sayısını ayarlamak...sonra tekrar bir döngü ile eşleşen tarihlerdeki değerleri ilgili gurubun kolonuna yazmak...Böyle anlatınca ne kadar kolaymış :)
sapelli
Üye
Mesajlar: 3
Kayıt: 31 Ağu 2010 12:30

Re: Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen sapelli »

Kolon sayısı sabit olsa dediğiniz doğru başka bi tablomda onu yaptım zaten ama kolon sayısı sabit değil ISLEM_GRUBU alanına yeni veriler gelebiliyor...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen aslangeri »

s.a.
bunun için birkaç yol var.
biri
alan isimleri bir tabloda tutulur(tabi tip ve uzunluk bilgileride)
alan değerleri başka bir tabloda tutulur.
dinamik oluşturulan sql cümleleri ile veriler veritabanında çekilip gridde gösterilir.
değişiklik yapıldığı zaman gene dinamik oluşturulan sql cümleleri ile kayıtlar veritabanına kaydedilir.
her halukarda sql cümlelerini dinamik oluşturman gerekecek. :wink:
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen Battosai »

Kolon sayısı sabit olsa dediğiniz doğru başka bi tablomda onu yaptım zaten ama kolon sayısı sabit değil ISLEM_GRUBU alanına yeni veriler gelebiliyor...
Bu grup sayısını kendi yazacağınız bir method ile bulacaksınız...Mesela şöyle yapabilirsiniz...

Kod: Tümünü seç

Function KolonAdediHesapla:integer;
var
List:TStringList;
Adet:integer;
Begin
Adet:=0;
List:=TstringList.create;
table.first;
while Table.Eof do 
Begin
 if List.indexof(Table.fieldbyname('grup').asstring)<0 then //
    List.add(Table.fieldbyname('grup').asstring);
table.next;  
End;
Result :=list.count;
List.free;
End;
Bu fonksiyon sana tekil olarak işlem grup sayısını verecektir. En azından ben öyle umuyorum sen bi dene istersen :)
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Horizontal Tablo Nasıl Yapılır?

Mesaj gönderen orhancc »

sql ile case komutu ile pivot tablo tarzı birşey oluşturabilirsin.
Cevapla