quickreport ile verileri yan yana yazdırmak
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim:
quickreport ile verileri yan yana yazdırmak
merhaba arkadaşlar.
ben muhtarlık için bir program yazıyorum. programda yan yana yazdırma yapmam gereken alanlar var. bu işlemi nasıl yapabilirim?
bir de dikey label kullanmam gerekiyor. bu bileşeni bulabileceğim bir adres lazım.
yardımlarınızı bekliyorum.
şimdiden teşekkürler
saygılar ...
ben muhtarlık için bir program yazıyorum. programda yan yana yazdırma yapmam gereken alanlar var. bu işlemi nasıl yapabilirim?
bir de dikey label kullanmam gerekiyor. bu bileşeni bulabileceğim bir adres lazım.
yardımlarınızı bekliyorum.
şimdiden teşekkürler
saygılar ...
iyi çalışmalar.
quickrep in columns (yanlış yazmadıysam) özelliği ile raporu birden fazla sütunlu hale getirebilirsin. yanlız sütunları sıra ile dolduruyor. yani ikinci sütuna yazması için önce biirinci sütunu doldurması gerekiyor.
Label in word wrap özelliğini true yapıp genişliğini küçülttükten sonra birde harflerin arasına boşluk koyarsan ('ahmet --> a h m e t' gibi) alt alta yazdırabilirsin. Ama açılı olmuyor tabiki.
kolay gelsin.
quickrep in columns (yanlış yazmadıysam) özelliği ile raporu birden fazla sütunlu hale getirebilirsin. yanlız sütunları sıra ile dolduruyor. yani ikinci sütuna yazması için önce biirinci sütunu doldurması gerekiyor.
Label in word wrap özelliğini true yapıp genişliğini küçülttükten sonra birde harflerin arasına boşluk koyarsan ('ahmet --> a h m e t' gibi) alt alta yazdırabilirsin. Ama açılı olmuyor tabiki.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
-
- Üye
- Mesajlar: 3
- Kayıt: 16 Oca 2004 12:23
- Konum: İZMİR
iyi çalışmalar...
Quick report biraz hantaldır bence. eğer temin edebilirsen ısrarla fast report öneririm, çok daha esnek tasarım yapabilirsin.
Kabaca bir öneri olacak ama, quickreport gerçekten zaman kaybı...
İyi çalışmalar
Kabaca bir öneri olacak ama, quickreport gerçekten zaman kaybı...
İyi çalışmalar
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim:
daha geniş açıklama
öncelikle cevap veren bütün arkadaşlara teşekkürü borç bilirim.
fahrettin hocam. quickreport ile yazdırma işlemlerinde sizin de bildiğiniz gibi details kısmına yazılan dbtextlere karşılık gelen değerler hep aşağıya doğru sıralanmakta. aynı alana sahip bilgilerden bahsediyorum. örneğin adı alanına karşılık gelen değerler hep
adı
adı
adı
adı
adı
... olarak listeleniyor. benim amacım ise bir alana karşılık gelen değeri belirttiğim sayıya kadar yan yana yazdırmak.
adı adı adı adı adı ....
gibi . yardımcı olursanız sevinirim. sevgiler.
fahrettin hocam. quickreport ile yazdırma işlemlerinde sizin de bildiğiniz gibi details kısmına yazılan dbtextlere karşılık gelen değerler hep aşağıya doğru sıralanmakta. aynı alana sahip bilgilerden bahsediyorum. örneğin adı alanına karşılık gelen değerler hep
adı
adı
adı
adı
adı
... olarak listeleniyor. benim amacım ise bir alana karşılık gelen değeri belirttiğim sayıya kadar yan yana yazdırmak.
adı adı adı adı adı ....
gibi . yardımcı olursanız sevinirim. sevgiler.
Merhaba,
bildiğim kadarıyla QR'de böyle bir kullanım yok. Yok derken tabii ki kodla birşeyler yapılabilir ama çok uğraşmanız lazım.
Qr'de colums olayı var ama onda da önce sayfanın altına kadar yazılır, daha sonra diğer kolonda sayfanın başından başlanır. Sizin istediğiniz gibi değil yani.
Ne yapmak istediğinizi anlatırsanız daha değişik teknikler önerilebilir. Yani rapordan amaç ne?
Kolay gelsin.
bildiğim kadarıyla QR'de böyle bir kullanım yok. Yok derken tabii ki kodla birşeyler yapılabilir ama çok uğraşmanız lazım.
Qr'de colums olayı var ama onda da önce sayfanın altına kadar yazılır, daha sonra diğer kolonda sayfanın başından başlanır. Sizin istediğiniz gibi değil yani.
Ne yapmak istediğinizi anlatırsanız daha değişik teknikler önerilebilir. Yani rapordan amaç ne?
Kolay gelsin.
Detail bandın üzerine istediğin sayıda yanyana QRDBText oluştur ve hepsinin DataSet ve DataField'ını aynı yap.
Yok ben yanyana kaç tane olacağını programdan girmek istiyorum diyorsan (kağıt genişliği kadar) o zaman da tek bir QRDBText oluşturup ve istediğin sayı kadar for .. do ... döngüsü ile create et ve pozisyonlarını da birincisinden sonra gelecek şekilde ayarla..
Dikey label için ise QrAngel diye bir bileşen olması lazım.
QuSoft tan http://www.qusoft.com/Download3.html alabilirsin..
Ayrıca ReportBuilder da da rotate olayı var.
Yok ben yanyana kaç tane olacağını programdan girmek istiyorum diyorsan (kağıt genişliği kadar) o zaman da tek bir QRDBText oluşturup ve istediğin sayı kadar for .. do ... döngüsü ile create et ve pozisyonlarını da birincisinden sonra gelecek şekilde ayarla..
Dikey label için ise QrAngel diye bir bileşen olması lazım.
QuSoft tan http://www.qusoft.com/Download3.html alabilirsin..
Ayrıca ReportBuilder da da rotate olayı var.
- sarp_halit
- Üye
- Mesajlar: 241
- Kayıt: 17 Ara 2003 04:30
- Konum: Cennet Fethiye
- İletişim:
teşekkür ederim
ilgi ve alakanızdan ötürü teşekkür ederim arkadaşlar. önerilerinizi denedikten sonra takıldığım bir nokta olursa sizlerle yine paylaşırım tekrar teşekkür ederim.
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
SA
Dikey label için component aramanıza gerek yok.
Basitçe şunu yapabilirsiniz:
- Label ın caption ını yazarken herbir harf arasında 2 boşluk bırakın,
- Label ın Wordwrap özelliğini True yapın,
- Sonra formun üzerindeki labelın uzunluğunu tek bir harf (tabiki ilk harf) gözükene kadar kısaltın,
- En sonunda programı koşturun.
Dikey Label hazır..
Saygılar.
Dikey label için component aramanıza gerek yok.
Basitçe şunu yapabilirsiniz:
- Label ın caption ını yazarken herbir harf arasında 2 boşluk bırakın,
- Label ın Wordwrap özelliğini True yapın,
- Sonra formun üzerindeki labelın uzunluğunu tek bir harf (tabiki ilk harf) gözükene kadar kısaltın,
- En sonunda programı koşturun.
Dikey Label hazır..
Saygılar.
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
Re: quickreport ile verileri yan yana yazdırmak
Kaynak: http://www.experts-exchange.com/Program ... 87790.html
CreateRotatedFont işlevini bir kere tanımlıyoruz. Daha sonra, açılı yazdırmak istediğimiz tüm QrLabel ve QrDbText bileşenlerimiz için, herbirinin OnPrint olayından şu şekilde çağırıyoruz. Örneğin, QrDbText1 isimli bileşenimiz olsun:
Gördüğünüz gibi olay içinde Sender üzerinden erişim var. Yani artık diğer QrDbText ler için aynı olayı tanımlamamıza gerek yok. Sadece ObjectInspector dan OnPrint için, QrDbTExt1Print seçmemiz yeterli.
QrLabel için ise kod şu şekilde olur:
Ve son olarak,
CreateRotatedFont işlevini bir kere tanımlıyoruz. Daha sonra, açılı yazdırmak istediğimiz tüm QrLabel ve QrDbText bileşenlerimiz için, herbirinin OnPrint olayından şu şekilde çağırıyoruz. Örneğin, QrDbText1 isimli bileşenimiz olsun:
Kod: Tümünü seç
procedure TqrpMain.QrDbText1Print(sender: TObject; var Value: String);
begin
TQRDBText(Sender).Font.Handle :=CreateRotatedFont(
TQRDBText(Sender).Font, 90);
end;
QrLabel için ise kod şu şekilde olur:
Kod: Tümünü seç
procedure TqrpMain.QrDbText1Print(sender: TObject; var Value: String);
begin
TQRLabel(Sender).Font.Handle :=CreateRotatedFont(
TQRLabel(Sender).Font, 90);
end;
Kod: Tümünü seç
function CreateRotatedFont(Font: TFont; Degrees: Integer): HFONT;
//[url]http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_23587790.html[/url]
var
LF : TLogFont;
begin
FillChar(LF, SizeOf(LF), #0);
with LF do
begin
LFWidth := 0;
LFOrientation := 0;
LFHeight := Font.Height;
LFEscapement := Degrees*10;
LFCharSet := DEFAULT_CHARSET;
LFItalic := Byte(fsItalic in Font.Style);
LFUnderline := Byte(fsUnderline in Font.Style);
LFStrikeOut := Byte(fsStrikeOut in Font.Style);
if fsBold in Font.Style then LFWeight := FW_BOLD
else LFWeight := FW_NORMAL;
StrPCopy(LFFaceName, Font.Name);
LFQuality := DEFAULT_QUALITY;
LFOutPrecision := OUT_DEFAULT_PRECIS;
LFClipPrecision := CLIP_DEFAULT_PRECIS;
case Font.Pitch of
fpFixed: lfPitchAndFamily := FIXED_PITCH;
fpVariable: lfPitchAndFamily := VARIABLE_PITCH;
else
LFPitchAndFamily := DEFAULT_PITCH;
end;
end;
Font.Size := 5; //---
Result := CreateFontIndirect(LF);
end;
Ömür Ölmez