Prilagođavanje predloška obrasca pomoću skripte

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

Ako ste upoznati s pisanjem skripte, možete je dodati u predložak obrasca programa Microsoft Office InfoPath pomoću Microsoft JScript ili Microsoft Visual Basic Scripting Edition (VBScript) skriptnog jezika. Dodavanje skripte vam omogućuje prilagođavanje predloška obrasca na način koji nije moguć pomoću pravila, formula, provjere valjanosti podataka i uvjetnog oblikovanja. Na primjer, možete dodati skriptu koja stvara i šalje poruku e-pošte kada korisnik prebaci prikaz u obrascu koji se temelji na vašem predlošku obrasca. Ppredložak obrasca za stvaranje i slanje poruke e-pošte možete konfigurirati samo pomoću skripte.

U ovom članku

Pregled

Razmatranje kompatibilnosti

Postavljanje skriptnog jezika za predložak obrasca

Prikaz poruke svaki put kada se pojavi događaj

Dodavanje skripte koja se pokreće kada korisnik sprema podatke iz obrasca

Dodavanje skripte koja se izvodi kad korisnik pošalje podataka obrasca

Dodavanje skripte koja se izvodi kad korisnik klikne gumb

Dodajte skriptu koja se pokreće kada se spajaju postojećih obrazaca

Dodavanje skripte za ažuriranje postojećih obrazaca

Dodavanje skripte za druge događaje

Pregled

Svoj InfoPath predložak obrasca možete prilagoditi pomoću pravila, provjere valjanosti podataka te uvjetnog oblikovanja. Iako su te značajke jako fleksibilne i mogu izvršavati cijeli niz različitih zadataka, neki zadaci ipak su izvan dosega onih značajki. Na primjer, ne možete koristiti pravila za slanje poruke e-pošte kada korisnik unese vrijednost u tekstni okvir na obrascu. Ako želite prilagoditi predložak obrasca na način koji nadilazi mogućnosti ovih značajki, a znate pisati skripte pomoću JScript ili VBScript skriptnog jezika, možete dodati skriptu koja se pokreće kada korisnik otvori novi obrazac ili kada izmijeni postojeći obrazac koji se temelji na vašem predlošku obrasca.

Kada u predložak obrasca dodate skriptu InfoPath pokreće Microsoft Script Editor (MSE), koji vam omogućuje dodavanje, uređivanje i otkrivanje pogrešaka skripte u predlošku obrasca i postavlja pokazivač na odabrani događaj. InfoPath automatski dodaje rukovatelja događajima u skriptu. Rukovatelj događajima je kod funkcije u predlošku obrasca programa InfoPath koji odgovara na akciju korisnika ili na promjenu XML podataka u obrascu. Na primjer, ako želite da korisnici obrasce spremaju na nekoliko mrežnih mjesta, možete dodati skriptu u rukovatelj događajima OnSaveRequest. Kada dodate skriptu koja se pokreće kada korisnik spremi obrazac koji se temelji na vašem predlošku obrasca, InfoPath pokreće uređivač skripta i dodaje sljedeće kodove u skriptu.

Napomena : Kod koji InfoPath dodaje ovisi o odabranom skriptnom jeziku.

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

Zatim na odgovarajuća mjesta u rukovatelju događajima možete dodati kod koji sprema obrazac na različita mrežna mjesta. Kada korisnik sprema obrazac koji se temelji na ovom predlošku obrasca, InfoPath pokreće kod u rukovatelju događajima OnSaveRequest.

Napomena : U ovom članku pružen vam je kvalitetan prikaz stvaranja skripte u predlošku obrasca. Za dodatne informacije o programu Microsoft Script Editor i određenim objektima, metodama, događajima i svojstvima koji se koriste u programu InfoPath, pogledajte reference modula InfoPath Developer.

InfoPath za sve osim jednog od sljedećih događaja automatski dodaje rukovoditelje događajima.

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.

Vrh stranice

Napomene o kompatibilnosti

Ne možete dodati skriptu u predložak obrasca kompatibilan s predložak obrasca kompatibilan s preglednikom. Skriptu možete dodati samo u predložak obrasca čiji će se obrasci ispuniti u programu InfoPath. Predložak obrasca kompatibilan s preglednikom možete prilagoditi samo pomoću upravljanog koda.

Vrh stranice

Postavljanje skriptnog jezika za predložak obrasca

Da biste prilagodili predloška obrasca pomoću skripte, možete koristiti Microsoft JScript ili Microsoft Visual Basic Scripting Edition (VBScript). Prema zadanim postavkama, InfoPath je konfiguriran za dodavanje skripte pomoću JScript. Ako predložak obrasca sadrži kod skripte ili upravljani kod, a želite koristiti VBScript kao skriptnog jezika, možete promijeniti skriptnog jezika za predložak obrasca za VBScript. Ne možete koristiti oba skriptnog jezika u istom predlošku obrasca.

