CreateDocumentNoUI Fonksiyonu

Tanım


Yazılım içindeki herhangi bir uygulamayı (document), ekranda gösterilmeden sadece bellekte yaratan fonksiyondur. Yaratma işlemi herhangi bir uygulama içinde yapılabilir. Genelde bir uygulamada çalışırken, bağlantılı başka bir uygulamayı, kullanıcı veri girişinden bağımsız işlemler yapmak gerektiğinde kullanılır. Uygulama kullanıcıya özgü yapılmış olan, ekran özelleştirmelerini dikkate alarak yaratılır.


Yaratılan uygulamaya, daha sonra kullanılmak üzere geçici bir ad verilebilir.Örneğin aynı uygulama bellekte birden fazla yaratılıp, birbilerinde veri kopyalamak için kullanılmak istenebilir. Bu durumda her yaratılan uygulamaya aynı olmamak üzere bir isim verilmelidir. Yazılım yaratılan uygulamaların farklığını atanan doküman adı ile ayırmaktadır. Yaratılan uygulamaların atandığı değişkenden adından ayırmaz. Bu fonksiyonla çağrılan uygulamalar, bellekten silinirkende yine ilgili doküman adı gereklidir.

Kullanım Şekli


Set DocumentNesnesi = Document.CreateDocumentNoUI(UygulamaKodu, DökümanAdı)

Ana Nesne


Document (Doc) nesnesinin elemanıdır. Bir doküman nesnesi ile kullanılmak zorundadır.

Parametreler


Parametre

Açıklama

UygulamaKodu

Arka planda, sadece bellekte kullanılacak Dinamo ERP uygulama kodu. Uygulama kodlarını, uygulamanın çalıştığı pencere başlığında bulabilirsiniz. Örneğin Cari Hesap Kartı uygulamasını çalıştırdığınızda, pencere başlığında gerek uygulamanın adını,  gerekse de uygulama kodunu (CARI00) görebilirsiniz.

DökümanAdı

Yaratılan uygulamanın, bellekte hangi isim ile saklanacağını belirtir. Bellekte, aynı uygulamadan birden fazla yaratıldığında, doküman adı kullanmak zorunludur. Sadece bir tane yaratılacaksa, boş bile bırakılabilir.

Geri Dönen Değerler


Bellekte, UygulamaKodu parametresinde verilen uygulama, sadece bellekte yaratılır. Bir document nesnesine atanarak (set edilerek) kullanılmalıdır.

Hatırlatmalar


Sadece yazılımda tanımlı olan uygulama kodları kullanılabilir.

Fonksiyon adındaki NoUI harfleri No User Interface kelimelerinden gelmektedir.

Bellekten, DeleteDocumentNoUI fonksiyonu ile yok edilir.

Örnek


Sub Makro1()

       CariKod = Trim(CARI20T.KOD(CARI20T.GetCurrentRow()))

       Kriter = "KOD='" & CariKod & "'"

       Set C00 = Doc.Select1("ABC002","CARI00",Kriter,"",1)

       IlgiliKisi = trim(C00.KONTAKTNAME_1)

       Mesaj = "Veritabanındaki " & CariKod & " cari hesap kodunun ilgili kişisi : " & IlgiliKisi

       DokumanAdi = "T_CARI00"

       UygulamaKodu = "CARI00"

       if CariKod <> "" and IlgiliKisi = "" then

               Set DocC00 = Doc.CreateDocumentNoUI(UygulamaKodu,DokumanAdi)

               If DocC00 Is Nothing Then        

                       Doc.MsgBox "Cari Hesap Kartı Uygulaması Yaratılamadı."

                   Exit Sub

               End If

               RetCode = DocC00.Load_Voucher(CariKod)

               Set CH00 = DocC00.GetTableObject("CARI00")

               CH00.KONTAKTNAME_1 = "Tanımsız"

               RetCode = DocC00.Save_Voucher()

               If retcode <> 0 Then

                       Doc.MsgBox "Kayıt Hatalı. Kayıt Yapılamadı. Hata No : " & RetCode

                       retcode = DocC00.LoadEmpty_Voucher

                       retcode = DocC00.DeleteDocumentNoUI(UygulamaKodu, DokumanAdi)

                         Exit Sub

               End If

                 retcode = DocC00.LoadEmpty_Voucher

               retcode = DocC00.DeleteDocumentNoUI(UygulamaKodu, DokumanAdi)

       end if

       Set C00 = Doc.Select1("ABC002","CARI00",Kriter,"",1)

       IlgiliKisi = trim(C00.KONTAKTNAME_1)

       Mesaj = Mesaj & Chr(13) & "Veritabanındaki " & CariKod & " cari hesap kodunun atanan ilgili kişisi : " & IlgiliKisi

       Doc.Msgbox(Mesaj)

End Sub




Yukarıdaki örnek makro, cari hesap fişinde çalışacak şekilde tanımlanmıştır. Kullanıcı üzerinde bulunduğu satırda makroyu çalıştırdığında, satırdaki cari hesabın kartındaki KONTAKTNAME_1 adlı alanın değeri boş ise, CARI00 (cari hesap kartı) uygulaması DocC00 adlı değişkene atanarak, bellekte oluşturulacaktır. Kullanıcı yaratılan bu uygulamayı ekranda göremez. Arka planda, cari hesap kartının KONTAKTNAME_1 alanına “Tanımsız” değeri atanarak kayıt işlemi gerçekleştirilir. Sonra tekrar ilgili alanın değeri sorulmuştur. Kullanıcı ekranında görmeden, cari hesap uygulaması çağrılmış, bazı işlemler yapılıp uygulamaya son verilmiştir. Örnek makro, hatasız çalıştığında sonucu, aşağıdaki mesaj kutusunda verilmiştir.




Paylaşım Makrosu