Bu makalede, bir Microsoft Office ınfopath 2007 formuna veya Microsoft Office ınfopath 2003 form üzerindeki bir <a0>zengin metin kutusu denetimi için bir Web hizmetinden döndürülen XML öğe bağlama açıklamaktadır.
Bir zengin metin kutusu denetiminin bir Web hizmetinden döndürülen XML öğe bağlamak için zengin metin kutusu denetimi UYGULAMA içeriği içermelidir. Öğe, aşağıdaki XML şema olmalıdır:
<xsd:element name="[elementname]">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any namespace="http://www.w3.org/1999/xhtml" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<elementname> Web hizmetinden döndürülen XML öğesinin adı.
Infopath, ınfopath Web hizmetinin veri kaynağına ilk kez bağlandığında, öğe için örnek değer sorgulayarak, öğenin bir UYGULAMA öğesi olup olmadığını otomatik olarak algılayabilir. Bu makalede, geçerli UYGULAMA döndüren bir Web hizmetinin nasıl oluşturulacağını açıklar. Bu makalede ayrıca zengin metin kutusu denetiminde bir ınfopath formunda Web hizmetinden döndürülen UYGULAMA görüntülenecek açıklamaktadır.
Web hizmetini oluşturma
- Microsoft Visual Studio .NET'i başlatın.
- Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın.
- Proje türleri</a0> listesinde, Visual C# Projects tıklatın. Şablonlar listesinde ASP.NET Web Service ' ı tıklatın.
- Konum kutusuna http:// <server>/RichTextService yazın... burada <SERVER> Web sunucunuzun adı ve sonra Tamam ' ı tıklatın.
- Service1.asmx ' ı sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın.
- Aşağıdaki Web hizmeti yöntemi Service1 sınıfına ekleyin:
[WebMethod]
public System.Xml.XmlNode GetXHTMLRichText()
{
//Create a temporary XmlDocument object to generate nodes.
System.Xml.XmlDocument tempDocument = new System.Xml.XmlDocument();
//Create a wrapper node for the data. This is necessary so InfoPath
//correctly detects the XHTML content
System.Xml.XmlElement theNode = (System.Xml.XmlElement)tempDocument.CreateNode(
System.Xml.XmlNodeType.Element, "theNode", "http://somearbitrarynamespace/" );
//Create a "font" element in the xhtml namespace.
System.Xml.XmlElement theFontNode = (System.Xml.XmlElement)tempDocument.CreateNode(
System.Xml.XmlNodeType.Element, "font", "http://www.w3.org/1999/xhtml" );
theFontNode.InnerText= "Red Text";
//Add a color attribute.
System.Xml.XmlAttribute colorAttribute = tempDocument.CreateAttribute(
"color" );
colorAttribute.Value = "#ff0000";
theFontNode.Attributes.Append( colorAttribute );
//Append the font node to the wrapper node
theNode.AppendChild( theFontNode );
//Return the wrapper element.
return theNode;
} - Yapı) menüsünde, Build Solution ' ı tıklatın.
- Çıkış Visual Studio. NET'i.
ınfopath formu oluşturma
Infopath 2003'te
- Infopath 2003'ü başlatın.
- Dosya menüsünde, <a1>Tasarım</a1> bir form'ı tıklatın.
- Tasarım bir <a0>Form</a0> görev bölmesi, Yeni Veri Bağlantısı'oluştur [NULL]'u tıklatın.
Veri Kaynağı Kur Sihirbazı başlatılır. - Veri kaynağı gibi ayarlayın:
- Web hizmeti için veri kaynağını tıklatın ve sonra ileri ' yi tıklatın.
- Veri Al'ı tıklatın ve sonra ileri ' yi tıklatın.
- Http:// <server>yazın /RichTextService/Service1.asmx Web konumu için hizmet ve ileri ' yi tıklatın.
- Bir operasyon seçin) listesinde, GetXHTMLRichText ' ı tıklatın ve sonra ileri ' yi tıklatın.
- Son ' u tıklatın.
- Veri kaynağı</a1> görev bölmesine geçiş yapın ve sonra dataFields grubunu genişletin.
- GetXHTMLRichTextResponse grubu genişletin ve sonra da forma GetXHTMLRichTextResult öğeyi taşıyın.
ınfopath bir zengin metin kutusu ekler Görünüm denetimi.
Infopath 2007'de
- Infopath 2007 başlatın.
- Başlangıç iletişim kutusunun sol bölmede, <a1>Tasarım</a1> bir form şablonu tıklatın.
Bir form şablonu penceresinde, tasarım boş ' u tıklatın ve sonra Tamam ' ı tıklatın. - Araçlar menüsünde, Veri bağlantıları ' nı tıklatın.
- Veri bağlantıları</a0> penceresinde, Ekle ' yi tıklatın.
Veri Kaynağı Kur Sihirbazı başlatılır. - Veri kaynağı kurma aşağıdaki gibi ayarlayın:
- Yeni bağlantı oluştur seçmek için tıklatın, Veri Al'ı tıklatıp seçin ve ileri ' yi tıklatın.
- Web hizmeti için veri kaynağı seçmek için tıklatın ve sonra ileri ' yi tıklatın.
- Http:// <server>yazın /RichTextService/Service1.asmx Web konumu için hizmet ve ileri ' yi tıklatın.
- Bir operasyon seçin) listesinde, GetXHTMLRichText ' ı tıklatın ve sonra ileri ' yi tıklatın.
- Son ' u tıklatın.
- Veri kaynağı</a1> görev bölmesine geçiş yapın ve sonra dataFields grubunu genişletin.
- GetXHTMLRichTextResponse grubu genişletin ve sonra da forma GetXHTMLRichTextResult öğeyi taşıyın.
ınfopath bir zengin metin kutusu ekler Görünüm denetimi.
Deneyin
- Görev bölmesi a?a?? aç?lan listesini üzerinde görünümler ' i tıklatın.
- Görünümler listesinde, Query ' ı tıklatın. Query ' ı sağ tıklatın ve sonra da <a2>Varsayılan yap</a2>'ı tıklatın.
- Dosya menüsünde Form Önizleme'nun üzerine gelin ve sonra da <a2>Varsayılan</a2>'ı tıklatın.
- Sorgu Çalıştır ' ı tıklatın.
- Görünüm menüsünde, Veri girişi ' ni tıklatın.
Formdaki <a1>zengin metin kutusu</a1> denetimdeki değeri dikkat edin. Web hizmeti tarafından döndürülen Kırmızı metin değerdir ve değer kırmızı olarak biçimlendirilir.