Prispôsobenie šablóny formulára s použitím skriptu

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

Ak máte skúseností s písaním skriptu, môžete pomocou skriptovacieho jazyka Microsoft JScript alebo Microsoft Visual Basic Scripting Edition (VBScript) do šablóny formulára programu Microsoft Office InfoPath pridať skript. Pridanie skriptu umožní prispôsobiť šablónu formulára rozsiahlejšie, ako umožňujú pravidlá, vzorce, overovanie údajov a podmienené formátovanie. Môžete napríklad pridať skript, ktorý vytvorí a odošle e-mailovú správu po prepnutí zobrazenia vo formulári založenom na šablóne formulára. Ak chcete vytvárať a odosielať e-mailovú správu, šablónu formulára je možné nakonfigurovať iba pomocou skriptu.

Obsah článku

Prehľad

Informácie týkajúce sa kompatibility

Nastavenie skriptovacieho jazyka pre šablónu formulára

Zobraziť správu zakaždým, keď sa vyskytne udalosť

Pridať skript, ktorý sa spustí, keď používateľ uloží údajov formulára

Pridajte skript, ktorý sa spustí po odoslaní údajov formulára

Pridať skript, ktorý sa spustí, keď používateľ klikne na tlačidlo

Pridať skript, ktorý sa spustí, keď sa zlúčia existujúce formuláre

Pridanie skriptu aktualizovať existujúce formuláre

Pridanie skriptu pre ostatné udalosti

Prehľad

Šablónu formulára programu InfoPath môžete prispôsobovať pomocou pravidiel, vzorcov, overovania údajov a podmieneného formátovania. Hoci sú tieto funkcie veľmi flexibilné a dokážu vyriešiť množstvo úloh, niektoré úlohy presahujú ich možností. Pravidlá napríklad nemôžete použiť na odoslanie e-mailovej správy po zadaní určitej hodnoty do bloku textu formulára. Ak potrebujete šablónu formulára prispôsobiť spôsobom, ktorý presahuje možnosti týchto funkcií a máte skúsenosti s písaním skriptov s použitím skriptovacieho jazyka JScript alebo VBScript, môžete pridať skript, ktorý sa spustí po otvorení nového formulára alebo úprave existujúceho formulára založeného na šablóne formulára.

Po pridaní skriptu do šablóny formulára program InfoPath spustí program Microsoft Script Editor (MSE), ktorý umožňuje pridávať, upravovať a ladiť skript v šablóne formulára a umiestni kurzor k zvolenej udalosti. Program InfoPath do skriptu automaticky pridá obsluhu udalosti. Obsluha udalosti je kód funkcie v šablóne formulára programu InfoPath, ktorý odpovedá na akcie používateľa alebo zmeny v údajoch XML vo formulári. Ak napríklad chcete, aby používatelia ukladali formuláre do niektorých sieťových umiestnení, môžete pridať skript do obsluhy udalosti OnSaveRequest. Po pridaní skriptu, ktorý sa spustí po uložení formulára založenom na šablóne formulára, program InfoPath spustí editor skriptov a pridá do skriptu jeden z nasledujúcich kódov.

Poznámka : Kód pridaný programom InfoPath závisí od zvoleného skriptovacieho jazyka.

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;
}

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

Kód je možné pridať na príslušné miesta v obsluhe udalosti, ktorá formulár ukladá do rozličných sieťových umiestnení. Keď používateľ uloží formulár založený na šablóne formulára, program InfoPath spustí kód v obsluhe udalosti OnSaveRequest.

Poznámka : V tomto článku je uvedený prehľad vytvárania skriptov v šablóne formulára na vyššej úrovni. Ďalšie informácie o programe Microsoft Script Editor a určitých objektoch, metódach, udalostiach a vlastnostiach používaných v programe InfoPath nájdete v príručke InfoPath Developer's Reference.

Okrem jednej udalosti, program InfoPath automaticky pridáva obsluhu udalosti pre všetky nasledujúce udalosti.

Event handler

Description

Steps for creating

OnAfterChange

This event runs after a user changes the value in the specified control bound to a field. For example, you can display a custom HTML task pane after a user selects an item in a list box control. This event runs after the OnValidate event.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Change Event.

OnAfterImport

This event runs after the user successfully merges several forms into one form.

Manually add the OnAfterImport event handler declaration directly to the script file by using MSE. This event handler cannot be created in design mode.

OnBeforeChange

This event runs after a user changes the value in a control and before the value is added to the specified field bound to that control. For example, you can prevent a user from adding an additional row before filling out the last row in a repeating table.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On Before Change Event.

OnClick

This event runs when a user clicks a button associated with this event. This event is available after you add a button to the form template. For example, you can perform a complex calculation by using the values in fields in the main data source when a user clicks the button.

