Vormimalli kohandamine skripti abil

NB! :  See artikkel on masintõlgitud, vaadake lahtiütlust. Selle artikli ingliskeelse versiooni leiate aadressilt (viiteks).

Kui olete skriptide kirjutamisega tuttav, saate Microsoft JScripti või Microsoft Visual Basic Scripting Editioni (VBScripti) skriptimiskeele abil lisada oma Microsoft Office InfoPathi vormimallidele skripte. Skriptide abil saate vormimalli koostamisel kasutada reeglite, valemite, andmete valideerimise või tingimusvormingu pakutavast rohkem kohandamisvõimalusi. Näiteks võite lisada skripti, mis loob ja saadab meilisõnumi, kui kasutaja vahetab teie vormimallil põhinevas vormis aktiivset vaadet. Vormimalli saate meilisõnumite loomiseks ja saatmiseks konfigureerida ainult skripti abil.

Selle artikli teemad

Ülevaade

Ühilduvus

Vormimalli skriptimiskeele seadmine

Kuva sõnum iga kord, kui leiab aset sündmus

Skripti, mis käivitub, kui kasutaja salvestab vormi andmete lisamine

Skripti, mis käivitub, kui kasutaja edastab vormi andmete lisamine

Skripti, mis töötab, kui kasutaja klõpsab nuppu Lisa.

Skripti, mida käitatakse ühendatakse olemasolevate vormide lisamine

Skripti värskendada olemasolevat vormi lisamine

Lisage skripti muude sündmuste jaoks.

Ülevaade

InfoPathi vormimalle saate kohandada reeglite, valemite, andmete valideerimise ja tingimusvormingu abil. Ehkki need funktsioonid on paindlikud ja nende abil saab täita laias valikus ülesandeid, ei suuda need siiski päris kõigega hakkama saada. Näiteks ei saa reegleid kasutada meilisõnumi saatmiseks juhul, kui kasutaja sisestab vormi tekstiväljale teatud väärtuse. Kui teil on vaja vormimalli kohandada sellisel määral, mida nende funktsioonide pakutavad variandid ei võimalda, kuid oskate JScripti või VBScripti skriptimiskeeles skripte kirjutada, võite lisada skripti, mis käivitatakse juhul, kui kasutaja avab uue teie vormimallil põhineva vormi või muudab mõnda olemasolevat vormi.

Skripti lisamisel vormimallile käivitab InfoPath Microsoft Script Editori (MSE), kus saate vormimalli skripte lisada, redigeerida ja siluda ning mis viib kursori teie valitud sündmusele. InfoPath lisab skriptile automaatselt sündmuseohjuri. Sündmuseohjur on InfoPathi vormimalli funktsioonikood, mis reageerib kasutajapoolsele toimingule või vormi XML-andmetes tehtud muudatustele. Kui soovite näiteks, et kasutajad salvestaksid vormi mitmesse võrgukohta, saate skripti lisada sündmusohjurile OnSaveRequest. Sellise skripti lisamisel, mis tuleb käivitada siis, kui kasutaja salvestab teie vormimallil põhineva vormi, käivitab InfoPath skriptiredaktori ja lisab skripti ühe järgmistest koodidest.

Märkus. : InfoPathi lisatav kood sõltub teie valitud skriptimiskeelest.

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

Seejärel saate koodi lisada vastavatesse kohtadesse sündmuseohjuris, mis salvestab vormi määratud võrgukohta. Kui kasutaja salvestab sellel vormimallil põhineva vormi, käivitab InfoPath sündmuseohjuris OnSaveRequest sisalduva koodi.

Märkus. : Käesolevas artiklis antakse vormimalli skriptide loomisest ülevaade. Microsoft Script Editori ning konkreetsete InfoPathis kasutatavate objektide, meetodite, sündmuste ja atribuutide kohta leiate teavet InfoPathi arendajate teatmematerjalidest.

InfoPath lisab sündmuseohjurid automaatselt kõigi järgmiste sündmuste puhul peale ühe.

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.

Lehe algusse

Ühilduvuskaalutlused.

Skripte ei saa lisada brauseriga ühilduv vormimall. Skripte saab lisada üksnes sellisesse vormimalli, millel põhinevad vormid täidetakse InfoPathis. Brauseriga ühilduvaid vormimalle saate kohandada ainult hallatava koodi abil.

Lehe algusse

Vormimalli skriptimiskeele seadmine

Vormimalli kohandamiseks skripti abil saate kasutada Microsoft JScripti või Microsoft Visual Basic Scripting Editioni (VBScript). Vaikimisi on konfigureeritud InfoPathi JScripti abil skripti lisada. Vormimalli ei sisalda hallatavat koodi ega skripti, kui soovite oma skriptimiskeele VBScript kasutamiseks, saate muuta skriptimiskeele vormimalli VBScript. Te ei saa kasutada nii skriptimine keelte sama vormimalli.

