Tabloyu Word'e Gönderme
Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner sekmesinde bir Opword birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.
Tablomu Worde aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1 vb. olabilir.
Opword ve OpdatasetModel bileşenlerinin özellikleriyle oynamanıza gerek yok Herşeyi Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.
Kod: Tümünü seç
var
Form1: TForm1;
MergeDoc: TOpWordDocument; //Değişkenimiz.
Daha Sonra Uygulamamız Kapatıldığında Wordle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki Kodu Yazın
Kod: Tümünü seç
if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa
MergeDoc.Free; //Word'ü Kapat
if OpWord1.Connected=true then //Word'e Bağlıysa
OpWord1.Connected:=false; //Bağlantıyı Kes
Aşağıdaki Kodda Verileri Word'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına Yazdım.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
//Worde Aktaracağımız Tabloyu OpDataSetModel Bileşeninin
//Dataset özelliğine Aktarıyoruz
OpDataSetModel1.Dataset:=IBQuery1;
if Assigned(MergeDoc) then //Word Daha Önce Açılmışsa
MergeDoc.Free; //Word'ü Kapat
if OpWord1.Connected=true then //Word'e Bağlıysa
OpWord1.Connected:=false; //Bağlantıyı Kes
ibquery1.Active:=true; //Tabloyu Aç
OpWord1.Connected := True; //Word'e Bağlan
OpWord1.DisplayScrollBars:=true; //Word'de Kaydırma Çubukları Görünsün
OpWord1.Visible := False; //Word'ü Gizle
MergeDoc := OpWord1.NewDocument; //Yeni Word Belgesi Aç
OpWord1.Visible := True; //Word'ü Göster
Opword1.WindowState:=wdwsMaximized; //Word'ü Tam Ekran Olarak Göster
//Tabloyu Word'e Aktar
with OpWord1.Documents[0].Tables.Add do
begin
OfficeModel :=OpDatasetModel1;
PopulateDocTable;
end;
ibquery1.Active:=false; //Tabloyu Aç
end;
Tabloyu Excel'e Gönderme
Bildiğiniz Şekilde Veritabanı Bağlantınızı Yapın. Component Palette OfficePartner sekmesinde bir OpExcel birde OpDataSetModel Bileşeni Varsayılan adlarıyla bırakıyorum.
Tablomu Excel'e aktaracak bileşenimin adı ibquery1. sizinki table1,query1,adoquery1 vb. olabilir.
OpExcel ve OpdatasetModel bileşenlerinin özellikleriyle oynamanıza gerek yok Herşeyi Kodla Halledeceğiz. Öncelikle Aşağıdaki Değişkeni Tanımlayın.
Kod: Tümünü seç
var
Form1: TForm1;
NewBook:TopExcelWorkBook;
Aşağıdaki Kodu OpExcel Bileşeninin BeforeWorkBookClose Olayınada yazın.
Kod: Tümünü seç
if Assigned(NewBook:) then //Excel Daha Önce Açılmışsa
NewBook:.Free; ///Excel'i Kapat
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
Daha Sonra Uygulamamız Kapatıldığında Excelle Bağlantımızı Kesildiğini Garantilemek için Formun OnClose Olayına Aşağıdaki Kodu Yazın.
Kod: Tümünü seç
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
Aşağıdaki Kodda Verileri Excel 'e gödermemizi sağlıyor. Ben Buttonun OnClick Olayına Yazdım.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Rng : TOpExcelRange;
begin
OpExcel1.Connected := True; //Excel'e Bağlan
OpExcel1.Visible := True; //Excel'i Göster
OpExcel1.WindowState:=xlwsMaximized; //Excel'i Tam Ekran Olarak Göster
IBQuery1.Active:=true; //Tabloyu Aç
NewBook:=OpExcel1.Workbooks.Add; //Yeni Excel Belgesi Aç ü
//Ayarları Yap
Rng := OpExcel1.Workbooks[0].Worksheets[0].Ranges.Add;
Rng.Name := 'www.delphidunyasi.com'; //Keyfinize Göre Bir isim Verin
Rng.Address := 'A1';
Rng.OfficeModel :=OpDataSetModel1; //Kaynak OpDataSetModel Bileşeni
//Excele Aktaracağımız Tabloyu OpDataSetModel Bileşeninin
//Dataset özelliğine Aktarıyoruz
OpDataSetModel1.Dataset :=IBQuery1;
OpExcel1.RangeByName['www.delphidunyasi.com'].Populate; //Tabloyu Aktar
OpExcel1.Workbooks[0].Worksheets[0].Activate; //Exceli Aktif Pencere yap
Rng.AsRange.Columns.AutoFit; //Kolon Genişlikleri Otomatik
IBQuery1.Active:=false; //Tabloyu Kapat
end;
Not : Alan Adlarını Field Editorden DisplayFormat Özelliği ile istediğiniz gibi değiştirebilirsiniz. örneğin alan adı DOGUM_TARIHI ise alanın DisPlayFormat özelliğine Doğum Tarihi Yazarsanız alan adı DisPlayFormat özelliğinde olduğu gibi görünür