Ako predložak obrasca već sadrži skripte na jednom jeziku, a želite koristiti na drugom jeziku, možete je potrebna za spremanje postojeće skripte tako da možete pretvoriti skripte na drugom jeziku uklanjanje skripte iz predloška obrasca u dijaloškom okviru Mogućnosti obrasca i pa dodajte pretvorene skripte natrag u predlošku obrasca. InfoPath ne može pretvoriti skripte novi skriptnog jezika. Promjena jezika za skripte u dijaloškom okviru Mogućnosti obrasca utječe samo na tom predlošku obrasca. Ostale predloške obrasca će imati JScript kao zadani jezik za skriptiranje.

  1. U izborniku Alati pritisnite Mogućnosti obrasca.

  2. Na popisu kategorija u dijaloškom okviru Mogućnosti obrasca kliknite Programiranje.

  3. Na popisu jezik kod predloška obrasca u odjeljku programskom jeziku, kliknite VBScript.

    Napomene : 

    • Nakon što Postavljanje skriptnog jezika i stvaranje rukovatelja događajima za predložak obrasca, ne možete promijeniti skriptnog jezika za predložak obrasca.

    • Ako ste instalirali Microsoft Visual Studio 2005 Tools for Applications, zadani jezik je Microsoft Visual Basic .NET. I dalje možete koristiti ovaj postupak da biste promijenili skriptnog jezika VBScript.

Vrh stranice

Prikazivanje poruke svaki puta kada se pojavi događaj

Želite li znati koji se rukovatelji događajima pokreću kao odgovor na akciju ili drugi događaj, možete dodati privremeni kod za prikaz okvira s porukom svak put kada se rukovatelj događajima pokrene. Taj kod koristite samo za utvrđivanje kada se rukovatelj događajima pokrene. Nakon što dodate taj kod, možete koristiti pregled za pregled obrasca koji se temelji na ovom predlošku obrasca ili za objavu predloška obrasca i možete zatim stvoriti novi predložak obrasca. Neki se rukovatelji događajima pokreću samo ako stvorite obrazac nakon objave predloška obrasca. Zatim možete izvesti akciju za koju mislite da bi mogla pokrenuti rukovatelja događajima. Kada se rukovatelj događajima pokrene, vidjet ćete okvir s porukom.

Nakon što odredite koje akcije ili događaji pokreću rukovatelja događajima, uklonite kod i nastavite s dizajniranjem predloška obrasca. Ako ne uklonite taj kod i objavite predložak obrasca, vaši korisnici će vidjeti ovu poruku kada se pokrene rukovatelj događajima.

  1. Dodajte svoj rukovatelj događajima.

  2. Da biste dodali kod u JScript, upišite XDocument.UI.Alert ("u događaj naziv događaja upravo pokrenut"); Zamijenite nazivom rukovatelj događajima. Na primjer, ako dodate kod rukovatelj događajima OnValidate upisali XDocument.UI.Alert ("u OnValidate rukovatelja događajima upravo pokrenut");

  3. Da biste dodali kod u VBScript, upišite XDocument.UI.Alert ("u događaj naziv događaja upravo pokrenut") , na primjer, ako dodate kod događaja OnSaveRequest , upišite XDocument.UI.Alert ("u OnSaveRequest rukovatelja događajima upravo pokrenut")

  4. Za testiranje koda pritisnite Pregled u izborniku Datoteka ili pritisnite CTRL+SHIFT+B i zatim izvedite korisničku akciju koja može pokrenuti događaj. Kada se pojavi događaj s retkom koda, vaša poruka bi se trebala pojaviti u okviru s porukom.

    Napomena : Za izvođenje korisničke akcije pokretanja događaja za neke će događaje biti potrebno objaviti predložak obrasca te zatim stvoriti obrazac na temelju tog predloška obrasca.

  5. Prije objave predloška obrasca i omogućavanja korisnicima da ispune obrasce koji se temelje na ovom predlošku obrasca, izbrišite kod koji ste koristili za prikaz okvira poruke.

Vrh stranice

Dodavanje skripte koja se pokreće kada korisnik spremi podatke obrasca

  1. U izborniku Alati pritisnite Mogućnosti obrasca.

  2. Na popisu Kategorije, u dijaloškom okviru Mogućnosti obrasca pritisnite Otvori i spremi.

  3. Pod Ponašanje prilikom spremanja označite potvrdni okvir Spremanje pomoću prilagođenog koda i zatim pritisnite Uredi. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima 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. Učinite nešto od sljedećeg:

    • Za dodavanje skripte koja se pokreće prije nego InfoPath spremi obrazac, komentar Write the code to be run before saving here. zamijenite svojim kodom.

    • Za dodavanje skripte koja se pokreće nakon što InfoPath spremi obrazac, komentar Write the code to be run after saving here. zamijenite svojim kodom.

  5. Da biste testirali promjene, kliknite Pretpregled na alatnoj traci Standardno ili pritisnite CTRL + SHIFT + B.

    Napomena : Ako se rukovatelj događajima pokreće samo nakon što stvorite obrazac na temelju svog predloška obrasca, obrazac objavite pritiskom naredbe Objavi u izborniku Datoteka i zatim dovršite čarobnjak za objavljivanje. Nakon objave predloška obrasca, stvorite obrazac i izvedite akciju za pokretanje rukovatelja događajima.