Double-click the button control and then on the General tab of the Button Properties dialog box, click Edit Form Code.

OnContextChange

This event runs when the focus changes in the form. For example, this event runs when a user navigates from a text box to a date picker, or when a user switches views. This event occurs after all other events have occurred.

On the Tools menu, point to Programming, and then click On Context Change Event.

OnLoad

This event runs whenever a user creates a new form or opens an existing form based on your form template. For example, you can copy a list of items from a secondary data source to the main data source when a user opens the form.

On the Tools menu, point to Programming, and then click On Load Event.

OnMergeRequest

This event runs when forms based on your form template are merged. For example, you can display the number of forms that were merged to give a user a status during the merge operation.

On the Tools menu, click Form Options. In the Category list, click Advanced. Under Merge forms, select the Merge using custom code check box, and then click Edit.

OnSaveRequest

This event runs when a user saves a form based on your form template. For example, you can save the form based on this form template to more than one location when a user saves the form. InfoPath adds two additional lines of code to this event: a line that saves the form and another line that tells you if InfoPath successfully saved the form.

On the Tools menu, click Form Options. In the Category list, click Open and Save. Under Save behavior, select the Save using custom code check box, and then click Edit.

OnSign

This event runs when a user applies a digital signature to a form. For example, you can add additional data to the digital signature of an expense report form when a user signs it.

On the Tools menu, point to Programming, and then click On Sign Event.

OnSubmitRequest

This event runs when a user submits his or her form data. For example, you can submit the form data to a secure Web service when the user clicks Submit on the File menu. Since InfoPath does not support a data connection to a secure Web service, you need to add a custom data connection that works with your secure Web service.

On the Tools menu, click Submit Options. Select the Allow users to submit this form check box, click Perform custom action using Code, and then click Edit Code.

OnSwitchView

This event runs when a user opens a form based on your form template or switches to another view in the form. For example, when a user switches to a specific view, you can create an e-mail message that contains data from the fields in the form's main data source.

On the Tools menu, click Programming, and then click On Switch View Event.

OnValidate

This event runs when a user changes the value in a control bound to a field. For example, when the user changes the value in a specific control, you can calculate a new value for another control by using the number that the user entered and a number that is in the script. This event occurs after the OnBeforeChange event handler runs.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Validate Event.

OnVersionUpgrade

This event runs when a user opens an existing form and the version number of the form template used by the existing form is older than the version number of the form template in the publish location. When a user opens an existing form, InfoPath checks the version number of the form template associated with the existing form. If the form template has a newer version number, InfoPath runs the OnVersion event handler when the user opens the existing form. For example, imagine that you add a new field to an existing form template and republish it, and you want the new field to be added to the main data source if a user opens an existing form. This event adds the new field to the main data source when a user opens an existing form.

On the Tools menu, click Form Options. In the Category list, click Versioning. In the On version upgrade list, click Use custom event, and then click Edit.

Na začiatok stránky

Požiadavky na kompatibilitu

Skript nie je možné pridať do šablóna formulára kompatibilná s prehliadačom. Skript je možné pridať iba do šablóny, ktorej formuláre sa budú vypĺňať v programe InfoPath. Šablónu formulára kompatibilnú s prehľadávačom môžete prispôsobiť iba pomocou spravovaného kódu.

Na začiatok stránky

Nastavenie skriptovacieho jazyka pre šablónu formulára

Ak chcete šablónu formulára prispôsobiť pomocou skriptu, môžete použiť buď jazyk Microsoft JScript alebo Microsoft Visual Basic Scripting Edition (VBScript). V predvolenom nastavení je program InfoPath nakonfigurovaný na pridanie skriptu použitím jazyka JScript. Ak šablóna neobsahuje žiadny skript ani riadený kód a uprednostňujete použitie jazyka VBScript ako skriptovací jazyk, môžete skriptovací jazyk šablóny formulára zmeniť na jazyk VBScript. Nie je možné použiť obidva skriptovacie jazyky v jednej šablóne formulára.

Ak šablóna formulára už obsahuje skript v jednom jazyku a chcete použiť iný jazyk, je potrebné existujúci skript uložiť, aby ste ho mohli prekonvertovať do iného jazyka, skript zo šablóny formulára odstrániť v dialógovom okne Možnosti formulára a potom skonvertovaný skript vrátiť späť do šablóny formulára. Program InfoPath nedokáže konvertovať skripty do nového skriptovacieho jazyka. Zmena skriptovacieho jazyka v dialógovom okne Možnosti formulára má vplyv len na túto šablónu formulára. Ostatné šablóny formulára budú mať nastavený jazyk JScript ako predvolený skriptovací jazyk.

  1. V ponuke Nástroje kliknite na položku Možnosti formulára.

  2. V zozname Kategória dialógového okna Možnosti formulára kliknite na položku Programovanie.

  3. V zozname Jazyk kódu šablóny formulára v časti programovací jazyk, kliknite na položku VBScript.

    Poznámky : 

    • Potom, ako ste nastavili skriptovací jazyk a vytvorili ste jeden alebo viaceré popisovače udalostí, už nie je možné zmeniť skriptovací jazyk pre šablónu formulára.

    • Ak máte nainštalované nástroje pre aplikácie Microsoft Visual Studio 2005, predvolený jazyk je Microsoft Visual Basic .NET. Ak chcete zmeniť skriptovací jazyk na VBScript, môžete použiť tento postup.

