Prilagajanje predloge obrazca z uporabo skripta

Pomembno : Besedilo članka je prevedeno strojno. Glejte zavrnitev odgovornosti. Angleško različico tega članka najdete tukaj .

Če ste seznanjeni s pisanjem skripta, lahko v predlogo obrazca programa Microsoft Office InfoPath dodate skript z uporabo skriptnih jezikov Microsoft JScript ali Microsoft Visual Basic Scripting Edition (VBScript). Z dodajanjem skripta lahko predlogo obrazca prilagodite še bolj, kot to omogočajo pravila, formule, preverjanje veljavnosti podatkov ali pogojno oblikovanje. Dodate lahko na primer skript, ki ustvari in pošlje e-poštno sporočilo, ko uporabnik preklopi pogled v obrazcu, ki temelji na vaši predlogi obrazca. Predlogo obrazca lahko konfigurirate, če želite ustvariti in poslati e-poštno sporočilo samo s skriptom.

V tem članku

Pregled

Pomisleki o združljivosti

Nastavitev skriptnega jezika za predlogo obrazca

Prikaz sporočila vsakič, ko pride do dogodka

Dodajte skript, ki se zažene, ko uporabnik shrani podatkov obrazca

Dodajte skript, ki se zažene, ko uporabnik podatkov obrazca

Dodajte skript, ki se zažene, ko uporabnik klikne gumb

Dodajte skript, ki se zažene ob spoji obstoječih obrazcev

Dodajte skript za posodobitev obstoječih obrazcev

Dodajte skript za druge dogodke

Pregled

InfoPathovo predlogo obrazca lahko prilagodite s pravili, formulami, preverjanjem veljavnosti podatkov in pogojnim oblikovanjem. Čeprav so te funkcije zelo prilagodljive in lahko obravnavajo veliko različnih opravil, nekatera opravila presegajo zmogljivosti teh funkcij. S pravili na primer ne morete poslati e-poštnega sporočila, ko uporabnik v obrazcu v polje z besedilom vnese vrednost. Če želite predlogo obrazca prilagoditi tako, da presega zmogljivosti teh funkcij, in če ste seznanjeni s pisanjem skriptov s skriptnima jezikoma JScript in VBScript, lahko dodate skript, ki se zažene, ko uporabnik odpre nov obrazec ali spremeni obstoječ obrazec, ki temelji na vaši predlogi obrazca.

Ko v predlogo obrazca dodate skript, InfoPath zažene program MSE (Microsoft Script Editor), ki vam omogoči, da dodate, uredite in odpravite napake v predlogi obrazca, in ki postavi kazalec v izbrani dogodek. InfoPath v skript samodejno doda rutino za obravnavo dogodkov. Rutina za obravnavo dogodkov je koda funkcije v InfoPathovi predlogi obrazca, ki odgovori na dejanje uporabnika ali spremembo podatkov XML v obrazcu. Če na primer želite, da uporabniki shranijo svoje obrazce na različna omrežna mesta, lahko rutini za obravnavo dogodka OnSaveRequest dodate skript. Ko dodate skript, ki se zažene, ko uporabnik shrani obrazec, ki temelji na vaši predlogi obrazca, InfoPath zažene urejevalnik skriptov in skriptu doda eno od teh kod.

Opomba : Koda, ki jo InfoPath doda, je odvisna od izbranega skriptnega jezika.

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

Rutini za obravnavo dogodkov lahko nato na ustrezna mesta dodate kodo, ki shrani obrazec na drugo omrežno mesto. Ko uporabnik shrani obrazec, ki temelji na tej predlogi obrazca, InfoPath v rutini za obravnavo dogodkov OnSaveRequest zažene kodo.

Opomba : V tem članku je podrobno razloženo, kako v predlogi obrazca ustvariti skript. Če želite izvedeti več o programu Microsoft Script Editor in posebnih predmetih, metodah, dogodkih in lastnostih, ki se uporabljajo v InfoPathu, si oglejte sklic na razvijalca InfoPatha.