Kui vormimall juba sisaldab skripti ühes keeles ja soovite kasutada muud keelt, saate vaja salvestada olemasoleva skripti, nii et saate teisendada skripti keelt, skripti vormimallist dialoogiboksi Vormi suvandid kaudu eemaldada, ja lisage teisendatud skripti tagasi vormimalli. InfoPath ei saa teisendada skriptide uue skriptimiskeele. Vormi suvandid dialoogiboksis Skriptimiskeele muutmine mõjutab ainult sellel vormimallil. Vormimallide on JScripti skriptimise keele vaikeväärtuseks.

  1. Klõpsake menüü Tööriistad nuppu Vormisuvandid.

  2. Klõpsake dialoogiboksi Vormi suvandid loendis kategooriaprogrammeerimisega.

  3. Klõpsake loendis vormimalli koodi keel jaotises programmeerimiskeele, VBScript.

    Märkmed : 

    • Kui olete skriptimiskeele seadmine ja luua ühe või mitme sündmuseohjur vormimalli, ei saa muuta vormimalli skriptimiskeele.

    • Kui olete installinud Microsoft Visual Studio 2005 Tools for Applications, vaikekeele on Microsoft Visual Basic .NET. Saate siiski kasutada seda toimingut VBScript skriptimiskeele muuta.

Lehe algusse

Mõne kindla sündmuse puhul alati teate kuvamine

Kui soovite teada, millised sündmuseohjurid mõne toimingu või sündmuse korral käivitatakse, võite lisada ajutise koodi ja määrata, et sündmuseohjuri käitamisel kuvataks alati vastav teade. Seda koodi peaksite kasutama üksnes sündmuseohjuri käitamise määratlemiseks. Pärast selle koodi lisamist saate vaadata sellel vormimallil põhineva vormi eelvaadet või vormimalli avaldada ja luua seejärel uue vormimalli. Mõni sündmuseohjur käivitatakse üksnes juhul, kui loote vormi pärast vormimalli avaldamist. Seejärel võite sooritada toimingu, mis peaks teie arvates sündmuseohjuri käivitama. Kui sündmuseohjur käivitatakse, kuvatakse teade.

Kui olete kindlaks teinud, millised toimingud või sündmused põhjustavad sündmuseohjuri käivitamise, eemaldage ajutine kood ja jätkake vormimalli kujundamist. Kui te ei eemalda seda koodi ning avaldate vormimalli, kuvatakse vastav teade sündmuseohjuri käivitumisel ka kasutajatele.

  1. Lisage sündmuseohjur.

  2. JScripti koodi lisamiseks tippige XDocument.UI.Alert ("sündmuse nimi"); Asendage sündmuseohjur nime. Näiteks kui lisate OnValidate sündmuseohjuri järgmine kood, tippige XDocument.UI.Alert ("The OnValidate sündmuseohjur lihtsalt parandusfunktsiooni");

  3. VBScript koodi lisada, tippige XDocument.UI.Alert ("sündmuse nimi") näiteks, kui lisate OnSaveRequesti sündmuseohjur järgmine kood, tippige XDocument.UI.Alert ("The OnSaveRequesti sündmuseohjur lihtsalt parandusfunktsiooni")

  4. Koodi testimiseks klõpsake menüü Fail käsku Eelvaade või vajutage klahvikombinatsiooni CTRL+SHIFT+B ja sooritage siis sündmuse käivitav kasutajatoiming. Selle koodireaga seostatud sündmuse toimumisel peaks kuvatama teie sisestatud teade.

    Märkus. : Mõne sündmuse puhul peate sündmuse käivitava kasutajatoimingu sooritamiseks vormimalli esmalt avaldama ja looma siis sellel vormimallil põhineva vormi.

  5. Enne seda, kui avaldate vormimalli ja annate kasutajatele loa täita sellel vormimallil põhinevaid vorme, kustutage teateboksi kuvamiseks kasutatud ajutine kood.

Lehe algusse

Sellise skripti lisamine, mis käivitatakse, kui kasutaja salvestab vormi andmed

  1. Klõpsake menüü Tööriistad nuppu Vormisuvandid.

  2. Klõpsake dialoogiboksi Vormisuvandid loendis Kategooria väärtust Ava ja salvesta.

  3. Märkige jaotises Salvestuskäitumine ruut Salvesta kohandatud koodi kasutades ja klõpsake siis nuppu Redigeeri. Käivitatakse Microsoft Script Editor ja kursor asub sündmuseohjuris 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. Tehke ühte või mõlemat järgmistest.

    • Sellise skripti lisamiseks, mis käivitatakse enne seda, kui InfoPath salvestab vormi, asendage kommentaar Write the code to be run before saving here. oma koodiga.

    • Sellise skripti lisamiseks, mis käivitatakse pärast seda, kui InfoPath salvestab vormi, asendage kommentaar Write the code to be run after saving here. oma koodiga.

  5. Muudatuste kontrollimiseks klõpsake tööriistaribal Standard nuppu Eelvaade või vajutage klahvikombinatsiooni CTRL+SHIFT+B.

    Märkus. : Kui sündmuseohjur käivitatakse alles pärast vormimallil põhineva vormi loomist, klõpsake vormimalli avaldamiseks menüü Fail käsku Avada ja täitke avaldamisviisardi juhised. Pärast vormimalli avaldamist looge uus vorm ja sooritage siis sündmuseohjuri käivitamiseks soovitud toiming.

