Word 2003 de XML Elementlerinin Kullanımı

Word 2003 ’de XML Elementlerinin Kullanımı ve .NET İle Bağlantı Word 2003 "de XML Elementlerinin Kullanımı ve.NET İle BağlantıKüçük bir uygulama ile, Word 2003 de XML elementlerinin nasıl kullanılacağını ve .net arayüzünden bu elementlerle nasıl bağlantı kurulacağını göreceğiz. Bu örneği, .net ortamında word dökümanından çıktı almak için de projelerinizde kullanabilirsiniz.Örneğimizde, bir şirket içerisinde yapılan satın alma talepleri kullanılarak teklif mektubu oluşturacağız. Kullanılan veritabanı, tablo ve alan bilgileri aşağıdaki gibidir.Bu tablo satın alma yazılımı içerisinde kullanılan ve personelin malzeme talebinde bulunduğu bilgiler bu bölüme yazılmakta. Bizim amacımız onaylanan talepler için teklif mektup oluşturup bu mektubu teklif gönderimi için kullanmak.Hem windows hem de web ortamında, raporlama işlemini gerçekleştirebilirsiniz. Biz örneğimizde windows ortamını kullanacağız. C: sürücüsü altında Teklif adında bir klasör oluşturup windows projemizi buraya kaydedelim.İlk önce onaylanan kayıtları bir liste halinde görüntüleyelim. Bu işlem için formumuza DataGridView ve Button nesnesi ekleyip özelliklerini aşağıdaki gibi ayarlayalım. Nesne Adı DataGridView dgTeklifler Button btnTeklifYazdirOnaylanan talepleri listelemek için formun yüklenme olayında çağrılması için bir sub yazalım. Imports System.Data.SqlClient Public Class frmTeklif Sub OnaylanmisTeklifler() Dim cnn As New SqlConnection("data source=.;initial catalog=VSTO;integrated security=SSPI") Dim da As New SqlDataAdapter("Select * from tblMalzemeTalep Where talepOnayDurum=1", cnn) Dim ds As New DataSet da.Fill(ds) dgTeklifler.DataSource = ds.Tables(0) End Sub Private Sub frmTeklif_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load OnaylanmisTeklifler() End SubBu işlem sonucunda, formu çalıştırdığınızda ekrana onaylanan talepler gelmiş olur.Şimdi bu taleplerin çıktısını alacağımız word şemasını oluşturalım. Word şeması olarak XML şema kullanacağımız için, elementleri okuyacağımız bir xsd dosyası yaratmamız gerekiyor. Dosya içerisinde word dökümanında kullanacağımız alanları aşağıdaki gibi tanımlayıp kaydedilim. Xsd dosyasını notepad içerisinde oluşturup, C:Teklif dizinin altına wordDokumanSemasi.xsd olarak kaydedilim.Word programını açıp File > New komutunu uygulayalım. Paneldeki New Document bölümünden XML document seçeneğini seçelim. XML bağlantısını yapmak için, Templates and Add-Ins tıklayalım. Karşımıza çıkan pop-up pencereden Add Schema düğmesine tıklayalım ve az önce oluşturuğumuz xsd dosyasını ekleyelim. Ekleme işleminden sonra bu xsd dosyasının eklentisi için bir ad istenmekte; Alias bölümüne Word Dokuman Seması yazıp OK tıklayalım. Görüntü aşağıdaki gibi olacaktır.Bu işlemide tamamladıktan sonra xml elementleri dosyaya eklenir. Sol bölümdeki panelden xml elementlerini görebilirsiniz.Dosyamızı çıktı alanacak şekilde düzenleyelim. İstediğimiz metinleri yazıp ilişkilendireceğimiz alanları belirlemek için de xml elementlerini istediğimiz bölümlere sürükle bırak yapalım. Görüntü aşağıdaki gibidir.Bu dosyayı yine C:Teklif dizininin altına teklifMektup.dot adlandırarak kaydedilim.Not: Eğer word dökümanında xml elementlerinin görüntülenmesini istemiyorsanız Show XML tags in the document onayını kaldırınız.En son işlemimiz windows fomdaki listelenen bilginin worde aktarılmasına geldi. Kodlamaya geçmeden önce projemize Microsoft Word 11.0 Object Library referansını ekleyip import edelim. Imports word = Microsoft.Office.Interop.Word Imports System.XmlButton Click olayına, aşağıdaki gibi kodlarımızı yazalım.  "Kullanacağımız word nesnelerini tanımlıyoruz Dim uygulama As New word.Application Dim dokuman As New word.Document "şemanın görüntülenmesi için uygulamayı görünür yapıyoruz. uygulama.Visible = True "şemamızın dosya yolunu belirliyoruz. ve dokumanımızı oluşturuyoruz. Dim semaDosyasi As String = "C:TeklifTeklifMektup.dot" dokuman = uygulama.Documents.Add(semaDosyasi) "dokumandaki her bir elemeni bulup içeriğine "datagridview nesnesindeki seçili değeri yazdırıyoruz. For i As Integer = 1 To dokuman.XMLNodes.Count Select Case dokuman.XMLNodes.Item(i).BaseName Case "talepEden"   dokuman.XMLNodes.Item(i).Text = dgTeklifler.CurrentRow.Cells(1).Value Case "talepTarihi"   dokuman.XMLNodes.Item(i).Text = dgTeklifler.CurrentRow.Cells(2).Value Case "talepMalzemeKod"   dokuman.XMLNodes.Item(i).Text = dgTeklifler.CurrentRow.Cells(3).Value Case "talepMalzemeAdet"   dokuman.XMLNodes.Item(i).Text = dgTeklifler.CurrentRow.Cells(4).ValueEnd Select Next dokuman = Nothing uygulama = NothingProgramınızı çalıştırıp, datagridden istenilen kaydı seçtikten sonra düğmeye tıkladığınızda, teklif mektubunuzun çıktısını word belgesi olarak alabilirsiniz.

Döküman Arama

Başlık :

Kapat