Artykuły

A A A
Drukuj Ekportuj do PDF
Opublikowane: 2009.04.16 21:31 | Łukasz Foks | Aktualizacja: 2009.04.16 21:37

[Porada] Jak przeglądać formy InfoPath w webparcie?

tagi: InfoPath
Jak przeglądać formy InfoPath w webparcie?

Sharepoint domyślnie umożliwia użytkownikowi pracę nad formularzami InfoPath 2007 poprzez wbudowaną przeglądarkę. Minusem korzystania z tego rozwiązania jest to, że przeglądarka działa w trybie pełnoekranowym.

 

Aby użytkownik nie musiał przełączać się do widoku pełnoekranowego formularza InfoPath, można w prosty sposób zmienić sposób jego pracy. Dzięki rozwiązaniu podanemu poniżej można łatwo stworzyć webpart który pozwoli na połączenie z listą typu Form Library i edycję pliku InfoPath 2007.

XMLFormView jest dostępna w bibliotece Microsoft.Office.InfoPath.Server.dll.

Poniżej najważniejsze elementy rozwiązania:

const string defaultxmlloc = "";
const string defaultxsnloc = "";
private string xmlloc = defaultxmlloc;
private string xsnloc = defaultxsnloc;
public XmlFormView XMLFormViewer;
public Label Label_Error;

#region PublicProperties
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true), WebDisplayName("XML Location")]
[WebDescription("URL of web-enabled InfoPath form")]
[Category("Miscellaneous")]
public string XML_Location
{
get
{return xmlloc;
}
set
{xmlloc = value;
}
}
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[WebDisplayName("XSN template URL")]
[WebDescription("URL of infopath form template")]
[Category("Miscellaneous")]
public string XSN_Location
{
get
{return xsnloc;
}
set
{xsnloc = value;
}
}
#endregion

#region SharepointLibraryConnection

[ConnectionConsumer("XML_Location")]
public void GetConnectionInterface(IWebPartField providerPart)
{FieldCallback callback = new FieldCallback(this.ReceiveField);
if (providerPart != null)
{
providerPart.GetFieldValue(callback);
}

}

public void ReceiveField(object field)
{
if (field != null)
{ xmlloc = field.ToString(); }
}

protected override void CreateChildControls()
{Label_Error = new Label();
XMLFormViewer = new XmlFormView();

if ((xsnloc.Length > 0) || (xmlloc.Length > 0))
{XMLFormViewer.EditingStatus = XmlFormView.EditingState.Editing;
Controls.Add(XMLFormViewer);

if ((xmlloc.Length > 0))
{XMLFormViewer.XmlLocation = xmlloc;
XMLFormViewer.XsnLocation = "";
}
else if ((xsnloc.Length > 0))
{XMLFormViewer.XmlLocation = "";
XMLFormViewer.XsnLocation = xsnloc;
}
try
{ XMLFormViewer.DataBind(); }
catch (System.ArgumentNullException exc)
{ Label_Error.Text = exc.Message; }
}
else
{ Label_Error.Text = Messages.ViewerNotConfigured; }
Controls.Add(Label_Error);
}
}

Poniżej link do screencasta z VI spotkania Polish Sharepoint Group na którym XMLFormView został stworzony:

MS-GROUPS>PSG>SPOTKANIE 06>Programowanie Forms Servers.zip

Autorem porady jest Michał Bojko.


Komentarze 0 Masz uwagi do tej strony? Napisz

Dodaj komentarz

avatar

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Autor Łukasz Foks
avatar Microsoft
 

Kontakt: foks@wss.pl MCTS: Configuring Windows Vista Client MCTS: Connected Home Integrator MCTS: Windows 7, Configuring MCTS: Windows Server 2008 Network Infrastructure, Configuring MCTS: Windows Server 2008 Applications Infrastructure, Configuring MCITP: Microsoft Desktop Support Consumer MCITP: Microsoft Desktop Support - Enterprise

Załóż konto
WSS to serwis, który łączy dziesiątki tysięcy specjalistów IT w Polsce, zajmujących się szeroko pojętymi technologiami Microsoft. Portal działa od 2003 roku, i oprócz setek publikacji technicznych, rozwijającego się forum - portal to ludzie, którzy go tworzą. To właśnie z myślą o nich warto codziennie nas odwiedzać.

Dowiedz się więcej o WSS

vGuru - Zostań Guru Wirtualizacji

 

MetroOne

Idź na górę strony