• Merhaba Ziyaretçi.
    "Yapay Zeka Objektif " Fotoğraf Yarışması başladı. İlgili konuya  BURADAN  ulaşabilirsiniz. Sizi de bu yarışmada görmek isteriz...
Kaynak ikonu

Dynamics AX ile Excel Raporları Hazırlamak

~~
Bu makalemizde Dynamics AX üzerinden, hazır bir Excel şablonunu açıp ya da yeni bir Excel dosyayı yaratıp ilgili dosyaya nasıl veri gönderebildiğimizi inceleyeceğiz. Ayrıca bu iş için her zaman kullanabileceğimiz bir sınıf yaratacağız.
Dynamics AX paketi de, diğer Microsoft ürünleri gibi güçlü entegrasyon yeteneklerine sahiptir ve Windows"un COM nesnelerine erişebilir. Excel uygulamasına erişmek için üç seçeneğimiz bulunmaktadır :

1. Formumuza ActiveX nesnesi eklemek
2. COM nesneleri aracılığıyla erişmek
3. Dynmaics AX"in hazır sınıflarını kullanmak

Biz örneğimizde 3. yöntemi uygulayacağız. Çünkü AX sınıflarını kullanmak daha anlaşılır kod yazmamızı ve servis paketi güncellemeleri ile gelecekteki Office versiyonlarını desteklememizi sağlar.
Oluşturacağımız sınıfta 3 adet metod olacak :

void ExcelDosyasiYarat(FileName _dosyaAdi= "") : Sınıfımızdan yeni bir nesne yarattıktan sonra kullanacağımız metoddur. Eğer "_dosyaAdi" parametresini gönderirsek ilgili excel dosyasından yeni bir kopya açar. Parametre göndermezsek yeni bir Excel dosyası yaratır.
void VeriGonder(int satirNo, int sutunNo, AnyType deger) : Oluşturduğumuz Excel dosyasının ilgili satır ve sutununa gönderdiğimiz veriyi yazar.
void Goster(boolean _goster = NoYes::Yes) : Bilgilerini doldurduğumuz Excel dosyasını kullanıcıya göstermeye yarar.

Uygulamamızı yazmaya başlamak için Ctrl+D tuşlarına basarak Uygulama Nesne Ağacı"nı (AOT) açalım. Classes sekmesine gelelim ve sağ tuşa basarak "Yeni Class" seçeneğini işaretleyelim.
1000001062_resim1.jpg

Oluşturduğumuz yeni sınıfın ismini "ExcelRaporYaratici" olarak değiştirelim. Sınıf içerisindeki global değişkenlerimizi ilgili sınıfın "classDeclaration" adı verilen tanımlama metodunun içerisine yazıyoruz. Biz sınıfımızda

SysExcelApplication
SysExcelWorksheets
SysExcelWorksheet
SysExcelworkbooks
Filename

değişkenlerini kullanacağız. "SysExcel" ile başlayan değişkenler Dynamics AX"den Excel"e erişirken kullanacağımız sınıflarıdır. classDeclaration"ın son durumu aşağıdaki gibi olacaktır :
1000001062_resim2.jpg

Bir sonraki adımda gönderdiğimiz _dosyaAdi değişkenine göre varolan bir dosyadan yeni bir kopya yaratan, ya da parametre göndermezsek yeni bir Excel dosyası yaratan metodu yazacağız. Bunun için classDecleration üzerindeyken Ctrl+N komutunu kullanarak yeni bir metod yaratalım ve kodumuzu yazalım :

1000001062_resim3.jpg

stemcinin bilgisayarında Excel uygulaması olmamasına ya da herhangi bir olasılığına karşılık kodumuzu try-catch blokları arasına yazdık. SysExcelApplication::construct(); metodu ile Dynamics Ax, sisteminizde kurulu olan Excel uygulamasına ulaşır ve yeni bir Excel COM nesnesi yaratır. Eğer _dosyaAdi parametresini gönderdiysek sysExcelApplication.workbooks().add(...) metodu ile Excel uygulaması ilgili dosyayı açar, yoksa yeni dosya yaratır. SysExcelWorksheet nesnesi ile ilgili dosyanın 1. sayfasına erişeceğiz.

Excel uygulamasına erişip, ilgili sayfasına ulaştığımıza göre artık dosyanın ilgili satır ve sütununa istediğimiz veriyi yazabiliriz. Bunun için "VeriGonder" metodumuzu yazıyoruz :

1000001062_resim4.jpg

Bu metod sayesinde parametre olarak gönderdiğimiz satır ve sütunu gösteren excel hücresine (cell) gidiyor ve verimizi yazıyoruz. Her tür veriyi yazabilmek için deger parametresinin tipini "AnyType" olarak gönderdik.

Excel dosyamızı yarattık ve verileri doldurduk. Artık dosyamızı kullanıcıya gösterebiliriz. Bu işlem için de "Goster" metodumuzu yazıyor ve sınıfımızı tamamlıyoruz.
1000001062_resim5.jpg

azmış olduğumuz sınıfı herhangi bir uygulamamızdan rahatlıkla çağırabilir ve excel raporu yaratabiliriz. Yazmış olduğumuz sınıfı test etmek için yeni bir "job" yaratalım ve test edelim. Uygulama Nesne Ağacı"nda Jobs sekmesine gelin ve sağ tıklayın ve "Yeni Job" seçeneğini seçin.
1000001062_resim6.jpg

rneğimizde Maddeler tablosunu (Dynamics AX"de InventTable ismindeki tablo) dolaşıp madde numaralarını ve isimlerini Excel"e aktaracağız. Kodumuz resimdeki gibi olacaktır :

1000001062_resim7.jpg

Bu kodu çalıştırdığımızda aşağıdaki resimdeki Excel doyası ile karşılaşacağız.
1000001062_resim8.jpg

Projeyi ek dosyalar bölümünde bulabilir ve kendi uygulamalarınızda kullanabilirsiniz.
Gönderen
yesim434
Gösterim
572
İlk yayınlama
Son güncelleme
Değerlendirme
0.00 star(s) 0 oy

yesim434: diğer kaynakları

Top