Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: DBGrid'de Seçilen Satırın Ekran Görüntüsü  (Okunma sayısı 1664 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı NeverFear

  • Yeni Üye
  • *
  • İleti: 11
  • Rep: +0/-0
  • Cinsiyet: Bay
DBGrid'de Seçilen Satırın Ekran Görüntüsü
« : 06 Ağustos 2008 08:59:57 »
//Not: Delphi 7.0 için;
//Eğer Quick Reports paketini kurmadıysanız Delphi 7.0\Bin dizini altındaki
//dclqrt70.bpl dosyasını eklemeniz gerekir.
//[Menüde Component\Install Packages...\Add sırasını izleyip]

//Delphi 5.0 - 6.0 için bu işlemi yapmanıza gerek yok.

//Form1 üzerine 1 DBGrid, 1 Table1, 1 DataSource,
//1 PrinterSetupDialog, 1 PrintDialog1 ve 1 Button ekleyin.

Kod: Delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ComCtrls, ExtCtrls, Mask,
  8.   QuickRpt, Qrctrls, Printers, QRPrntr, QrExtra;
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     DBGrid1: TDBGrid;
  13.     Table1: TTable;
  14.     DataSource1: TDataSource;
  15.     PrinterSetupDialog1: TPrinterSetupDialog;
  16.     PrintDialog1: TPrintDialog;
  17.     Button3: TButton;
  18.     procedure DBGrid1DblClick(Sender: TObject);
  19.     procedure Button3Click(Sender: TObject);
  20.   private
  21.     aReport: TQuickRep;
  22.   public
  23.     { Public declarations }
  24.   end;
  25.  
  26. var
  27.   Form1: TForm1;
  28.  
  29. implementation
  30.  
  31. uses Unit2;
  32.  
  33. {$R *.dfm}
  34.  
  35. procedure TForm1.DBGrid1DblClick(Sender: TObject);
  36. begin
  37. if DBGrid1.SelectedRows.Count > 0 then begin
  38. with DBGrid1.DataSource.DataSet do begin
  39. try
  40. Application.CreateForm(TForm2, Form2);
  41. if not DBGrid1.Fields[0].IsNull then Form2.QRLabel7.Caption:= DBGrid1.Fields[0].Value;
  42. //"if not DBGrid1.Fields[0..n].IsNull then" seklinde bir kod, programinizin
  43. //kirilmasini engelleyecektir. Bu, tum "Field" aktarimlari için gecerli ve sorun
  44. //cikarmayan, cikmasini kontrol altında tutan bir yontem oldugu düsüncesindeyim.
  45. if not DBGrid1.Fields[1].IsNull then Form2.QRLabel8.Caption:= DBGrid1.Fields[1].Value;
  46. if not DBGrid1.Fields[2].IsNull then Form2.QRLabel9.Caption:= DBGrid1.Fields[2].Value;
  47. if not DBGrid1.Fields[3].IsNull then Form2.QRLabel10.Caption:= DBGrid1.Fields[3].Value;
  48. if not DBGrid1.Fields[4].IsNull then Form2.QRLabel11.Caption:= DBGrid1.Fields[4].Value;
  49. if not DBGrid1.Fields[5].IsNull then Form2.QRLabel12.Caption:= DBGrid1.Fields[5].Value;
  50. if not DBGrid1.Fields[6].IsNull then Form2.QRLabel13.Caption:= DBGrid1.Fields[6].Value;
  51. if not DBGrid1.Fields[7].IsNull then Form2.QRLabel14.Caption:= DBGrid1.Fields[7].Value;
  52. if not DBGrid1.Fields[8].IsNull then Form2.QRLabel15.Caption:= DBGrid1.Fields[8].Value;
  53. Form2.QR.ShowProgress:= False;
  54. aReport:= Form2.QR;
  55. Printer.PrinterIndex:= -1;
  56. aReport.Preview;
  57. finally
  58. Form2.Free;
  59. end;
  60. end;
  61. end;
  62. end;
  63.  
  64. procedure TForm1.Button3Click(Sender: TObject);
  65. begin
  66.   Close;
  67. end;
  68.  
  69. end.
  70.  

Not: DBGrid1.Options dgRowSelect True olmalı.

     QR -> Form2 üzerindeki QuickRep1 bileşeni

////////////////////////////////////////////////////////////////////////////////
//Form2 üzerine 1 QuickRep (Bu kodlamaya göre Name = QR),
//QuickRep üzerine 2 adet QRBand,
//QRBand'lar üzerine listelenmesini istediğiniz Field'lerinizin 2 katı QRLabel ve
//başlıklarla dataların birbirine karışmaması için Shape ekleyiniz.
//Örnek;
//                     STOK LİSTESİ (QRLabel1)
//
// Stok No(QRLabel2)    Stok Adı(QRL3)   Birim(QRL4)   Brm.Miktar(QRL5) .........
//-------------------------------------------------------------------------------- Shape1
// StokNo(QRL6        StokAdi(QRL7       Birim(QRL8    BrmMiktar(QRL9   .........
//  -SağaDayalı)       -SolaDayalı)       -Ortalı)      -SağaDyalı)

Kod: Delphi
  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ExtCtrls, QuickRpt, QRPrntr, QRCtrls, Printers, DB, DBTables, QrExtra;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     QR: TQuickRep;
  12.     QRBand1: TQRBand;
  13.     QRLabel1: TQRLabel;
  14.     QRBand2: TQRBand;
  15.     QRLabel2: TQRLabel;
  16.     QRLabel3: TQRLabel;
  17.     QRLabel4: TQRLabel;
  18.     QRLabel5: TQRLabel;
  19.     QRLabel6: TQRLabel;
  20.     QRShape1: TQRShape;
  21.     QRLabel7: TQRLabel;
  22.     QRLabel8: TQRLabel;
  23.     QRLabel9: TQRLabel;
  24.     QRLabel10: TQRLabel;
  25.     QRLabel11: TQRLabel;
  26.     QRLabel12: TQRLabel;
  27.     QRLabel13: TQRLabel;
  28.     QRLabel14: TQRLabel;
  29.     QRLabel15: TQRLabel;
  30.     QRLabel16: TQRLabel;
  31.     QRLabel17: TQRLabel;
  32.     QRLabel18: TQRLabel;
  33.     QRLabel19: TQRLabel;
  34.   private
  35.     { Private declarations }
  36.   public
  37.     { Public declarations }
  38.   end;
  39.  
  40. var
  41.   Form2: TForm2;
  42.  
  43. implementation
  44.  
  45. uses Unit1;
  46.  
  47. {$R *.dfm}
  48.  
  49. end.
  50.  

Not: QRLabel7'den QRLabel15'e kadar olan bileşenler QRBand2 üzerinde.
     QRBand2.BandType "rbSummary" olmalı.
     
     QRBand1.BandType "rbTitle" olmalı.
     
     Form2 üzerindeki QR -> QuickRep1 bileşeni

İşinizi görmesi dileğimle,
Çalışmalarınızda başarılar dilerim.

NeverFear - kaheri579@hotmail.com
« Son Düzenleme: 06 Ağustos 2008 09:07:22 by NeverFear »
Bilgi paylaşımı ve öğrenmenin yaşı olmaz