Office
Přihlásit se

Přizpůsobení šablony formuláře pomocí skriptu

Poznámka:  Snažíme se pro vás co nejrychleji zajistit aktuální obsah nápovědy ve vašem jazyce. Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát ve spodní části této stránky vědět, jestli vám informace v článku pomohly? Pokud byste se rádi podívali na jeho anglickou verzi, najdete ji tady .

Pokud máte zkušenosti s skriptu, můžete přidat skriptu do šablony formuláře aplikace Microsoft Office InfoPath pomocí Microsoft JScript nebo skriptovacího jazyka Microsoft Visual Basic Scripting Edition (VBScript). Přidání skriptu umožňuje přizpůsobit šablony formuláře rámec toho, co je k dispozici u pravidla, vzorce, ověření dat a podmíněné formátování. Můžete například přidat skript, který vytvoří a odešle e-mailové zprávy při přepnutí zobrazení ve formuláři založené na šabloně formuláře. Můžete nakonfigurovat šablony formuláře a vytvoření a odeslání e-mailové zprávy pouze pomocí skriptu.

V tomto článku

Základní informace

Důležité informace o kompatibilitě

Nastavení skriptovacího jazyka pro šablonu formuláře

Zobrazit zprávu pokaždé, když dojde k události

Přidejte skript, který spustí, když uživatel uloží dat formuláře

Přidejte skript, který se spustí při odeslání dat formuláře

Přidejte skript, který se spustí při kliknutí tlačítko

Přidání skriptu, které se spouští při sloučení formulářů

Přidání skriptu aktualizovat existujícího formuláře

Přidání skriptu pro jiné události

Základní informace

Šablona formuláře aplikace InfoPath jde přizpůsobit pomocí pravidla, vzorce, ověření dat a podmíněné formátování. I když tyto funkce jsou flexibilní a můžete vyřešit celou řadu úkolů, některé úkoly přesahují možnosti těchto funkcí. Pomocí pravidel například nelze odeslat e-mailové zprávy, pokud uživatel zadá hodnotu v textovém poli na formuláři. Pokud budete muset přizpůsobit šablony formuláře způsobem, který přesahuje možnosti těchto funkcí a znají psaní skriptů pomocí skriptovacího jazyka JScript nebo VBScript, můžete si přidat skript, který se spustí, když uživatel otevře nový formulář nebo mění ex istující formulář, který je založený na vaší šabloně.

Po přidání skriptu do šablony formuláře aplikace InfoPath spustí Microsoft Script Editor (MSE), který umožňuje přidat, upravit a ladění skriptu v šabloně formuláře a umístí kurzor do vybrané události. Aplikace InfoPath automaticky přidá obslužné rutiny události skriptu. Obslužná rutina události je funkce kód v šablonu formuláře aplikace InfoPath, který odpovídá akci uživatele nebo změnu dat XML ve formuláři. Například pokud chcete, aby uživatelé mohli ukládat jejich formuláře do několika umístění v síti, můžete přiřadit skript obslužné rutiny události OnSaveRequest . Po přidání skriptu spustit, pokud uživatel uloží formuláře založené na šabloně formuláře aplikace InfoPath spustí editor skriptů a přidá jednu z následujících kódů do skriptu.

Poznámka: Kód, který přidává aplikace InfoPath závisí na vybraném jazyce skriptu.

JScript

//=======
// The following function handler is created by Microsoft Office InfoPath.
// Do not modify the name of the function, or the name and number of arguments.
//=======
function XDocument::OnSaveRequest(eventObj)
{
// Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation();
// Write the code to be run after saving here.
eventObj.ReturnStatus = true;
}

Jazyk VBScript

'=======
' The following function handler is created by Microsoft Office InfoPath.
' Do not modify the name of the function, or the name and number of arguments.
'=======
Sub XDocument_OnSaveRequest(eventObj)
' Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation
' Write the code to be run after saving here.
eventObj.ReturnStatus = True
End Sub

Pak můžete přidat kód v příslušných místech v případě, že rutinu, uloží formuláře jiného umístění v síti. Když uživatel uloží formuláře založené na této šabloně, InfoPath spustí kód v obslužné rutiny události OnSaveRequest .

Poznámka: Tento článek obsahuje všeobecný přehled o vytváření skriptů v šabloně formuláře. Další informace o Microsoft Script Editor a určité objekty, metody, událostí a vlastnosti použité v Infopathu, najdete v článku Principy vývojáře aplikace InfoPath.

Aplikace InfoPath automaticky přidá obslužné rutiny události u všech jednu z následujících událostí.

