Makale Özeti

Bu yazımda Smart Document teknolojisi ile akıllı dökümanları nasıl yaratabileceğimizi inceleyeceğiz.

Makale

C#,  Smart Document, Zen Sanatı

Bölüm 1

Bu yazımda Smart Document teknolojisi ile akıllı dökümanları nasıl yaratabileceğimizi inceleyeceğiz.

Microsoft Office ailesinin son üyesi olan Office 2003 ün xml yetenekleri sayesinde kullanabildiğimiz Smart Document yapısı Word 2003 ve Excel 2003’ün her türlü iş uygulamanıza (Line of Business) ön yüz olabilmesini sağlıyor.

Smart Document yaratmak için Word ve Excel açıldığında ekranın sağ veya sol tarafında gördüğümüz, yaklaşık olarak %20 lik bir alanı kaplayan Task Pane bölümünde aktif olarak çalışacak kod yazmamız gerekiyor.

Kendi uygulamamız için yaratacağımız Task Pane 2 şekilde çalışabilir:

1)    Kendi başına bir takım operasyonları yaparak kullanıcıya yardımcı olabilir ve döküman ile herhangi bir etkileşimde bulunmaz. Bu durumda bu yapıya persistent task pane adını veriyoruz.

2)    Task pane kısmına yazılan uygulama kendini barındıran döküman ile xml schema sayesinde veya office api ları sayesinde etkileşim içine girer. Bu etkileşim çift taraflı olabilir. Task pane içinde yapılan bir işlem dökümanı güncelleyebilir veya dökümanda yapılan bir işlem task pane de herhangi bir değişikliğe yol açabilir. Bu durumda ise yapımıza Smart Document adını veriyoruz.

Smart Document teknolojisinin en güzel yanı kullandığınız dilden vazgeçmek zorunda olmamanızdır, fakat dikkat edilmesi gereken kullandığınız uygulama geliştirme dilinin interface implementasyonu yapabilmesidir. Powerbuilder dilini kullanan yazılım geliştiriciler için üzgünüm J

Biz Smart Document yaratmak için C# kullanacağız.

Smart Document 4 bölümden oluşmaktadır.

1)    DLL

2)    XML Manifest

3)    XML Schema

4)    Word ve ya Excel Dökümanı

Şimdi bu parçaları sırayla inceleyelim:

DLL

DLL yaratmak için C# kullanacağımız için öncelikle bir C# Class Library projesi açalım.


Projemiz açıldıktan sonra Smart Document type library sini projemizin referanslarına eklememiz gerekiyor. Eklememiz gereken Microsoft Office Smart Tags 2.0 Type Library. Bu DLL i referans ekleme ekranının COM sekmesinde bulabilirsiniz.


DLL imizi projemize ekledikten sonra Smart Document interface ini implemente etmemiz gerekiyor.

public class Class1 : Microsoft.Office.Interop.SmartTag.ISmartDocument

      {

            public Class1()

            {

                  //

                  // TODO: Add constructor logic here

                  //

            }

      }

ISmartDocument interface i içinde yer alan tüm methodların class ımız içinde mutlaka bir karşılığının bulunması gerekiyor. Çok fazla method olduğu için bunu el ile tek tek yapmak yerine solution explorer--class view görüntüsünde bulunan Implement Interface seçeneğini kullanabilirsiniz.


IsmartDocument interface içerisindeki tüm methodları implemente etmemiz gerekmiyor ama en önemli 9 method ve özelliğin içinin doldurulması gerekir.

 

Özellik Adı

Açıklama

1

SmartDocXMLTypeCount property (Long)

Smart Document yapısında kaç adet bölüm olacağını belirler.

2

SmartDocXMLTypeName property (String)

Her Smart Document bölümü için unique bir isim belirler.

3

SmartDocXMLTypeCaption property (String)

Smart Document başlığını belirler.

4

ControlCount property (Long)

Smart Document içerisinde kaç adet kontrol olacağını belirler. Buton, label, seperator, image gibi kontrollerin sayısı belirlenir.

5

ControlID property (Long)

Her kontrol için unique bir ID belirler.

6

ControlTypeFromID property (C_TYPE)

Kontrollerin tipini belirlemek için kullanılır. Input  olarak alınan ID ye cevap olarak kontrol tipini dönecektir.Bu tipler IsmartDocument interface i içerisindeki C_TYPE objesinde belirtilmiştir.

7

ControlCaptionFromID property (String)

Task Pane üzerinde yer alan kontrollerin başlıklarını belirler.

8

ControlNameFromID property (String)

Kontrollerin ID leri yanı sıra Word ve ya Excel den kolay ulaşmak amacıyla daha anlaşılır isimler vermemizi sağlar.

9

SmartDocInitialize method

Smart Document Word ve ya Excel doyasına eklendiğinde, yüklendiğinde çalışır.

Smart Document projemize kaldığımız yerden bir sonraki yazımızda devam edeceğiz.

Hepinize İyi Çalışmalar