Vrh stranice

Dodavanje skripte koja se pokreće kada korisnik podnese podatke obrasca

  1. Na izborniku Alati kliknite Mogućnosti slanja.

  2. U dijaloškom okviru Mogućnosti slanja odaberite potvrdni okvir Dopusti korisnicima slanje obrasca .

  3. Pritisnite Izvedi prilagođenu akciju koristeći kod i zatim prisitnite Uredi kod. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima 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. Komentar If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here zamijenite svojim kodom.

  5. Da biste testirali promjene, kliknite Pretpregled na alatnoj traci Standardno ili pritisnite CTRL + SHIFT + B.

Vrh stranice

Dodavanje skripte koja se pokreće kada korisnik pritisne gumb

  1. Dodajte novi gumb za prikaz u predlošku obrasca i zatim ga pritisnite dvaput.

    Napomena : Ako skriptu dodajete postojećem gumbu, umjesto toga dvaput pritisnite postojeći gumb.

  2. Pritisnite karticu Općenito.

  3. Pritisnite Uređivanje koda obrasca. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima OnClick za taj 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. Komentar Write your code here zamijenite svojim kodom.

  5. Da biste testirali promjene, kliknite Pretpregled na alatnoj traci Standardno ili pritisnite CTRL + SHIFT + B.

Vrh stranice

Dodavanje skripte koja se pokreće kod spajanja postojećih obrazaca

  1. U izborniku Alati pritisnite Mogućnosti obrasca.

  2. Na popisu Kategorije, u dijaloškom okviru Mogućnosti obrasca pritisnite Napredno.

  3. Pod Spoji obrasce označite potvrdni okvir Omogući spajanje obrazaca.

  4. Označite potvrdni okvir Spajanje pomoću prilagođenog koda i zatim pritisnite Uredi. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima 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. Komentar Write the code that handles each form being merged here. zamijenite svojim kodom.

  6. Za testiranje koda u ovom događaju objavite predložak obrasca, stvorite nekoliko obrazaca koji se temelje na tom predlošku obrasca i zatim spojite predloške obrazaca.

    Napomena : Za dodatne informacije o objavljivanju predloška obrasca pogledajte sekciju Vidi također.

Vrh stranice

Dodavanje skripte za ažuriranje postojećih obrazaca

Ako ste ažurirali prethodno objavljeni predložak obrasca i želite ažurirati postojeće obrasce koji se temelje na tom predlošku obrasca, u ažurirani predložak obrasca možete dodati skriptu koja se pokreće kada korisnik otvori neki od postojećih obrazaca. Kada korisnik otvori postojeći obrazac, InfoPath provjerava broj verzije njemu pridruženog predloška obrasca na mjestu objave. Ako je verzija predloška obrasca na mjestu objave novija od verzije postojećeg obrasca, uz naznaku da je ažuriran, InfoPath u tom događaju pokreće kod za ažuriranje obrasca.

  1. U izborniku Alati pritisnite Mogućnosti obrasca.

  2. Na popisu Kategorije, u dijeloškom okviru Mogućnosti obrasca pritisnite Određivanje verzije.

  3. Na popisu Nadogradnja na verziju pritisnite Koristi prilagođeni događaj i zatim pritisnite Uredi. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima 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. Komentar Write your code here zamijenite svojim kodom.

  5. Za testiranje koda u ovom događaju objavite predložak obrasca, stvorite nekoliko obrazaca na temelju tog predloška obrasca, izmijenite i objavite ažuriranu verziju predloška obrasca i zatim otvorite postojeći obrazac koji se temelji na starijoj verziji tog predloška obrasca.

    Napomena : Za dodatne informacije o objavljivanju predloška obrasca pogledajte sekciju Vidi također.

Vrh stranice

Dodavanje skripte za ostale događaje

Ovaj postupak se može koristiti za dodavanje sljedećih rukovatelja događajima u vaš predložak obrasca:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • U izborniku Alati pokažite na Programiranje i zatim pritisnite događaj koji ćete dodati u rukovatelja događajima. Microsoft Script Editor se pokreće s pokazivačem u rukovatelju događajima koji ste odabrali.

  • Komentar Write your code here zamijenite svojim kodom.

Vrh stranice

Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×