Kod: Tümünü seç
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
Kod: Tümünü seç
if OpExcel1.Connected=true then //Excel 'e Bağlıysa
OpExcel1.Connected:=false; //Bağlantıyı Kes
Fatih! yazdı: 11 May 2005 02:18 Öncelikle http://sourceforge.net/projects/tpofficepartner/ adresinden Office Partner Componentini indirip Kurun.Kullanımı Ücretsiz Bir Component. Kurduuktan Sonra Component Palette OfficePartner sekmesiyle yerini alacaktır. Bu bileşenleri kullanartak kolaylıkla Word ve Excel'e veri aktarabiliriz.
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.
arkadaşlar ne yaptım ise bu kodu çalıştıramadım. nerede yanlış yapıyorum (opword)?. hatalı parametre diye hata veriyor.acil yardım ltfnKod: 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