Obslužná rutina události

Popis

Postup pro vytvoření

OnAfterChange

Tato událost probíhající poté, co uživatel změní hodnotu v zadaném ovládací prvek vázaný na pole. Podokno úloh Vlastní HTML můžete zobrazit například poté, co uživatel vybere položku v ovládací prvek seznam. Tato událost probíhající po OnValidate události.

Klikněte pravým tlačítkem myši ovládacího prvku v šabloně formuláře nebo pole v podokně úloh Zdroj dat, v místní nabídce přejděte na položku programování a klikněte Na událost po provedení změny.

OnAfterImport

Po úspěšném slučování několika formulářů do jednoho formuláře spuštění této události.

Ruční přidání deklarace obslužné rutiny události OnAfterImport přímo na soubor skriptu pomocí MSE. Obslužná rutina události tento nelze vytvořit v režimu návrhu.

OnBeforeChange

Tato událost probíhající poté, co uživatel změní hodnoty v ovládacím prvku a před přidané do zadané pole vázané na daný ovládací prvek. Uživatele můžete například zabránit v přidání další řádek před vyplňování posledního řádku v tabulce s opakováním

Klikněte pravým tlačítkem ovládacího prvku v šabloně formuláře nebo pole v podokně úloh Zdroj dat, v místní nabídce přejděte na položku programování a potom klikněte na Událost před změny.

Při klepnutí

Po klepnutí na tlačítko přidružený k této události spustí tato událost. Tato událost je k dispozici po přidání tlačítka do šablony formuláře. Můžete třeba provádět složitý výpočet použitím hodnot v podokně pole nástroje v hlavním zdroji dat, poté, co uživatel klikne na tlačítko.

Poklepejte na tlačítko a potom na kartě Obecné v dialogovém okně Vlastnosti klikněte na Upravit kód formuláře.

OnContextChange

Tato událost se spustí při změně fokusu ve formuláři. Například této události spustí, když uživatel přejde do ovládacího prvku Výběr data z textového pole nebo při přepnutí zobrazení. Tato událost nastane poté došlo k jiné události.

V nabídce Nástroje přejděte programování a potom klikněte na Událost při změně kontextu.

Při načtení

Tato událost se spustí pokaždé, když uživatel vytvoří nový formulář nebo otevře existující formulář založený na vaší šabloně. Například můžete zkopírovat seznam položek z sekundární zdroj dat do hlavního zdroje dat při otevření formuláře.

V nabídce Nástroje přejděte programování a potom klikněte na Událost při načítání.

OnMergeRequest

Tato událost se spustí při sloučení formuláře založené na šabloně formuláře. Můžete třeba zobrazit počet formulářů, které byly sloučeny přidělení uživateli stav během operace sloučení.

V nabídce Nástroje klikněte na Možnosti formuláře. V seznamu druh klikněte na Upřesnit. V části sloučení formulářů zaškrtněte políčko Sloučit pomocí vlastního kódu a potom klikněte na Upravit.

OnSaveRequest

Tato událost se spustí, když uživatel uloží formuláře založené na šabloně formuláře. Můžete třeba uložte formulář založeného na této šabloně formuláře do více než jednoho umístění, když uživatel uloží formulář. Aplikace InfoPath přidá Tato událost dva další řádky kódu: řádek, který se uloží formuláře a další řádek, který se dovíte, pokud Infopathu úspěšně formulář uložili.

V nabídce Nástroje klikněte na Možnosti formuláře. V seznamu druh klikněte na Otevřít a uložit. V části chování při uložení zaškrtněte políčko Uložit pomocí vlastního kódu a potom klikněte na Upravit.

OnSign

Tato událost spustí, když uživatel platí digitálního podpisu do formuláře. Například můžete přiřadit další data digitální podpis formuláři vyúčtování nákladů Pokud se uživatel přihlásí ho.

V nabídce Nástroje přejděte programování a klepněte na položku Znaménko událost.

OnSubmitRequest

Tato událost spustí, když uživatel odešle přihlásil dat formuláře. Můžete třeba odeslání dat formuláře do webové služby Zabezpečené poté, co uživatel klikne Odeslat v nabídce soubor. Protože aplikace InfoPath nepodporuje datového připojení webové služby Zabezpečené, budete muset přidat vlastní datová připojení, se kterými spolupracuje zabezpečené webové služby.

V nabídce Nástroje klikněte na Možnosti odeslání. Zaškrtněte políčko Povolit uživatelům odeslat tento formulář, klikněte na tlačítko provést vlastní akci pomocí kódu a potom klikněte na Upravit kód.

