MsgBox Fonksiyonu

Tanım


Bir uygulamadaki mesajlarının; mesaj kutusu aracılığıyla veya baskı öncesi ekranda toplu olarak göstermeye yarayan bir fonksiyondur.


Mesaj kutusu şeklindeki kullanımlarda sadece OK (Tamam) tuşu vardır. Mesaj kutusunun  başlığı bulunmaz. Ön yüzü olmayan uygulamalarda gösterilmez. Eğer yapılan işlem toplu bir işlem (batch) ise, işlem bittikten sonra baskı öncesi ekranda, satırlar halinde gösterilir.

Kullanım Şekli


Değişken = Document.MsgBox(Mesaj)

Ana Nesne


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

Parametreler


Parametre

Açıklama

Mesaj

Ekranda gösterilmek istenilen mesajdır. Uzun mesajlarda satırbaşı yapılmak isteniyorsa; carriage return karakteri (Chr(13)) veya linefeed karakteri (Chr(10)) istenilen kadar kullanılabilir. Kullanılması zorunlu bir parametredir.

Geri Dönen Değerler


Eğer mesaj kutusu şeklinde kullanılıyorsa, sadece tek bir tam sayı geri dönüş değeri vardır. Aşağıdaki tabloda hangi tam sayı değeri dönüldüğü gösterilmiştir. Geri dönülen tam sayı değeri yerine, sabit adlarda kullanılabilir.


Dinamo ERP Sabit Ad

vbscript Sabit Ad

Değer

Açıklama

IDOK

vbOK

1

OK (Tamam) tuşunun seçildiğini belirten değer.


Eğer fonksiyon toplu bir işlemde (batch) kullanılıyorsa, geri dönen değer her zaman -1 (eksi bir) tam sayı değeridir.

Hatırlatmalar


Tuş açıklamaları (İngilizce, Türkçe vb. ), işletim sisteminin kurulum diline göre değişebilir.

Mesaj kutularında klavyedeki ESC (Escape) tuşuna basıldığında da sistem 1 (IDOK, vbOK) değeri geri dönülür.

vbScript lisanındaki MsgBox fonksiyonu ile karıştırılmamalıdır. Burada bahssetiğimiz MsgBox fonksiyonu Döküman nesnesinin elamanıdır. vbScript MsgBox fonksiyonu batch işlemlerde işlevini sürdürür.


Örnek


Sub Makro1()

       Mesaj = "Uyarı! İşlemlerde hata bulundu." & chr(13) & chr(13) & "Devam etmek ister misiniz?"

       GeriDonusDegeri = Doc.MsgBox(Mesaj)        

       If GeriDonusDegeri = IDOK then

               Sonuc = "İşleme hatalı devam edildi."

       Else

               Sonuc = "İşlem durduruldu"        

       End If

       Doc.MsgBox(Sonuc)

End Sub




Yukarıdaki örnekte, aralarında bir satır boşluk verilen bir mesaj, standart mesaj kutusu kullanılarak oluşturulmuştur. Kullanıcı seçimine göre de sonuç başka bir mesaj kutusunda yeni bir mesaj olarak gösterilmiştir. Bu durumda mesaj kutuları, aşağıdaki resimlerdeki gibi görülecekti.


               




Sub Makro1()

       Dim Batch

       Set Batch = Doc.CreateSObject("BatchErrorMode")

       Mesaj = "Uyarı! İşlemlerde hata bulundu." & chr(13) & chr(13) & "Devam etmek ister misiniz?"

       GeriDonusDegeri = Doc.MsgBox(Mesaj)        

       If GeriDonusDegeri = IDOK then

               Sonuc = "İşleme hatalı devam edildi."

       Else

               Sonuc = "İşlem durduruldu"        

       End If

        Doc.MsgBox(Sonuc)

End Sub



Eğer ki yukarıdaki örnekte olduğu gibi toplu işlem (batch) nesnesi kullanılırsa, ekrana mesaj kutuları gelmeyecekti. Batch değişkeni, sistemi toplu işlem moduna  geçirmektedir. Bu mesajlar ilgili prosedürden (Sub) çıkınca, baskı öncesi ekranda aşağıdaki gibi görünecekti.



Bu kullanım şeklinde sistem her mesaj kutusuna da (-1) değerini geri dönecektir. Dolayısıyla ikinci mesaj olan Sonuç değişkeni “İşlem durduruldu” değerini almıştır.

Paylaşım Makrosu