Lehe algusse

Sellise skripti lisamine, mis käivitatakse, kui kasutaja edastab vormi andmed

  1. Klõpsake menüü Tööriistad käsku Edastussuvandid.

  2. Dialoogiboksis Edastamise suvandid ruut Luba kasutajatel selle vormi edastada .

  3. Klõpsake nuppu Rakenda kohandatud toiming koodi kasutades ja siis nuppu Redigeeri koodi. Käivitatakse Microsoft Script Editor ja kursor asub sündmuseohjuris 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. Asendage kommentaar If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here oma koodiga.

  5. Muudatuste kontrollimiseks klõpsake tööriistaribal Standard nuppu Eelvaade või vajutage klahvikombinatsiooni CTRL+SHIFT+B.

Lehe algusse

Sellise skripti lisamine, mis käivitatakse, kui kasutaja klõpsab teatud nuppu

  1. Lisage vormimallis mõnda vaatesse uus nupp ja seejärel topeltklõpsake seda nuppu.

    Märkus. : Skripti lisamisel olemasolevale nupule topeltklõpsake olemasolevat nuppu.

  2. Klõpsake vahekaarti Üldist.

  3. Klõpsake nuppu Redigeeri vormi koodi. Käivitatakse Microsoft Script Editor ja kursor asub selle nupu sündmuseohjuris 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. Asendage kommentaar Write your code here oma koodiga.

  5. Muudatuste kontrollimiseks klõpsake tööriistaribal Standard nuppu Eelvaade või vajutage klahvikombinatsiooni CTRL+SHIFT+B.

Lehe algusse

Sellise skripti lisamine, mis käivitatakse olemasolevate vormide ühendamisel

  1. Klõpsake menüü Tööriistad nuppu Vormisuvandid.

  2. Klõpsake dialoogiboksi Vormisuvandid loendis Kategooria väärtust Täpsemalt.

  3. Märkige jaotises Vormide ühendamine ruut Luba vormide ühendamine.

  4. Märkige ruut Ühenda kohandatud koodi kasutades ja klõpsake siis nuppu Redigeeri. Käivitatakse Microsoft Script Editor ja kursor asub sündmuseohjuris 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. Asendage kommentaar Write the code that handles each form being merged here. oma koodiga.

  6. Selle sündmuse koodi testimiseks avaldage vormimall, looge mitu vormimallil põhinevat vormi ja ühendage seejärel vormid.

    Märkus. : Vormimalli avaldamise kohta leiate lisateavet jaotise Vt ka linkide kaudu.

Lehe algusse

Olemasolevaid vorme värskendava skripti lisamine

Kui olete mõnda varem avaldatud vormimalli värskendanud ja soovite värskendada ka sellel vormimallil põhinevaid olemasolevaid vorme, saate värskendatud vormimalli lisada skripti, mis käivitatakse siis, kui kasutaja avab mõne olemasoleva vormi. Kui kasutaja avab olemasoleva vormi, kontrollib InfoPath sellega seostatud vormimalli versiooninumbrit avaldamisasukohas. Kui avaldamisasukohas asuva vormimalli versiooninumber on olemasoleva vormi versiooninumbrist uuem (osutades, et vormimalli on värskendatud), käivitab InfoPath olemasoleva vormi värskendamiseks selle sündmuse koodi.

  1. Klõpsake menüü Tööriistad nuppu Vormisuvandid.

  2. Klõpsake dialoogiboksi Vormisuvandid loendis Kategooria väärtust Versioonide loomine.

  3. Klõpsake loendis Versiooni värskendamisel väärtust Kasuta kohandatud sündmust ja siis nuppu Redigeeri. Käivitatakse Microsoft Script Editor ja kursor asub sündmuseohjuris 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. Asendage kommentaar Write your code here oma koodiga.

  5. Selle sündmuse koodi testimiseks avaldage vormimall, looge mitu sellel vormimallil põhinevat vormi, muutke vormimalli ja avaldage värskendatud versioon ning avage seejärel mõni vormimalli vanemal versioonil põhinev vorm.

    Märkus. : Vormimalli avaldamise kohta leiate lisateavet jaotise Vt ka linkide kaudu.

Lehe algusse

Muude sündmustega seotud skriptide lisamine

Nende juhiste abil saab vormimallile lisada järgmisi sündmuseohjureid:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • Valige menüü Tööriistad käsk Programmeerimine ja klõpsake siis sündmuseohjurile lisatavat sündmust. Käivitatakse Microsoft Script Editor ja kursor asub teie valitud sündmuseohjuris.

  • Asendage kommentaar Write your code here oma koodiga.

Lehe algusse

Märkus. : Masintõlke lahtiütlus. Selle artikli tõlkis arvutisüsteem ilma inimese sekkumiseta. Microsoft pakub selliseid masintõlkeid, et inglise keelt mittekõnelevad kasutajad saaksid vaadata sisu Microsofti toodete, teenuste ja tehnoloogiate kohta. Kuna artikkel on masintõlgitud, võib see sisaldada sõnavara-, süntaksi- või grammatikavigu.

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×