Na začiatok stránky

Zobrazenie hlásenia pri každom výskyte udalosti

Ak chcete zistiť, ktoré obsluhy udalosti sa spustia ako odozva na určitú akciu alebo inú udalosť, môžete pridať dočasný kód, ktorý zobrazí okno s hlásením po každom spustení danej obsluhy udalosti. Tento kód by ste mali používať iba na určenie okolností, za ktorých sa daná obsluha udalosti spustí. Po pridaní tohto kódu môžete ukážku používať na zobrazenie formulára vychádzajúceho z tejto šablóny formulára alebo na publikovanie šablóny formulára a následné vytvorenie novej šablóny formulára. Niektoré obsluhy udalosti sa spustia iba v prípade, že ste po publikovaní šablóny formulára vytvorili formulár. Môžete vykonať akciu, o ktorej sa domnievate, že obsluhu udalosti spustí. Po jej spustení sa zobrazí okno s hlásením.

Po stanovení akcií alebo udalostí, ktoré obsluhu udalosti spúšťajú, tento kód odstráňte a pokračujte v navrhovaní šablóny formulára. Ak tento kód neodstránite a budete šablónu formulára publikovať, používateľom sa bude toto okno s hlásením po spustení obsluhy udalosti zobrazovať.

  1. Pridajte obsluhu udalosti.

  2. Ak chcete pridať kód v jazyku JScript, reťazec XDocument.UI.Alert ("udalosť názov udalosti práve spustili"); Nahraďte názov vášho obsluha udalostí. Napríklad, ak pridáte tento kód do obsluhy udalostí overovanie , napíšte XDocument.UI.Alert ("overovanie obsluha udalostí práve spustili");

  3. Pridať kód v jazyku VBScript, reťazec XDocument.UI.Alert ("udalosť názov udalosti práve spustili") napríklad, ak pridáte k udalosti OnSaveRequest tento kód, ktorý by reťazec XDocument.UI.Alert ("OnSaveRequest obsluha udalostí práve spustili")

  4. Ak chcete kód otestovať, v ponuke Súbor kliknite na položku Ukážka, alebo stlačte kombináciu klávesov CTRL+SHIFT+B a následne vykonajte akciu používateľa, ktorá udalosť spúšťa. Po výskyte udalosti v určitom riadku kódu by sa malo zobraziť okno s hlásením.

    Poznámka : Niektoré udalosti môžu pred vykonaním používateľskej akcie na jej spustenie vyžadovať publikovanie šablóny formulára a následné vytvorenie formulára založeného na šablóne formulára.

  5. Predtým, než šablónu formulára publikujete a používateľom povolíte formuláre vychádzajúce z danej šablóny formulára vypĺňať, odstráňte kód použitý na zobrazenie okna s hlásením.

Na začiatok stránky

Pridanie skriptu, ktorý sa spustí po uložení údajov formulára

  1. V ponuke Nástroje kliknite na položku Možnosti formulára.

  2. V dialógovom okne Formulár - možnosti kliknite v zozname Kategória na položku Otvorenie a uloženie.

  3. V časti Správanie pri ukladaní začiarknite políčko Uložiť pomocou vlastného kódu a kliknite na tlačidlo Upraviť. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri obsluhe udalosti 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;
    }

    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. Vykonajte jednu z nasledujúcich možností:

    • Ak chcete pridať skript, ktorý sa spustí predtým, než program InfoPath formulár uloží, nahraďte komentár Write the code to be run before saving here.vlastným kódom.

    • Ak chcete pridať skript, ktorý sa spustí po uložení formulára v programe InfoPath, nahraďte komentár Write the code to be run after saving here.vlastným kódom.

  5. Ak chcete otestovať vykonané zmeny, na štandardnom paneli s nástrojmi, kliknite na príkaz Ukážka alebo stlačte kombináciu klávesov CTRL + SHIFT + B.

    Poznámka : Ak sa obsluha udalostí spúšťa iba po vytvorení formulára založenom na šablóne formulára, kliknutím v ponuke Súbor na položku Publikovať šablónu formulára publikujte a dokončite Sprievodcu publikovaním. Po publikovaní šablóny formulára vytvorte formulár a následne vykonajte akciu, ktorou obsluhu udalostí spustíte.