InfoPath samodejno doda rutino za obravnavo dogodkov vsem tem dogodkom razen enemu.

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 vrh strani

Pomisleki o združljivosti

V predloga obrazca, združljiva z brskalnikom, ne morete dodati skripta. Skript lahko dodate samo v predlogo obrazca, na kateri temeljijo obrazci, ki se bodo izpolnjevali v InfoPathu. Predlogo obrazca, ki je združljiva z brskalnikom, lahko prilagodite samo z upravljano kodo.

Na vrh strani

Nastavitev skriptnega jezika za predlogo obrazca

Če želite predlogo obrazca prilagoditi s skriptom, lahko uporabite Microsoft JScript ali Microsoft Visual Basic Scripting Edition (VBScript). InfoPath je privzeto konfiguriran na dodajanje skripta s skriptnim jezikom JScript. Če v vašem obrazcu ni nobenega skripta ali upravljane kode, uporabiti pa želite skriptni jezik VBScript, lahko spremenite skriptni jezik za predlogo obrazca v skriptni jezik VBScript. V isti predlogi obrazca ne morete uporabiti obeh skriptnih jezikov.

Če je v obrazcu že skript v enem jeziku, vendar želite uporabiti drug jezik, morate shraniti obstoječi skript, tako da lahko pretvorite skript v drug jezik, v pogovornem oknu Možnosti obrazca odstraniti skript iz predloge obrazca in nato dodati pretvorjeni skript nazaj v predlogo obrazca. InfoPath ne more pretvoriti skriptov v nov skriptni jezik. Sprememba skriptnega jezika v pogovornem oknu Možnosti obrazca vpliva samo na trenutno predlogo obrazca. V drugih predlogah obrazcev bo kot privzeti skriptni jezik uporabljen jezik JScript.

  1. V meniju Orodja kliknite Možnosti obrazca.

  2. V pogovornem oknu Možnosti obrazca, na seznamu Zvrst kliknite Programiranje.

  3. Na seznamu jezik kode predloge obrazca pod programski jezik, kliknite VBScript.

    Opombe : 

    • Ko nastavite skriptni jezik in ustvarite eno ali več rutin za obravnavo dogodkov za predlogo obrazca, ne morete spremeniti skriptnega jezika za predlogo obrazca.

    • Če ste namestili orodja Microsoft Visual Studio 2005 Tools for Applications, je privzeti skriptni jezik Microsoft Visual Basic .NET, vendar s tem postopkom še vedno lahko spremenite skriptni jezik v jezik VBScript.

Na vrh strani

Prikaz sporočila ob vsakem pojavu dogodka

Če želite vedeti, katere rutine za obravnavo dogodkov se zaženejo kot odziv na dejanje ali drug dogodek, lahko dodate začasno kodo, če želite prikazati sporočilno okno vedno, ko se zažene rutina za obravnavo dogodkov. To kodo uporabite, samo če želite določiti, kdaj naj se zažene rutina za obravnavo dogodkov. Ko dodate to kodo, si lahko v predogledu ogledate obrazec, ki temelji na tej predlogi obrazca, ali objavite predlogo obrazca in nato ustvarite novo predlogo obrazca. Nekatere rutine za obravnavo dogodkov se zaženejo šele, ko najprej objavite predlogo obrazca in nato ustvarite obrazec. Nato lahko izvedete dejanje, ki bo po vašem mnenju zagnalo rutino za obravnavo dogodkov. Ko se zažene rutina za obravnavo dogodkov, se pojavi sporočilno okno.

