Stringgrid yazdırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Stringgrid yazdırma
Stringgrid içeriğini yazdırma sorunu yaşıyorum
rave, quickreport, fast report farketmez
birçok sitede var ama memo alanına yanyana ekliyor
çıktıyı ızgara şeklinde almak veya altalta geritmek istiyorum.
rave, quickreport, fast report farketmez
birçok sitede var ama memo alanına yanyana ekliyor
çıktıyı ızgara şeklinde almak veya altalta geritmek istiyorum.
Re: Stringgrid yazdırma
stringgriddeki verileri bir memtable'a atabilirsiniz. diğer basit seçenek ise, listbox kullanmak. memo yerine listbox kullanın ve runtimeda çizgiler oluşturun. ben olsam memtable yaparım.
Re: Stringgrid yazdırma
birde ravereports da tableprinter var bu tablo şeklinde yazdırmak için mi kullanılıyor
memtable ve listbox atadıktan sonra memtable nasıl yazdırılıyor kısaca anlatabilirmisiniz.
memtable ve listbox atadıktan sonra memtable nasıl yazdırılıyor kısaca anlatabilirmisiniz.
Re: Stringgrid yazdırma
mentable ve listbox ayrı seçenekler. Önce list box anlatayım. Raporunuza stringgrid deki kadar list box ekleyin. Raporu ekrana basmadan önce, bu listboxlara verileri yazın.
Re: Stringgrid yazdırma
sonra yazıcı çıktısı nasıl alınacak
Re: Stringgrid yazdırma
anlamayamadım ama ismini verdiğiniz raporlama bileşnlerini bildiğinizi varsaymıştım ben. bu rapor bileşenlerinden her hangi birinin kullanımı kitaplardan yada pdf lerden öğrenebilrisiniz.
Re: Stringgrid yazdırma
raporlama konusunda pek bilgim yok, bileşenlerin birçoğunu bilmiyorum. malesef yerli kaynaklarda da hep üzerinden şöyle bir geçmişler
rave report ta tableprinter adında bir bileşen var işimi görecceğini tahmin ediyorum fakat kullanımını bilmiyorum.
raveraport ve qreportta edit lerdeki değerleri göndererek yazdırabiliyorum ama stringgrid içeriğini yazdıramadım.
rave report ta tableprinter adında bir bileşen var işimi görecceğini tahmin ediyorum fakat kullanımını bilmiyorum.
raveraport ve qreportta edit lerdeki değerleri göndererek yazdırabiliyorum ama stringgrid içeriğini yazdıramadım.
Re: Stringgrid yazdırma
benzer şekilde stringriddeki verileri listboxlara atacaksınız. raporunuza stringgriddeki sütun sayısı kadar yan yana listbox ekleyin. her bir kolondaki verileri ilgili listboxa ekleyin.
Re: Stringgrid yazdırma
listboxa ekleme işlemi kolay ondan sonra oradan nasıl yazdıracaz.
bu arada dos ortamında çıktı almaya çalışıyorum aşağıdaki komutlar işe yaradı
printer.BeginDoc ;
printer.canvas.Font.Name:=TFontName('arial') ;
printer.Canvas.Font.Style:=[fsbold];
printer.Canvas.Font.Size:=14;
printer.Canvas.TextOut(400,50,'DDD LTD.ŞTİ.');
printer.canvas.Font.Name:=TFontName('Courier New') ;
printer.Canvas.Font.Style:=[fsbold];
printer.Canvas.Font.Size:=10;
listbox1.Items:=printer.Printers;
printer.Canvas.TextOut(100,200,'TARİH : '+ datetostr(dateof(now))+' '+timetostr(timeof(now)));
printer.Canvas.TextOut(100,300,edit1.text);
printer.Canvas.textout(800,300,edit2.Text);
printer.Canvas.TextOut(100,400,'ADRES :'+edit3.text+' '+edit4.text);
printer.Canvas.textout(100,500,' '+edit5.Text+' '+edit6.Text+' '+edit7.Text+' '+edit8.text);
printer.Canvas.TextOut(100,700,'SİPARİŞ AD. FİY. TUT. ' );
for x:=1 to 9 do begin
for y:=1 to stringgrid1.rowcount-1 do begin
printer.Canvas.TextOut(dizicol[x],y*100+700,stringgrid1.cells[x,y]);
end;
end;
printer.Canvas.TextOut(1550,stringgrid1.RowCount*100+700,'-------------');
printer.Canvas.TextOut(1550,stringgrid1.RowCount*100+800,'TOPLAM :'+edit14.text);
printer.EndDoc;
end;
bu arada dos ortamında çıktı almaya çalışıyorum aşağıdaki komutlar işe yaradı
printer.BeginDoc ;
printer.canvas.Font.Name:=TFontName('arial') ;
printer.Canvas.Font.Style:=[fsbold];
printer.Canvas.Font.Size:=14;
printer.Canvas.TextOut(400,50,'DDD LTD.ŞTİ.');
printer.canvas.Font.Name:=TFontName('Courier New') ;
printer.Canvas.Font.Style:=[fsbold];
printer.Canvas.Font.Size:=10;
listbox1.Items:=printer.Printers;
printer.Canvas.TextOut(100,200,'TARİH : '+ datetostr(dateof(now))+' '+timetostr(timeof(now)));
printer.Canvas.TextOut(100,300,edit1.text);
printer.Canvas.textout(800,300,edit2.Text);
printer.Canvas.TextOut(100,400,'ADRES :'+edit3.text+' '+edit4.text);
printer.Canvas.textout(100,500,' '+edit5.Text+' '+edit6.Text+' '+edit7.Text+' '+edit8.text);
printer.Canvas.TextOut(100,700,'SİPARİŞ AD. FİY. TUT. ' );
for x:=1 to 9 do begin
for y:=1 to stringgrid1.rowcount-1 do begin
printer.Canvas.TextOut(dizicol[x],y*100+700,stringgrid1.cells[x,y]);
end;
end;
printer.Canvas.TextOut(1550,stringgrid1.RowCount*100+700,'-------------');
printer.Canvas.TextOut(1550,stringgrid1.RowCount*100+800,'TOPLAM :'+edit14.text);
printer.EndDoc;
end;
Re: Stringgrid yazdırma
siz galiba listbox'ı formunuza ekliyorunuz. listbox'ı rapor tasarımına eklemelisiniz.
Re: Stringgrid yazdırma
forma ekledim
rapor tasarımında nasıl kullanıldığını bilmiyorum
bir sıkıntı daha oldu
bu kodlarla yazdıramayınca hata veriyor
yazıcı aktüf mi değil mi nasıl kontrol edilir.
rapor tasarımında nasıl kullanıldığını bilmiyorum
bir sıkıntı daha oldu
bu kodlarla yazdıramayınca hata veriyor
yazıcı aktüf mi değil mi nasıl kontrol edilir.
Re: Stringgrid yazdırma
Umarım faydası olur
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Re: Stringgrid yazdırma
Selâmlar,
Örnek Fonksiyon :
Kullanımı :
İyi çalışmalar,
Örnek Fonksiyon :
Kod: Tümünü seç
procedure StringGridYazdir(AGrid: TRzStringGrid);
var
MaxSizes: array of Integer;
column, row, sx, sy, LeftSpace: Integer;
begin
SetLength(MaxSizes, AGrid.ColCount);
for column := 0 to AGrid.ColCount - 1 do
MaxSizes[column] := 0;
for row := 0 to AGrid.RowCount - 1 do
for column := 0 to AGrid.ColCount - 1 do
if Printer.Canvas.TextWidth(Agrid.Cells[column, row]) > MaxSizes[column] then
MaxSizes[column] := Printer.Canvas.TextWidth(Agrid.Cells[column, row]) + 10;
Printer.BeginDoc;
LeftSpace := 10; // sol bosluk
sx := LeftSpace;
sy := 0;
for row := 0 to AGrid.RowCount - 1 do
begin
for column := 0 to AGrid.ColCount - 1 do
begin
Printer.Canvas.TextOut(sx, sy, AGrid.Cells[column, row]);
sx := sx + MaxSizes[column];
end;
sx := LeftSpace;
sy := sy + Printer.Canvas.TextHeight('A') + 2;
end;
Printer.EndDoc;
end;
Kod: Tümünü seç
StringGridYazdir(StringGrid1)