InfoPath 2003 FAQ
(Frequently Asked Questions - häufig gestellte Fragen)
Du hast Anmerkungen zu vorhandenen Fragen?
Oder Vorschläge für die Erweiterung der FAQ?
Dann schicke mir eine e-Mail
Allgemeines
A1. Was ist InfoPath?
InfoPath ist ein Programm zum vereinfachten Erstellen und Ausfüllen von
dynamischen Formularen.
Weitere Informationen zu InfoPath erhalten Sie auf den Microsoft Webseiten:
http://www.microsoft.com/germany/ms/infopath2003/index.htm
A2. Wie kann ich InfoPath kaufen?
InfoPath gibt es als Einzellizenz und ist in Office Professional Enterprise
Edition 2003 enthalten. Die Einzellizenz gibt es als Paketprodukt - auch als
Schullizenzen - und in den Volumenlizenzprogrammen (wie z. B. OPEN, MYO und
OSL). Office Professional Enterprise Edition 2003 ist ausschließlich in den
Volumenlizenzprogrammen erhältlich. Weitere Infos gibt es
hier im Shop oder auf Anfrage bei einem unserer
Microsoft Licensing Specialists.
A3. Welche Systemvoraussetzungen brauche ich für InfoPath?
InfoPath läuft auf allen PCs mit Windows 2000 (mind. SP3) oder Windows XP mit
mind. 128 MByte Arbeitsspeicher. Außerdem wird mindestens der Internet Explorer
6 benötigt.
Die Zusammenarbeit im Team läuft über einen Windows Server 2003 mit den Windows
SharePoint Services.
A4. Benötige ich auf jedem PC ein installiertes InfoPath?
Sie benötigen eine Installation von InfoPath auf jedem PC, auf dem InfoPath
Formulare erstellt und/oder ausgefüllt werden. Da InfoPath XML-Dokumente
generiert können diese von anderer Software wieder verwendet und angezeigt
werden.
Formulare ausfüllen:
F1. Ich kann das Formular (*.xsn), dass mir per Mail zugesandt wurde, nicht
ausfüllen.
Fehlermeldung: "Ein neues, leeres Formular kann nicht erstellt werden. Es ist
nicht möglich, Formulare auszufüllen, die auf dieser Formularvorlage basieren,
da die Vorlage von ihrem ursprünglichen Veröffentlichungsort an den jetzigen
Ort kopiert oder verschoben wurde.
Um das Problem zu beheben, öffnen Sie die Formularvorlage von ihrem
Veröffentlichungsort.
Möglichkeit 1:
Der Ersteller des Formulars soll das Formular auf einer Windows SharePoint
Seite, einem Webserver oder auf einer Dateifreigabe veröffentlichen. Sie können
das Formular von dort öffnen.
Möglichkeit 2:
Der Ersteller des Formulars soll Ihnen eine "installierbare" Version zusenden.
(*.msi Microsoft Installer Paket)
Möglichkeit 3:
Öffnen Sie die Formularvorlage über das Kontextmenü im Entwurfsmodus.
(Rechtsklick auf die .xsn Datei und "Entwurf" anklicken). Speichern Sie die
Formularvorlage mit Datei - Speichern unter an der selben Stelle und mit dem
selben Namen nochmals ab (Speichern - nicht veröffentlichen!). Versuchen Sie
erneut das Formular auszufüllen.
Formulare erstellen:
T1: Woher bekomme ich das InfoPath SDK?
http://www.microsoft.com/downloads/details.aspx?FamilyId=351F0616-93AA-4FE8-9238-D702F1BFBAB4&displaylang=en
T2: Woraus besteht eine Formularvorlage (.xsn)?
Eine Formularvorlage besteht aus mehreren einzelnen Dateien.
(Einfach mal austesten: Formular.xsn in Formular.cab umbenennen und öffnen!)
Die Formulardefinition (.xsf) enthält Informationen zu allen anderen
verwendeten Dateien und Komponenten.
Das XML-Schema (.xsd) ist die dem Formular zugrunde liegende Datenstruktur.
Die Ansichten (.xsl) enthalten Informationen zu den einzelnen Ansichten des
Formulars.
XML Vorlage (.xml) Hier sind Standarddaten enthalten, die beim Erstellen eines
neuen Formulars eingetragen werden.
Die XML-Komponentenvorlage (.xct) enthält die XML-Dateidarstellungen der
Bearbeitungssteuerelemente, die beim Erstellen und Ausfüllen eines Formulars
verwendet werden.
Skripte (.js oder .vbs) enthalten die Programmierlogik des Formulars
Sonstige Dateien (.htm, gif. bmp, ...) werden zur benutzerdefinierten
Darstellung verwendet und liefern zum Beispiel Bilder oder auch eigenen
Taskpanes.
T3: Wie kann ich über eine sekundäre Datenquelle eine Stored Procedure mit
Parametern auf meiner Datenbank ausführen?
-
zuerst "ganz normal" eine Sekundäre Datenquelle über den Wizzard hinzufügen
(Extras - Sekundäre Datenquelle)
-
Als Datenquelle die entsprechende Datenbank wählen, in der die Stored Procedure
gespeichert ist
-
eine beliebige Tabelle in dieser Datenbank auswählen
-
die Tabelle mit "Tabelle entfernen" wieder entfernen
-
unter dem Punkt "SQL bearbeiten ..." den gewünschten Aufruf der Stored
Procedure mit Beispiel-Parametern eintragen ( z. B. "execute dbo.setAnzahl
100")
Auch wenn Sie diese Sekundäre Datenquelle zum versenden von Daten an die
Datenbank verwenden möchten, so besteht InfoPath trotzdem darauf auch Daten zu
empfangen. Schließen Sie deswegen die SP mit einem beliebigen "select" ab.
InfoPath stolpert auch über den Rückgabewert der von einer
Transact-SQL-Anweisung betroffenen Zeilen. Beginnen Sie die SP deswegen mit
"SET NOCOUNT ON".
-
Folgender Beispielcode liest den Beispielwert "Anzahl" aus dem entsprechenden
Feld aus und fügt sie dem Aufruf der SP an. Anschließend wird die SP
ausgeführt.
'Variable deklarieren
var strAnzahl = "";
'mit Inhalt aus dem Formular füllen
strAnzal = XDocument.DOM.selectSingleNode("/dfs:myFields/my:txtAnzahl").text
'SQL String ändern
XDocument.DataObjects("AufrufStoredProcedure").QueryAdapter.Commonad = _
"execute dbo.setAnzahl " + strAnzahl;
'Abfrage ausführen
XDokument.DataObjects("AufrufStoredProcedure").Query;
T4: Mein Formular basiert auf einem existierenden Schema. Die Ansicht
Datenquelle ist deswegen schreibgeschützt. Wie kann ich trotzdem Änderungen am
Schema in InfoPath durchführen?
Wenn ein neues InfoPath Formular auf Basis eines externen XML Schemas erstellt
wird, dann geht InfoPath davon aus, dass das Schema nicht mehr verändert wird.
Falls das Schema doch bearbeitet werden soll, muss dies "von Hand" geschehen:
-
das Formular im Entwurfsmodus öffnen
-
Formulardateien entpacken: Datei / Formulardateien extrahieren ...
-
das Formular schließen
-
das Verzeichnis öffnen, in das die Formulardateien extrahiert wurden
-
das Original-Schema austauschen oder abändern
-
Rechtsklick auf die Datei manifest.xsf und "Entwurf" anklicken
Diese Änderungen werden "auf eigene Gefahr" gemacht. InfoPath überprüft an
keiner Stelle, ob das Schema noch zum Original-Schema kompatibel ist.
T5: Wie kann ich den Benutzernamen des aktuellen Benutzers mit InfoPath
auslesen?
Das geht mit einem ActiveX Objekt:
function XDocument::OnLoad(eventObj)
{
//Create a WScript.Network object, which provides access to the user data
var objNetwork = new ActiveXObject("WScript.network");
//Retrieve the UserName and write it into the my:UserName field
XDocument.DOM.selectSingleNode("/my:myFields/my:UserName").text =
objNetwork.UserName;
//Retrieve the UserDomain and write it into the my:UserDomain field
XDocument.DOM.selectSingleNode("/my:myFields/my:UserDomain").text =
objNetwork.UserDomain;
//Retrieve the ComputerName and write it into the my:ComputerName field
XDocument.DOM.selectSingleNode("/my:myFields/my:ComputerName").text =
objNetwork.ComputerName;
}
T6: Ich erhalte die Fehlermeldung "'#PCDATA' ist null" bzw. "'#PCDATA' is in
nil content" wenn ich den Wert eines XML-Knotens ändern möchte.
Das passiert, wenn man den Wert von "text" ändern möchte, wenn der XML Knoten
das Attribut "xsi:nil="true" gesetzt hat. Die einfachste Lösung ist es, das
Attribut vor dem Ändern von Daten zu entfernen:
objDataElement.removeAttribute("xsi:nil");