OnSwitchView

Tato událost spustí při otevření formuláře založené na šabloně formuláře nebo kombinace kláves vymění do jiného zobrazení ve formuláři. Třeba při přepnutí do určité zobrazení, můžete vytvořit e-mailovou zprávu, která obsahuje data z polí ve zdroji datového formuláře.

V nabídce Nástroje klikněte na programování a potom klikněte Na přepínač Zobrazit událost.

OnValidate

Tato událost spustí, když uživatel změní hodnoty v ovládacím prvku vázané na pole. Například pokud uživatel změní hodnotu v určitý ovládací prvek, můžete vypočítat nová hodnota pro další ovládací prvek pomocí čísla, který uživatel zadal a číslo, které je ve skriptu. Po spuštění obslužné rutiny události OnBeforeChange dojde k této události.

Klikněte pravým tlačítkem myši ovládacího prvku v šabloně formuláře nebo pole v podokně úloh Zdroj dat, v místní nabídce přejděte na položku programování a klepněte na položku Po ověření událost.

OnVersionUpgrade

Tato událost se spustí při otevření existujícího formuláře a číslo verze šablony formuláře před použít existující formulář je starší než číslo verze šablony formuláře v umístění pro publikování. Při otevření existujícího formuláře aplikace InfoPath zkontroluje číslo verze šablony formuláře před přidružený k existující formulář. Pokud šablona formuláře obsahuje novější číslo verze, aplikace InfoPath spustí obslužné rutiny události OnVersion při otevření existujícího formuláře. Představte si, například přidat nové pole do existující šablony formuláře a znovu publikovat, a chcete nové pole, které budou přidány do hlavního zdroje dat, pokud uživatel otevře existující formulář. Tato událost přidá nového pole do hlavního zdroje dat při otevření existujícího formuláře.

V nabídce Nástroje klikněte na Možnosti formuláře. V seznamu druh klikněte na Správa verzí. V seznamu Při aktualizaci verze klikněte na použít vlastní událost a potom klikněte na Upravit.

Začátek stránky

Důležité informace o kompatibilitě

Skript nemůžete přidat do Šablona formuláře kompatibilní s prohlížečem. Skript můžete přidat pouze do šablony formuláře, jejíž formuláře vyplnění v aplikaci InfoPath. Přizpůsobení šablony formuláře kompatibilní s prohlížečem pouze pomocí spravovaný kód.

Začátek stránky

Nastavení skriptovacího jazyka pro šablonu formuláře

Chcete-li přizpůsobit šablony formuláře pomocí skriptu, můžete Microsoft JScript nebo Microsoft Visual Basic Scripting Edition (VBScript). Ve výchozím nastavení aplikace InfoPath nakonfigurovaný tak, aby přidejte skript pomocí JScript. Pokud šablona formuláře neobsahuje spravovaný kód ani skript a budete chtít použít VBScript jako skriptovacího jazyka, můžete změnit skriptovacího jazyka pro šablonu formuláře VBScript. Obě skriptovacích jazyků nelze použít v této šabloně.

Pokud šablona formuláře obsahuje už skript v jednom jazyce a chcete použít jiný jazyk, musíte ho uložit do existující tak, aby skript můžete převést na jiný jazyk, odeberte skript ze šablony formuláře pomocí Možnosti formuláře Dialogové okno Přidat převedené skript zpět do šablony formuláře a pole. InfoPath nejde převést skripty nové skriptovacího jazyka. Změna jazyka skript v dialogovém okně Možnosti formuláře ovlivní pouze této šabloně. Jiných šablon formulářů bude mít JScript jako výchozí jazyk skriptování.

  1. V nabídce Nástroje klikněte na Možnosti formuláře.

  2. V seznamu kategorie v dialogovém okně Možnosti formuláře klikněte na programování.

  3. V seznamu jazyk kódu šablony formuláře v části programovacího jazyka, klikněte na jazyk VBScript.

    Poznámky: 

    • Po nastavení skriptovacího jazyka a vytvoření obslužné rutiny pro šablonu formuláře, nelze změnit skriptovacího jazyka pro šablonu formuláře.

    • Pokud jste nainstalovali Microsoft Visual Studio 2005 Tools for Applications, je výchozí jazyk Microsoft Visual Basic .NET. Chcete-li změnit skriptovacího jazyka VBScript můžete dál používat tento postup.

Začátek stránky

Zobrazit zprávu pokaždé, když dojde k události