Ko določite, katera dejanja ali dogodki zaženejo rutino za obravnavo dogodkov, odstranite kodo in nato nadaljujte z načrtovanjem predloge obrazca. Če ne odstranite kode in nato objavite predlogo obrazca, se uporabnikom pojavi to sporočilno okno, ko se zažene rutina za obravnavo dogodkov.

  1. Dodajte svojo rutino za obravnavo dogodkov.

  2. Če želite dodati kodo v JScript, vnesite XDocument.UI.Alert ("dogodek ime dogodka samo je prišlo «»); Zamenjajte z imenom rutina za obravnavo dogodkov. Na primer, če dodate to kodo za obravnavo dogodkov OnValidate , vnesite XDocument.UI.Alert («v OnValidate rutina za obravnavo dogodkov pravkar zagnali ");

  3. Dodajanje kode v VBScript, vnesite XDocument.UI.Alert ("dogodek ime dogodka samo je prišlo« ) , na primer, če dodate to kodo za obravnavo dogodkov OnSaveRequest , vnesite XDocument.UI.Alert («v OnSaveRequest v rutina za obravnavo dogodkov pravkar zagnali ««)

  4. Če želite preskusiti kodo, v meniju Datoteka kliknite Predogled ali pritisnite CTRL+SHIFT+B in nato izvedite dejanje uporabnika, ki lahko zažene dogodek. Ko se pojavi dogodek z vrstico kode, bi sporočilno okno moralo prikazati vaše sporočilo.

    Opomba : Nekateri dogodki lahko zahtevajo, da najprej objavite predlogo obrazca in nato ustvarite obrazec, ki temelji na tej predlogi obrazca, preden lahko izvedete dejanje uporabnika, ki sproži dogodek.

  5. Preden objavite predlogo obrazca in uporabnikom omogočite, da izpolnijo obrazce, ki temeljijo na tej predlogi obrazca, izbrišite kodo, ki ste jo uporabili za prikaz sporočilnega okna.

Na vrh strani

Dodajanje skripta, ki se zažene, ko uporabnik shrani podatke v obrazcu

  1. V meniju Orodja kliknite Možnosti obrazca.

  2. V pogovornem oknu Možnosti obrazca na seznamu Kategorija kliknite Odpiranje in shranjevanje.

  3. Pod Shrani obnašanje potrdite potrditveno polje Shrani s kodo po meri in nato kliknite Urejanje. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov 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. Naredite eno ali oboje od tega:

    • Če želite dodati skript, ki se zažene, preden InfoPath shrani obrazec, zamenjajte komentar Write the code to be run before saving here. s svojo kodo.

    • Če želite dodati skript, ki se zažene, potem ko InfoPath shrani obrazec, zamenjajte komentar Write the code to be run after saving here. s svojo kodo.

  5. Če želite preskusiti spremembe, kliknite Predogled v orodni vrstici Standard ali pa pritisnite tipke CTRL + SHIFT + B.

    Opomba : Če se rutina za obravnavo dogodkov zažene šele, ko ustvarite obrazec, ki temelji na vaši predlogi obrazca, objavite predlogo obrazca, tako da v meniju Datoteka kliknete Objavi, in nato dokončajte čarovnika za objavljanje. Ko objavite predlogo obrazca, ustvarite obrazec in nato izvedite dejanje za zagon rutine za obravnavo dogodkov.

Na vrh strani

Dodajanje skripta, ki se zažene, ko uporabnik pošlje podatke obrazca

  1. V meniju Orodja kliknite Možnosti pošiljanja.

  2. V pogovornem oknu Možnosti pošiljanja potrdite polje Dovoli uporabnikom, da pošljejo ta obrazec.

  3. Kliknite Izvedi dejanje po meri z uporabo kode in nato še Urejanje kode. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov 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. Zamenjajte komentar If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here s svojo kodo.

  5. Če želite preskusiti spremembe, kliknite Predogled v orodni vrstici Standard ali pa pritisnite tipke CTRL + SHIFT + B.

Na vrh strani

Dodajanje skripta, ki se zažene, ko uporabnik klikne gumb

  1. Pogledu v predlogi obrazca dodajte nov gumb in nato dvokliknite gumb.

    Opomba : Če skript dodajate obstoječemu gumbu, dvokliknite obstoječi gumb.

  2. Kliknite jeziček Splošno.

  3. Kliknite Urejanje kode obrazca. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov OnClick za ta gumb.

    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. Zamenjajte komentar Write your code here s svojo kodo.

  5. Če želite preskusiti spremembe, kliknite Predogled v orodni vrstici Standard ali pa pritisnite tipke CTRL + SHIFT + B.

Na vrh strani

Dodajanje skripta, ki se zažene, ko se spojijo obstoječi obrazci

  1. V meniju Orodja kliknite Možnosti obrazca.

  2. V pogovornem oknu Možnosti obrazca na seznamu Kategorija kliknite Dodatno.

  3. Pod Spajanje obrazcev potrdite potrditveno polje Omogoči spajanje obrazcev.

  4. Potrdite potrditveno polje Spajanje s kodo po meri in nato kliknite Urejanje. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov 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. Zamenjajte komentar Write the code that handles each form being merged here. s svojo kodo

  6. Če želite preskusiti kodo v tem dogodku, objavite predlogo obrazca, ustvarite več obrazcev, ki temeljijo na tej predlogi obrazca, in nato spojite predloge obrazca.

    Opomba : Če želite več informacij o objavi predloge obrazca, si oglejte povezave v odseku Glejte tudi.

Na vrh strani

Dodajanje skripta za posodobitev obstoječih obrazcev

Če ste posodobili že objavljeno predlogo obrazca in želite posodobiti obstoječe obrazce, ki temeljijo na tej predlogi obrazca, lahko v posodobljeno predlogo obrazca dodate skript, ki se zažene, ko uporabnik odpre enega od obstoječih obrazcev. Ko uporabnik odpre obstoječ obrazec, InfoPath na mestu objave preveri številko različice predloge obrazca, ki je povezana z njim. Če je številka različice predloge obrazca na mestu objave novejša od številke različice v obstoječem obrazcu, kar pomeni, da je bila predloga obrazca posodobljena, potem InfoPath v tem dogodku zažene kodo, da posodobi obstoječi obrazec.

  1. V meniju Orodja kliknite Možnosti obrazca.

  2. V pogovornem oknu Možnosti obrazca na seznamu Kategorija kliknite Različice.

  3. Na seznamu Ob nadgradnji različice kliknite Uporaba dogodka po meri in nato kliknite Urejanje. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov 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. Zamenjajte komentar Write your code here s svojo kodo.

  5. Če želite preskusiti kodo v tem dogodku, objavite predlogo obrazca, ustvarite več obrazcev, ki temeljijo na tej predlogi obrazca, spremenite in objavite posodobljeno različico predloge obrazca ter nato odprite obstoječ obrazec, ki temelji na starejši različici te predloge obrazca.

    Opomba : Če želite več informacij o objavi predloge obrazca, si oglejte povezave v odseku Glejte tudi.

Na vrh strani

Dodajanje skripta za druge dogodke

S tem postopkom je mogoče v predlogo obrazca dodati te rutine za obravnavo dogodkov:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • V meniju Orodja pokažite na Programiranje in nato kliknite dogodek, ki ga želite dodati rutini za obravnavo dogodkov. Program Microsoft Script Editor se zažene s kazalcem na rutini za obravnavo dogodkov, ki ste jo izbrali.

  • Zamenjajte komentar Write your code here s svojo kodo.

Na vrh strani

Opomba : Strojni prevod – zavrnitev odgovornosti: Ta članek je bil preveden z računalniškim programom brez človeškega posredovanja. Microsoft skuša s strojno prevedenimi članki vsebino o Microsoftovih izdelkih, storitvah in tehnologijah približati osebam, ki ne razumejo angleščine. Ker je bil članek strojno preveden, so lahko v njem jezikovne, slovnične in pravopisne napake.

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×