Makale numarası: 826998 - Son Gözden Geçirme: 02 Mayıs 2007 Çarşamba - Gözden geçirme: 4.1

Program aracılığıyla da ınfopath içinde bir <a0>XML</a0> düğümünün metin değeri ayarlamaya çalışırsanız bir hata iletisi alıyorsunuz

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir <a0>XML</a0> düğümünün metin değeri, Microsoft Office ınfopath 2007 veya Microsoft Office ınfopath 2003'te programsal olarak ayarlamaya çalışırsanız, hata iletisi alabilirsiniz.

Infopath 2007'de, aşağıdakine benzer bir hata iletisi alabilirsiniz:
Infopath, formun kodundaki bir hata nedeniyle bu eylemi tamamlayamıyor.
Infopath 2003'te, aşağıdakine benzer bir hata iletisi alabilirsiniz:
Bir çalışma zamanı hatası oluştu.
Hata ayıklamak istiyor musunuz?

Aşağıdaki hata oluştu:
'#PCDATA' nil içeriğinde ' dir.

Neden

Metin değeri olan bir XML düğümü program aracılığıyla çalıştığınızda bu hata oluşturulur xsi: nil = "true" özniteliği. Bu özniteliği true olarak ayarlandığında <a0>XML</a0> düğümünün herhangi bir metin değeri geçersiz XML üretir. Bu nedenle, Microsoft Office ınfopath değerini kabul edin ve hata iletisi alırsınız.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, denetlediği kod ekleme xsi: nil = "true" öznitelik ve (öznitelik bulunursa) özniteliği Kod düğümü metin değerini ayarlar için önce çalışma zamanında kaldırır.

Bu hataya neden olabilecek kod örneği

Örneğin, aşağıdaki kodu benzer bir kod kullandığınızda bu hata oluşabilir.

Infopath 2007

	//Create a Navigator object to access the main DOM.
	XPathNavigator xnDoc = this.MainDataSource.CreateNavigator();
	
	//Create a Navigator object for the field that you want to set.
XPathNavigator xnmyDate = xnDoc.SelectSingleNode("/my:myFields/my:myDate", this.NamespaceManager);

//Set the value of the myDate field.
xnmyDate.SetValue("2006-10-12");

//Clean up.
xnDoc = null;
xnmyDate = null;

InfoPath 2003

{
	// Receive a reference to the element to be filled.
	var objDataElement = XDocument.DOM.selectSingleNode("/my:myFields/my:field1");
	
	//Set the value of the element.
	objDataElement.text = "10.0";
}

Bu hatayı önleyebilirsiniz kodu örneği

Infopath 2007

Bu hatayı önlemek için <a0></a0>, bir Gezgin nesnesi aşağıdaki kodu example.
//Create a Navigator object to access the main DOM.
XPathNavigator xnDoc = this.MainDataSource.CreateNavigator();

//Create a Navigator object for the field that you want to set.
XPathNavigator xnmyDate = xnDoc.SelectSingleNode("/my:myFields/my:myDate", this.NamespaceManager);