Pokud budete chtít zjistit, co obslužné rutiny události spustit v odpovědi na akci nebo jiné události, můžete přidat dočasný kód, který zobrazí okno se zprávou při každém spuštění obslužné rutiny události. Tento kód by měl použít pouze k určení při spuštění obslužné rutiny události. Po přidání tento kód můžete náhled pro zobrazení formuláře založené na této šabloně formuláře nebo publikování šablony formuláře a vytvořte nové šablony formuláře. Některé obslužné rutiny události spustit jenom v případě, že vytvoříte formulář po publikování šablony formuláře. Proveďte akce, které by podle vás narazit obslužná rutina události. Obslužná rutina události spustí, zobrazí se zprávou.

Když zjistíte, jaké akce nebo události spustí obslužná rutina události, odeberte kód a pokračujte v návrhu šablony formuláře. Pokud neodebírat tento kód a potom publikování šablony formuláře, bude se uživatelům zobrazí toto okno se zprávou při spuštění obslužné rutiny události.

  1. Přidání rutiny události.

  2. Chcete-li přidat kód v jazyce JScript, zadejte XDocument.UI.Alert ("The událost název události právě proběhla"); Nahraďte název rutiny události. Třeba když naopak přidáte tento kód obslužné rutiny události OnValidate , zadali byste XDocument.UI.Alert ("The OnValidate obslužná právě proběhla");

  3. Chcete-li přidat kód v jazyce VBScript, když naopak přidáte tento kód obslužné rutiny události OnSaveRequest například zadejte XDocument.UI.Alert ("The událost název události právě proběhla") , zadejte XDocument.UI.Alert ("The OnSaveRequest obslužná právě proběhla")

  4. Otestovat kód, klikněte na Náhled v nabídce soubor, nebo stiskněte kombinaci kláves CTRL + SHIFT + B a proveďte akce uživatele, můžete začít události. Při výskytu události čárou kód okno se zprávou by měl zobrazit zprávu.

    Poznámka: Některé události může vyžadovat publikování šablony formuláře a vytvořte formulář založený na této šabloně před provedením akci uživatele ke spuštění události.

  5. Před publikování šablony formuláře a umožňují uživatelům vyplňovat formuláře založené na této šabloně, odstraňte kód, který jste použili k zobrazení okně se zprávou.

Začátek stránky

Přidejte skript, který spustí, když uživatel uloží dat formuláře

  1. V nabídce Nástroje klikněte na Možnosti formuláře.

  2. V seznamu kategorie v dialogovém okně Možnosti formuláře klikněte na Otevřít a uložit.

  3. V části chování při uložení zaškrtněte políčko Uložit pomocí vlastního kódu a potom klikněte na Upravit. Microsoft Script Editor spustí s kurzorem umístěným na obslužné rutiny události OnSaveRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSaveRequest(eventObj)
    {
    // Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation();
    // Write the code to be run after saving here.
    eventObj.ReturnStatus = true;
    }

    Jazyk VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSaveRequest(eventObj)
    ' Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation
    ' Write the code to be run after saving here.
    eventObj.ReturnStatus = True
    End Sub
  4. Udělejte jeden nebo oba následující kroky:

    • Přidání skript, který spustí před formulář aplikace InfoPath uloží, nahraďte komentář Write the code to be run before saving here.kódu.

    • Přidání skript, který se spustí po uložení formuláře aplikace InfoPath, nahraďte komentář Write the code to be run after saving here. kódu.

  5. Změny můžete otestovat kliknutím na Náhled na panelu nástrojů Standardní nebo stisknutím kláves CTRL+SHIFT+B.

    Poznámka: Obslužná rutina události spustí pouze po vytvoření formuláře založené na šabloně formuláře, publikování šablony formuláře v nabídce soubor na Publikovat a dokončete Publishing Wizard. Po publikování šablony formuláře vytvořit formulář a poté proveďte akci, kterou chcete spustit obslužná rutina události.

Začátek stránky

Přidejte skript, který se spustí při odeslání dat formuláře

  1. V nabídce Nástroje klikněte na Možnosti odeslání.

  2. V dialogovém okně Možnosti odeslání zaškrtněte políčko Povolit uživatelům odeslat tento formulář.

  3. Klikněte na provést vlastní akci pomocí kódu a potom klikněte na Upravit kód. Microsoft Script Editor spustí s kurzorem umístěným na obslužná rutina události OnSubmitRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSubmitRequest(eventObj)
    {
    // If the submit operation is successful, set
    // eventObj.ReturnStatus = true;
    // Write your code here
    }

    Jazyk VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSubmitRequest(eventObj)
    ' If the submit operation is successful, set
    ' eventObj.ReturnStatus = True
    ' Write your code here
    End Sub
  4. Nahraďte komentář If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here kódu.

  5. Změny můžete otestovat kliknutím na Náhled na panelu nástrojů Standardní nebo stisknutím kláves CTRL+SHIFT+B.

