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.
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.
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.
Ö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ı ö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";
}
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
Microsoft Office ınfopath başlatın.
Yeni bir boş formu tasarlayın.
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.
Bir TextBox denetimi forma ekleyin ve sonra da forma Düğme denetimi ekler.
Görev bölmesinde, Veri kaynağı ' nı tıklatın.
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.
Alanın Veri türü özelliği için <a1>Ondalık</a1> (çift) ayarlayın ve Tamam ' ı tıklatın. Şablonu kaydedin.
Düğmenin OnClick olay komut aşağıdaki gibi ekleyin:
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.
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.
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";
}
Komut dosyanızı kaydetmek ve Microsoft Kod Düzenleyicisi'ni kapatın.
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.
Kaydet iletişim kutusunda xmlnode yazın ve sonra da <a2>Kaydet</a2>'i tıklatın.
Dosya ' yı tıklatın ve sonra Kapat ' ı tıklatın.
Form sınayın.
Infopath başlatın.
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.
Düğmeyi tıklatın.
"Belirtiler" bölümünde değinilen hata iletisini alırsınız.
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.
Formu Tasarım modunda açın.
Düğmenin OnClick olay değiştirin. Bunu yapmak için şu adımları izleyin:
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.
Microsoft Script Editor</a0> düğmesini tıklatın.
Microsoft Kod Düzenleyicisi görüntülenir.
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";
}
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.
Ö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/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.