//Remove the "nil" attribute.
if (xnmyDate.MoveToAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance"))
xnmyDate.DeleteSelf();

//Set the value of the myDate field.
xnmyDate.SetValue("2006-10-12");

//Clean up.
xnDoc = null;
xnmyDate = null;

InfoPath 2003

{
	// Receive a reference to the element to be filled.
	var objDataElement = XDocument.DOM.selectSingleNode("/my:myFields/my:field1");
	
	//Determine whether the xsi:nil attribute is set for this
	//element. If so, remove the xsi:nil attributes so that
	//the value can be set.
	if (objDataElement.getAttribute("xsi:nil"))
          objDataElement.removeAttribute("xsi:nil");
	
	//Set the value of the element.
	objDataElement.text = "10.0";
}

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

Bu davranışı yeniden oluşturmak için <a0></a0>, form oluşturmak ve örnek form kodunu ekleyin. Sonra formu sınamanız gerekir. Form oluşturmak için aşağıdaki adımları izleyin:

Form oluşturma

  1. Microsoft Office ınfopath başlatın.
  2. Yeni bir boş formu tasarlayın.
  3. Görev bölmesinde, denetimleri ' ni tıklatın. Veri kaynağını otomatik olarak oluştur) onay kutusunun seçili olduğunu doğrulayın.
  4. Bir TextBox denetimi forma ekleyin ve sonra da forma Düğme denetimi ekler.
  5. Görev bölmesinde, Veri kaynağı ' nı tıklatın.
  6. Veri kaynağı listesinden, alan1) sağ tıklatın ve sonra da Properties ' i tıklatın.

    Alan veya grup özellikleri iletişim kutusu görüntülenir.
  7. Alanın Veri türü özelliği için <a1>Ondalık</a1> (çift) ayarlayın ve Tamam ' ı tıklatın. Şablonu kaydedin.
  8. Düğmenin OnClick olay komut aşağıdaki gibi ekleyin:
    1. Düğmeyi sağ fare düğmesiyle tıklatın ve ardından Düğme Özellikleri ' ni tıklatın.

      <a0>Düğme Özellikleri</a0> iletişim kutusu görüntülenir.
    2. Infopath 2007'de, Düzen Form kodunu tıklatın. Uygulamalar için Microsoft Visual Studio Araçları'nı başlatır.

      Infopath 2003'te, Microsoft Script Editor düğmesini tıklatın.

      Microsoft Kod Düzenleyicisi görüntülenir.
    3. Düğmenin OnClick olay aşağıdaki kod örneği ekleyin.

      ınfopath 2007
      //Create a Navigator object to access the main DOM.
      XPathNavigator xnDoc = this.MainDataSource.CreateNavigator();
      
      //Create a Navigator object for the field that you want to set.
      XPathNavigator xnmyDate = xnDoc.SelectSingleNode("/my:myFields/my:myDate", this.NamespaceManager);
      
      //Set the value of the myDate field.
      xnmyDate.SetValue("2006-10-12");
      
      //Clean up.
      xnDoc = null;
      xnmyDate = null;
      
      ınfopath 2003
      {
      	// Receive a reference to the element to be filled.
      	var objDataElement = XDocument.DOM.selectSingleNode("/my:myFields/my:field1");
      	
      	//Set the value of the element.
      	objDataElement.text = "10.0";
      }
    4. Komut dosyanızı kaydetmek ve Microsoft Kod Düzenleyicisi'ni kapatın.
  9. Infopath 2007'de, Dosya menüsünde Kaydet ' i tıklatın.

    Infopath 2003 ' te Dosya menüsünde <a1>Kaydet</a1> seçeneğini tıklatın ve sonra da <a2>Microsoft Office ınfopath</a0> iletişim kutusunda Kaydet</a2>'i tıklatın.
  10. Kaydet iletişim kutusunda xmlnode yazın ve sonra da <a2>Kaydet</a2>'i tıklatın.
  11. Dosya ' yı tıklatın ve sonra Kapat ' ı tıklatın.

Form sınayın.

  1. Infopath başlatın.
  2. Infopath 2007'de, Son kullanılan formlar altında xmlnode çift tıklatın.

    Infopath 2003'te, form doldururken dolgu altında xmlnode tıklatın.
  3. Düğmeyi tıklatın.

    "Belirtiler" bölümünde değinilen hata iletisini alırsınız.
  4. Infopath 2007'de, hata iletisini kapatmak için Tamam ' ı tıklatın.

    Infopath 2003'te, Hayır ' ı tıklatın ve sonra hata iletisini kapatmak için Tamam ' ı tıklatın.
  5. Formu Tasarım modunda açın.
  6. Düğmenin OnClick olay değiştirin. Bunu yapmak için şu adımları izleyin:
    1. Düğmeyi sağ fare düğmesiyle tıklatın ve ardından Düğme Özellikleri ' ni tıklatın.

      <a0>Düğme Özellikleri</a0> iletişim kutusu görüntülenir.
    2. Microsoft Script Editor</a0> düğmesini tıklatın.

      Microsoft Kod Düzenleyicisi görüntülenir.
    3. Düğmenin OnClick olay kodu aşağıdaki gibi değiştirin.

      ınfopath 2007
      //Create a Navigator object to access the main DOM
      XPathNavigator xnDoc = this.MainDataSource.CreateNavigator();
      
      //Create a Navigator object for the field we want to set
      XPathNavigator xnmyDate = xnDoc.SelectSingleNode("/my:myFields/my:myDate", this.NamespaceManager);
      
      //Set the value of the myDate field
      xnmyDate.SetValue("2006-10-12");
      
      //Clean up
      xnDoc = null;
      xnmyDate = null;
      
      ınfopath 2003
      {
      	// Receive a reference to the element to be filled.
      	var objDataElement = XDocument.DOM.selectSingleNode("/my:myFields/my:field1");
      	
      	//Determine whether the xsi:nil attribute is set for this
      	//element. If so, remove the xsi:nil attributes so that
      	//the value can be set.
      	if (objDataElement.getAttribute("xsi:nil"))
                objDataElement.removeAttribute("xsi:nil");
      	
      	//Set the value of the element.
      	objDataElement.text = "10.0";
      }
  7. Form yeniden önizleme ve sonra düğmeyi tıklatın.

    Hata iletisi döndürdü. TextBox denetimi 10.0 değeri görüntüler.

Referanslar

Komut dosyası hata ayıklama hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
827002  (http://support.microsoft.com/kb/827002/ ) Microsoft Office ınfopath 2003 form için bir komut dosyası hata ayıklama hakkında

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
Anahtar Kelimeler: 
kbmt kbprb kberrmsg KB826998 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:826998  (http://support.microsoft.com/kb/826998/en-us/ )