Na začiatok stránky

Pridanie skriptu, ktorý sa spustí po odoslaní údajov formulára

  1. V ponuke Nástroje kliknite na položku Možnosti odoslania.

  2. V dialógovom okne Možnosti odoslania skontrolujte, či je začiarknuté políčko Povoliť používateľom odoslanie tohto formulára.

  3. Kliknite na položku Vykonať vlastnú akciu pomocou kódu a na tlačidlo Upraviť kód. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri obsluhe udalosti 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
    }

    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. Komentár If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here nahraďte vlastným kódom.

  5. Ak chcete otestovať vykonané zmeny, na štandardnom paneli s nástrojmi, kliknite na príkaz Ukážka alebo stlačte kombináciu klávesov CTRL + SHIFT + B.

Na začiatok stránky

Pridanie skriptu, ktorý sa spustí kliknutím na tlačidlo

  1. Do zobrazenia v šablóne formulára pridajte nové tlačidlo a dvakrát naň kliknite.

    Poznámka : Ak pridávate skript k existujúcemu tlačidlu, dvakrát naň kliknite.

  2. Kliknite na kartu Všeobecné.

  3. Kliknite na tlačidlo Upraviť kód formulára. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri obsluhe udalosti OnClick.

    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
    }

    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. Komentár Write your code here nahraďte vlastným kódom.

  5. Ak chcete otestovať vykonané zmeny, na štandardnom paneli s nástrojmi, kliknite na príkaz Ukážka alebo stlačte kombináciu klávesov CTRL + SHIFT + B.

Na začiatok stránky

Pridanie skriptu, ktorý sa spustí po zlúčení existujúcich formulárov

  1. V ponuke Nástroje kliknite na položku Možnosti formulára.

  2. V dialógovom okne Formulár - možnosti kliknite v zozname Kategória na položku Spresnenie.

  3. V časti Zlúčenie formulárov začiarknite políčko Zapnúť zlučovanie formulárov.

  4. Začiarknite políčko Zlúčiť pomocou vlastného kódu a kliknite na tlačidlo Upraviť. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri obsluhe udalosti 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;
    }

    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. Komentár Write the code that handles each form being merged here. nahraďte vlastným kódom.

  6. Ak chcete otestovať kód v prípade tejto udalosti, šablónu formulára publikujte, na základe tejto šablóny vytvorte niekoľko formulárov a šablóny formulárov zlúčte.

    Poznámka : Ďalšie informácie o publikovaní šablóny formulára získate po kliknutí na prepojenia v časti Pozrite tiež.

Na začiatok stránky

Pridanie skriptu určeného na aktualizáciu existujúcich formulárov

Ak aktualizujete publikovanú šablónu formulára a chcete aktualizovať existujúce formuláre, ktoré sú na tejto šablóne založené, môžete do aktualizovanej šablóny formulára pridať skript, ktorý sa spustí po otvorení jedného z existujúcich formulárov. Po otvorení existujúceho formulára program InfoPath skontroluje číslo verzie priradenej šablóny formulára v mieste publikovania. Ak je verzia šablóny formulára v mieste publikovania novšia ako verzia v existujúcom formulári, naznačuje to, že šablóna bola aktualizovaná a program InfoPath spustí kód v prípade výskytu takejto udalosti a existujúci formulár aktualizuje.

  1. V ponuke Nástroje kliknite na položku Možnosti formulára.

  2. V dialógovom okne Formulár - možnosti kliknite v zozname Kategória na položku Riadenie verzií.

  3. V zozname Pri inovácii verzie kliknite na položku Použiť vlastnú udalosť a na tlačidlo Upraviť. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri obsluhe udalosti 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
    }

    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. Komentár Write your code here nahraďte vlastným kódom.

  5. Ak chcete otestovať kód v prípade výskytu tejto udalosti, šablónu formulára publikujte, na základe tejto šablóny vytvorte niekoľko formulárov, aktualizovanú verziu šablóny formulára upravte a publikujte a následne otvorte existujúci formulár založený na staršej verzii tejto šablóny.

    Poznámka : Ďalšie informácie o publikovaní šablóny formulára získate po kliknutí na prepojenia v časti Pozrite tiež.

Na začiatok stránky

Pridanie skriptu pre ostatné udalosti

Túto procedúru je možné použiť na pridanie nasledujúcich funkcií na obsluhu udalostí do šablóny formulára:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • V ponuke Nástroje ukážte na položku Programovanie a kliknutím na udalosť pridajte obsluhu danej udalosti. Program Microsoft Script Editor sa spustí s kurzorom nastaveným pri zvolenej obsluhe udalosti.

  • Komentár Write your code here nahraďte vlastným kódom.

Na začiatok stránky

Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×