Začátek stránky

Přidejte skript, který se spustí při kliknutí tlačítko

  1. Tlačítko Nová, přidejte do zobrazení v šabloně formuláře a potom poklikejte na tlačítko.

    Poznámka: Chcete-li přidat skript k existujícímu tlačítku, poklikejte na existující tlačítko.

  2. Klikněte na kartu Obecné.

  3. Klikněte na Upravit kód formuláře. Microsoft Script Editor spustí s kurzorem umístěným na obslužná rutina události Při klepnutí pro toto tlačítko.

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function Button Name::OnClick(eventObj)
    {
    // Write your code here
    }

    Jazyk VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub Button Name_OnClick(eventObj)
    ' Write your code here
    End Sub
  4. Nahraďte komentář Write your code here kódu.

  5. Změny můžete otestovat kliknutím na Náhled na panelu nástrojů Standardní nebo stisknutím kláves CTRL+SHIFT+B.

Začátek stránky

Přidání skriptu, které se spouští při sloučení formulářů

  1. V nabídce Nástroje klikněte na Možnosti formuláře.

  2. V seznamu kategorie v dialogovém okně Možnosti formuláře klikněte na Upřesnit.

  3. V části sloučení formulářů zaškrtněte políčko Povolit slučování formulářů.

  4. Zaškrtněte políčko Sloučit pomocí vlastního kódu a potom klikněte na Upravit. Microsoft Script Editor spustí s kurzorem umístěným na obslužné rutiny události OnMergeRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnMergeRequest(eventObj)
    {
    // Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM);
    eventObj.ReturnStatus = true;
    }

    Jazyk VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnMergeRequest(eventObj)
    ' Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM)
    eventObj.ReturnStatus = True
    End Sub
  5. Nahraďte komentář Write the code that handles each form being merged here. kódu.

  6. Testování kódu v tomto případě publikování šablony formuláře, vytvářet několika formuláře založené na této šabloně formuláře a potom slučovat šablon formulářů.

    Poznámka: Odkazy na další informace o publikování šablony formuláře v části Viz také.

Začátek stránky

Přidání skriptu aktualizovat existujícího formuláře

Pokud jste aktualizovali dříve publikované šablony formuláře a chcete aktualizovat existující formuláře založené na této šabloně, můžete přidat skript k aktualizované šablony formuláře, které se spustí při otevření existujícího formuláře. Při otevření existujícího formuláře aplikace InfoPath zkontroluje číslo verze přidružené šablony formuláře v umístění pro publikování. Pokud je číslo verze šablony formuláře v umístění pro publikování novější než číslo verze do existujícího formuláře, označující, že má byl aktualizovaný, InfoPath běží kód událost aktualizaci stávajícího formuláře.

  1. V nabídce Nástroje klikněte na Možnosti formuláře.

  2. V seznamu kategorie v dialogovém okně Možnosti formuláře klikněte na Správa verzí.

  3. V seznamu Při aktualizaci verze klikněte na použít vlastní událost a potom klikněte na Upravit. Microsoft Script Editor spustí s kurzorem umístěným na obslužná rutina události OnVersionUpgrade .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnVersionUpgrade(eventObj)
    {
    // Write your code here
    }

    Jazyk VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnVersionUpgrade(eventObj)
    ' Write your code here
    End Sub
  4. Nahraďte komentář Write your code here kódu.

  5. Testování kódu v tomto případě publikování šablony formuláře, vytvářet několika formuláře založené na této šabloně formuláře, upravit a publikování aktualizované verze šablony formuláře a otevřete existující formulář založený na starší verzi této šabloně.

    Poznámka: Odkazy na další informace o publikování šablony formuláře v části Viz také.

Začátek stránky

Přidání skriptu pro jiné události

Tento postup slouží k přidání následující obslužné rutiny události do šablony formuláře:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • Při načtení

  • OnSwitchView

  • OnSign

  • OnValidate

  • V nabídce Nástroje přejděte programování a potom klikněte na událost přidáte do obslužné rutiny události. Microsoft Script Editor spustí s kurzorem umístěným na obslužná rutina události, kterou jste vybrali.

  • Nahraďte komentář Write your code here kódu.

Začátek stránky

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×