Fastreport ile raporlama sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
assoft

Fastreport ile raporlama sorunu

Mesaj gönderen assoft »

Veritabanı olarak interbase rapor aracı olarakta fastreport'u kullanıyorum.
Veritabanında ;

Kod: Tümünü seç

"MUSTERI"
"TAKSIT"
tablolarım var. Bir müşteriye en fazla 12 taksit atanabiliyor
TAKSIT tablosu MUSTERI tablosuna MUSTERI_NO alanı ile ilişkili buraya kadar bir sorun yok
yanlız raporda biraz kafam karıştı nasıl yapacağım hakkında detail band eklediğimde atıyorum 1 nolu müşterinin 12 adet taksidi varsa raporda 12 satır görünüyor buda hoş bir görüntü değil. Yapmak istediğim şey

Kod: Tümünü seç

[Master Band]//Müşteri Tablosu
==============================================
Müşteri No     Adı Soyadı          Adresi
1              Delphi Türkiye      www.delphiturkiye.com
==============================================

[Detail Band]// Taksit Tablosu
==============================================
Müşteri No     Ödeme_Tarihi1     Ödeme_Tarihi2     Ödeme_Tarihi3     Ödeme_Tarihi4     Ödeme_Tarihi5
1              01.02.2006        01.03.2006        01.04.2006        01.05.2006        01.06.2006
==============================================
böyle. Umarım açıklayıcı olabilmişimdir. Yada sizlerin bu konu hakkında ki görüşleriniz varsa nelerdir yazarsanız sevinirim kolay gelsin.
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Detay band için şöyle bir sorgu yapabilirsiniz :

Kod: Tümünü seç

select Ödeme_Tarihi1
from taksit
UNION
select Ödeme_Tarihi2
from taksit
UNION
select Ödeme_Tarihi3
from taksit
UNIONselect Ödeme_Tarihi1
from taksit
UNION
...
...
...
...
assoft

Mesaj gönderen assoft »

Biraz geç oldu kusuruma bakmayın.

Öncelikle tablo yapımı yazmadığım için özür dilerim...

Sevgili oguzturk74 verdiğin kodlar kullanıdığım tablo yapısına uymuyor malesef

Taksit Tablosu Alanları:

Kod: Tümünü seç

"ID" Integer,
"MUSTERI_NO" Integer,
"TAKSITTARIHI" Date,
"TAKSITMIKTARI" Double Precision
Sizin verdiğiniz SQL kodlarına göre Tablo yapısının bu şekilde olması gerekiyor sanırım :

Kod: Tümünü seç

"ID" Integer,
"MUSTERI_NO" Integer,
"TAKSITTARIHI1" Date,
"TAKSITMIKTARI1" Double Precision,
"TAKSITTARIHI2" Date,
"TAKSITMIKTARI2" Double Precision,
"TAKSITTARIHI3" Date,
"TAKSITMIKTARI3" Double Precision,
...
...
"TAKSITTARIHI12" Date,
"TAKSITMIKTARI12" Double Precision
Eğer tablo yapısı bu şekilde olmuş olsa sorun yok lakin öyle değil birde proje bitmiş durumda bu sorun dışında yoksa tablo yapısını değiştiridim ama bu çok meşakkatli olur.

Birde böyle birşey düşündüm ama sanırım olmadı :

Bir tablo daha oluşturdum Sizin verdiğiniz SQL kodlarına uygun olarak :

Kod: Tümünü seç

Create Table TAKSIT_RAPOR (
"ID" Integer,
"MUSTERI_NO" Integer,
"TAKSITTARIHI1" Date,
"TAKSITMIKTARI1" Double Precision,
"TAKSITTARIHI2" Date,
"TAKSITMIKTARI2" Double Precision,
"TAKSITTARIHI3" Date,
"TAKSITMIKTARI3" Double Precision,
...
...
"TAKSITTARIHI12" Date,
"TAKSITMIKTARI12" Double Precision
);
Buraya kadar bir sorun.
TAKSIT Tablosundaki kayıtlar bu şekilde :

Kod: Tümünü seç

ID	MUSTERI_NO	TAKSITTARIHI	TAKSITMIKTARI
===============================================
1              1                               15.02.2005                250
2              1                               15.03.2005                250
3              1                               15.03.2005                300
4              2                               15.01.2005                125
5              2                               15.02.2005                125
6              2                               15.03.2005                125
7              2                               15.03.2005                125
8              2                               15.01.2005                130
Bu kayıtları TAKSIT_RAPOR tablosuna aktarmak için nasıl bir döngü kurmam lazım.

Yada bu işin farklı bir yolu varmı ?
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Mesaj gönderen m_ekici »

Dün bende bununla ilgili uğraşmıştım. Bende de iki farklı alanın beraber dökülmesi gerekiyordu.

Kod: Tümünü seç

SELECT DONTAR AS TARIH,DONSAAT AS SAAT,SOZLESMENO AS INTEGER) AS VARCHAR(30)) AS SNO,CAST(CAST(BELGENO AS INTEGER) AS VARCHAR(40)) AS BNO FROM INF6_KIRA
UNION ALL
SELECT TARIH  AS TARIH,SAAT    AS SAAT,SURUCU AS SNO,ACIKLAMA AS BNO FROM INF6_BOSKM
bu şekilde işini görmesi lazım

Döküm için FastReportta bandın column seçeneği var. Bunu sığacak şekilde düzenlersen 12 satırlık taksidi bir satıra 6 tane gelecek şekilde yan yana döker.

kolay gelsin
assoft

Mesaj gönderen assoft »

Teşekkür ederim ama yazdığınız SQL kodlarını tam olarak anlayamadım biraz daha açıklama yapabilirseniz sevinirim...
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Mesaj gönderen m_ekici »

aslında benim yazdığım koda ihtiyacın yokmuş. Ben iki farklı tabloda alanları farklı olanları nasıl birleştierek döküm alabilirsin diye bir örnek göndermiştim.İlk yazdığın şekliyle problemi hallededbilirsin. sadece detail bandın COLUMN özelliğini 4 yaparsan istediğin şekilde döker.
assoft

Mesaj gönderen assoft »

Kusuruma bakmayın bu aralar pek nete uğrayamıyorum onun için cevap yazmakta gecikiyorum.
Şuan kullandığım bilgisayarda Delphi kurulu değil inşaallah dediklerinizi yapmaya çalışacağım.
Kolay Gelsin...
Cevapla