Tilpasse en formularskabelon ved hjælp af et script

Bemærk!:  Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Hvis du er vant til at skrive script, kan du tilføje et script til din Microsoft Office InfoPath-formularskabelon ved hjælp af Microsoft JScript eller scriptsproget Microsoft Visual Basic Scripting Edition (VBScript). Tilføje script gør det muligt at tilpasse din formularskabelon ud over, hvad der er tilgængeligt med regler, formler, datavalidering eller betinget formatering. For eksempel kan du tilføje et script, der opretter og sender en e-mail-meddelelse, når en bruger skifter visningen i en formular, der er baseret på skabelonen. Du kan konfigurere en formularskabelon for at oprette og sende en e-mail ved hjælp af et script.

I denne artikel

Oversigt

Overvejelser om kompatibilitet

Angive scriptsproget for en formularskabelon

Få vist en meddelelse hver gang en hændelse indtræffer

Tilføje et script, der køres, når en bruger gemmer formulardata

Tilføje et script, der køres, når en bruger sender formulardata

Tilføje et script, der køres, når en bruger klikker på en knap

Tilføje et script, der køres, når eksisterende formularer flettes

Tilføje et script for at opdatere de eksisterende formularer

Tilføje et script til andre begivenheder

Oversigt

Du kan tilpasse InfoPath-formularskabelon ved hjælp af regler, formler, datavalidering og betinget formatering. Selvom disse funktioner er meget fleksible og kan håndtere en lang række opgaver, er nogle opgaver ud over funktionerne i disse funktioner. For eksempel kan du bruge regler til at sende en e-mail-meddelelse, når en bruger indtaster en værdi i et tekstfelt i en formular. Hvis du har brug at tilpasse din formularskabelon på en måde, der er ud over funktionerne i disse funktioner, og du er vant til at skrive scripts ved hjælp af JScript eller VBScript scriptsproget, kan du tilføje et script, der køres, når en bruger åbner en ny formular eller ændrer en ex isting formular, der er baseret på skabelonen.

Når du tilføjer et script til en formularskabelon, starter Microsoft Script Editor (MSE), hvor du kan tilføje, redigere og fejlfinding af script i en formularskabelon i InfoPath, og til at placere markøren i dine valgte begivenhed. InfoPath tilføjer automatisk en hændelseshandler til scriptet. En hændelseshandler er funktionen kode i en InfoPath-formularskabelon, der reagerer på en brugerhandling eller en ændring af XML-data i en formular. Hvis du vil dine brugere at gemme deres formularer til flere netværksplaceringer, kan du tilføje et script til hændelseshandler OnSaveRequest . Når du tilføjer et script skal køres, når brugeren gemmer en formular, der er baseret på skabelonen, InfoPath starter Microsoft Scripteditor og tilføjer en af følgende koder til scriptet.

Bemærk!: Den kode, føjer InfoPath, afhænger af det valgte scriptsprog.

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

Du kan derefter tilføje kode i de relevante steder i tilfælde af, at handler, der gemmer formularen til anden netværksplaceringen. Når en bruger gemmer en formular, der er baseret på denne formularskabelon, kører InfoPath koden i hændelseshandler OnSaveRequest .

Bemærk!: Denne artikel indeholder en overordnet oversigt over oprettelse af scripts i en formularskabelon. Hvis du vil vide mere om Microsoft Script se Editor og bestemte objekter, metoder, hændelser og egenskaber, der bruges i InfoPath, InfoPath Udviklerreference.

InfoPath tilføjer automatisk hændelseshandlere for alle undtagen én af følgende hændelser.

Hændelseshandler

Beskrivelse

Trin til oprettelse af

OnAfterChange

Begivenheden kører, når en bruger ændrer værdien i det angivne kontrolelement, der er bundet til et felt. For eksempel kan du vise en brugerdefineret HTML-opgaverude, når en bruger vælger et element i et kontrolelement af typen liste. Begivenheden kører efter hændelsen OnValidate .

Højreklik på et kontrolelement i formularskabelonen eller et felt i opgaveruden Datakilde, peg på programmering i genvejsmenuen, og klik Hændelsen ved efter ændring.

OnAfterImport

Begivenheden kører, når brugeren fletter korrekt flere formularer i en formular.

Tilføje manuelt angivelsen OnAfterImport begivenhed handler direkte til script-fil ved hjælp af MSE. Denne hændelseshandler kan ikke oprettes i designtilstand.

OnBeforeChange

Begivenheden kører, når en bruger ændrer værdien i et kontrolelement, og før værdien, der er føjet til det angivne felt, der er bundet til kontrolelementet. Du kan for eksempel forhindre en bruger fra at tilføje en ekstra række før du udfylder den sidste række i en gentaget tabel.

Højreklik på et kontrolelement i formularskabelonen eller et felt i opgaveruden Datakilde, peg på programmering i genvejsmenuen, og klik Hændelsen ved før ændring.

VedKlik

Begivenheden kører, når en bruger klikker på en knap, der er knyttet til denne hændelse. Denne hændelse er tilgængelig, når du har tilføjet en knap til formularskabelonen. For eksempel kan du udføre en kompleks beregning ved hjælp af værdierne i felterne i den primære datakilde, når en bruger klikker på knappen.

Dobbeltklik på kontrolelementet, knappen, og klik derefter på Rediger formularkode under fanen Generelt i dialogboksen Egenskaber for knappen.

OnContextChange

Begivenheden kører, når fokus ændres i formularen. Begivenheden kører f.eks, når en bruger navigerer fra et tekstfelt til en datovælger, eller når en bruger skifter visninger. Denne hændelse indtræffer, når alle andre begivenheder er opstået.

Peg på programmering i menuen Funktioner, og klik derefter på Hændelsen ved kontekst ændring.

OnLoad

Begivenheden kører, når en bruger opretter en ny formular eller åbner en eksisterende formular, der er baseret på skabelonen. For eksempel kan du kopiere en liste over elementer fra en sekundær datakilde til den primære datakilde når en bruger åbner formularen.

Peg på programmering i menuen Funktioner, og klik derefter på Hændelsen ved indlæsning.

OnMergeRequest

Begivenheden kører, når formularer, der er baseret på formularskabelonen flettes. For eksempel kan du få vist antallet af formularer, der blev flettet for at give en bruger en status under fletningen.

Klik på Formularindstillinger i menuen Funktioner. Klik på Avanceret på listen kategori. Markér afkrydsningsfeltet Flet ved hjælp af brugerdefineret kode under flette formularer, og klik derefter på Rediger.

OnSaveRequest

Begivenheden kører, når en bruger gemmer en formular, der er baseret på skabelonen. For eksempel kan du gemme den formular, der er baseret på denne formularskabelon til mere end én placering, når en bruger gemmer formularen. Føjer InfoPath to ekstra kodelinjer til begivenheden: en linje, der gemmer formularen og en ny linje, der fortæller dig, hvis InfoPath gemt formularen.

Klik på Formularindstillinger i menuen Funktioner. Klik på Åbn og Gem på listen kategori. Marker afkrydsningsfeltet Gem ved hjælp af brugerdefineret kode, og klik derefter på Rediger under funktionsmåde ved lagring.

OnSign

Begivenheden kører, når en bruger anvender en digital signatur til en formular. For eksempel kan du føje yderligere data til den digitale signatur i en udgiftsrapportformular, når en bruger logger den.

Peg på programmering i menuen Funktioner, og klik På Log begivenhed.

Typen OnSubmitRequest

Begivenheden kører, når en bruger sender hans eller hendes formulardata. Du kan for eksempel sende formulardata til en sikker webtjeneste, når brugeren klikker på Send i menuen filer. Da InfoPath ikke understøtter en dataforbindelse til en sikker webtjeneste, skal du tilføje en brugerdefineret dataforbindelse, der fungerer med din sikker webtjeneste.

Klik på Indstillinger for afsendelse i menuen Funktioner. Markér afkrydsningsfeltet Tillad brugere at sende formularen, skal du klikke på Udfør brugerdefineret handling ved hjælp af kode, og klik derefter på Rediger kode.

OnSwitchView

Begivenheden kører, når en bruger åbner en formular, der er baseret på formularskabelonen eller skifter til en anden visning i formularen. Når en bruger skifter til en bestemt visning, kan du oprette en e-mail-meddelelse, der indeholder data fra felter i formularens primære datakilde.

Klik på programmering, og klik derefter på Hændelsen ved Skift visning i menuen Funktioner.

OnValidate

Begivenheden kører, når en bruger ændrer værdien i et kontrolelement, der er bundet til et felt. Når brugeren ændrer værdien i et bestemt kontrolelement, kan du beregne en ny værdi i et andet kontrolelement ved hjælp af det tal, der angives af brugeren og et nummer, der er i scriptet. Denne hændelse indtræffer, når du har kørt hændelseshandler OnBeforeChange .

Højreklik på et kontrolelement i formularskabelonen eller et felt i opgaveruden Datakilde, peg på programmering i genvejsmenuen, og klik På Valider hændelsen efter.

OnVersionUpgrade

Begivenheden kører, når en bruger åbner en eksisterende formular og versionsnummeret for den formularskabelon, der anvendes af den eksisterende formular er ældre end versionsnummeret af formularskabelonen i dialogboksen Publicer placering. Når en bruger åbner en eksisterende formular, kontrollerer versionsnummeret for den formularskabelon, der er knyttet til den eksisterende formular i InfoPath. Hvis skabelonen har en nyere versionsnummer, kører InfoPath hændelseshandler OnVersion , når brugeren åbner den eksisterende formular. Forestil dig f.eks, at du kan tilføje et nyt felt til en eksisterende formularskabelon og udgive den igen, og du vil det nye felt skal føjes til den primære datakilde, hvis en bruger åbner en eksisterende formular. Denne hændelse føjer det nye felt til den primære datakilde, når en bruger åbner en eksisterende formular.

Klik på Formularindstillinger i menuen Funktioner. Klik på versionsstyring på listen kategori. Klik på Benyt brugerdefineret hændelse på listen ved opgradering, og klik derefter på Rediger.

Toppen af siden

Overvejelser om kompatibilitet

Du kan ikke tilføje script til en webbrowserkompatibel formularskabelon. Du kan tilføje script kun til en formularskabelon, der skal udfyldes Hvis formularer i InfoPath. Du kan tilpasse en webbrowserkompatibel formularskabelon kun ved hjælp af administreret kode.

Toppen af siden

Angive scriptsproget for en formularskabelon

Hvis du vil tilpasse en formularskabelon ved hjælp af script, kan du bruge enten Microsoft JScript eller Microsoft Visual Basic Scripting Edition (VBScript). InfoPath er som standard konfigureret til at tilføje script ved hjælp af JScript. Hvis formularskabelonen ikke indeholder scripts eller administreret kode, og du foretrækker at bruge VBScript som din scriptsproget, kan du ændre scriptsproget for formularskabelonen til VBScript. Du kan ikke bruge begge scripting sprog i den samme formularskabelon.

Hvis formularskabelonen allerede indeholder script på ét sprog, og du vil bruge andet sproget, du har brug at gemme det eksisterende script, så du kan konvertere scriptet til andet sproget, fjerne scriptet fra formularskabelonen gennem Formularindstillinger dialogboksen felt, og Tilføj derefter scriptet konverteret tilbage til formularskabelonen. InfoPath kan ikke konvertere scripts til en ny scriptsproget. Ændre et script-sprog i dialogboksen Formularindstillinger kun påvirker denne formularskabelon. Andre formularskabeloner får JScript som standard scriptsproget.

  1. Klik på Formularindstillinger i menuen Funktioner.

  2. Klik på det sted på listen kategori i dialogboksen Formularindstillingerprogrammering.

  3. Klik på VBScript under programmeringssproget, på listen formular skabelon kodesprog.

    Bemærkninger!: 

    • Når du angive scriptsproget og opretter en eller flere hændelseshandlere for en formularskabelon, kan du ikke ændre scriptsproget for formularskabelonen.

    • Hvis du har installeret Microsoft Visual Studio 2005 Tools for Applications, er standardsproget Microsoft Visual Basic .NET. Du kan stadig bruge denne fremgangsmåde til at ændre scriptsproget til VBScript.

Toppen af siden

Få vist en meddelelse hver gang en hændelse indtræffer

Hvis du gerne vil vide, hvad hændelseshandlere køres som svar på en handling eller en anden begivenhed, kan du tilføje midlertidige-koden for at vise en meddelelse, når hændelseshandleren kører. Du skal bruge denne kode kun for at fastslå, hvornår en hændelseshandler kører. Når du tilføjer denne kode, kan du bruge preview til at få vist en formular, der er baseret på denne formularskabelon eller for at publicere formularskabelonen og derefter oprette en ny formularskabelon. Visse hændelseshandlere køre kun, hvis du opretter en formular, når du publicerer formularskabelonen. Du kan derefter udføre en handling, som du mener kan køre hændelseshandleren. Når hændelseshandleren kører, kan du se en meddelelsesboks.

Når du bestemmer, hvilke handlinger eller begivenheder afspille hændelseshandleren, skal du fjerne koden og derefter fortsætte med at designe formularskabelonen. Hvis du ikke fjerne denne kode, og derefter du publicere formularskabelonen, får brugerne vist denne meddelelsesboks, når hændelseshandleren køres.

  1. Tilføj din hændelseshandler.

  2. Hvis du vil tilføje kode i JScript, Skriv XDocument.UI.Alert ("feltet begivenhed navn begivenhed lige har kørt") Erstat med navnet på din hændelseshandler. F.eks, hvis du tilføjer denne kode til hændelseshandler OnValidate , skal du skrive XDocument.UI.Alert ("feltet OnValidate hændelseshandler lige har kørt");

  3. Tilføje kode i VBScript, skal du skrive XDocument.UI.Alert ("feltet hændelse navn begivenhed lige har kørt") f.eks, hvis du føjer denne kode til hændelseshandler OnSaveRequest , skal du skrive XDocument.UI.Alert ("feltet OnSaveRequest hændelseshandler lige har kørt")

  4. Klik på Vis i menuen filer for at teste koden, eller tryk på CTRL + SHIFT + B, og udfør derefter en brugerhandling, der kan starte begivenheden. Når der forekommer på begivenheden med linje af kode, skal en meddelelsesboks vise din meddelelse.

    Bemærk!: Nogle begivenheder kan kræve, at du publicere formularskabelonen og derefter oprette en formular, der er baseret på denne formularskabelon, før du kan udføre en brugerhandling for at starte begivenheden.

  5. Før du udgiver på formularskabelon og aktiverer dine brugere at udfylde formularer, der er baseret på denne formularskabelon, kan du slette den kode, du brugte til at få vist meddelelsesfeltet.

Toppen af siden

Tilføje et script, der køres, når en bruger gemmer formulardata

  1. Klik på Formularindstillinger i menuen Funktioner.

  2. Klik på Åbn og Gem på listen kategori i dialogboksen Formularindstillinger.

  3. Marker afkrydsningsfeltet Gem ved hjælp af brugerdefineret kode, og klik derefter på Rediger under funktionsmåde ved lagring. Microsoft Script Editor starter med markøren i hændelseshandler 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. Benyt en af følgende fremgangsmåder eller begge:

    • For at tilføje et script, der afspilles, før InfoPath gemmer formularen, skal du erstatte kommentar Write the code to be run before saving here.med din kode.

    • For at tilføje et script, der afspilles, når InfoPath gemmer formularen, skal du erstatte kommentar Write the code to be run after saving here. med din kode.

  5. Klik på Eksempel på værktøjslinjen Standard, eller tryk på Ctrl+Shift+B for at teste ændringerne.

    Bemærk!: Hvis hændelseshandleren kører kun, når du har oprettet en formular, der er baseret på skabelonen, publicere formularskabelonen ved at klikke på Udgiv i menuen filer, og derefter fuldføre guiden Udgivelse. Når du udgiver formularskabelonen, oprette en formular og derefter udføre en handling for at køre hændelseshandleren.

Toppen af siden

Tilføje et script, der køres, når en bruger sender formulardata

  1. Klik på Indstillinger for afsendelse i menuen Funktioner.

  2. Markér afkrydsningsfeltet Tillad brugere at sende formularen i dialogboksen Indstillinger for afsendelse.

  3. Klik på Udfør brugerdefineret handling ved hjælp af kode, og klik derefter på Rediger kode. Microsoft Script Editor starter med markøren i hændelseshandleren af typen 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. Erstat kommentar If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here med din kode.

  5. Klik på Eksempel på værktøjslinjen Standard, eller tryk på Ctrl+Shift+B for at teste ændringerne.

Toppen af siden

Tilføje et script, der køres, når en bruger klikker på en knap

  1. Tilføj en ny knap til en visning i formularskabelonen, og dobbeltklik derefter på knappen.

    Bemærk!: Hvis du føjer script til en eksisterende knap, skal du dobbeltklikke på eksisterende knappen i stedet.

  2. Klik på fanen Generelt.

  3. Klik på Rediger formularkode. Microsoft Script Editor starter med markøren på VedKlik hændelseshandler for denne knap.

    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. Erstat kommentar Write your code here med din kode.

  5. Klik på Eksempel på værktøjslinjen Standard, eller tryk på Ctrl+Shift+B for at teste ændringerne.

Toppen af siden

Tilføje et script, der køres, når eksisterende formularer flettes

  1. Klik på Formularindstillinger i menuen Funktioner.

  2. Klik på Avanceret i dialogboksen Formularindstillinger på listen kategori.

  3. Under flette formularer, skal du markere afkrydsningsfeltet Aktiver fletning af formularer.

  4. Markér afkrydsningsfeltet Flet ved hjælp af brugerdefineret kode, og klik derefter på Rediger. Microsoft Script Editor starter med markøren i hændelseshandler 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. Erstat kommentar Write the code that handles each form being merged here. med din kode.

  6. Hvis du vil teste koden i så fald, publicere formularskabelonen, oprette flere formularer, der er baseret på denne formularskabelon og derefter flette formularskabelonerne.

    Bemærk!: Du kan finde links til flere oplysninger om publicering af formularskabelonen i afsnittet Se også.

Toppen af siden

Tilføje et script for at opdatere de eksisterende formularer

Hvis du har opdateret en tidligere publiceret formularskabelon, og du vil opdatere de eksisterende formularer, der er baseret på formularskabelonen, kan du føje script til den opdaterede formularskabelon, der afspilles, når en bruger åbner en af de eksisterende formularer. Når en bruger åbner en eksisterende formular, kontrollerer InfoPath versionsnummeret for den tilknyttede formularskabelon på udgivelsesplaceringen. Hvis versionsnummeret af formularskabelonen på udgivelsesplaceringen er nyere end versionsnummeret i den eksisterende formular, kører der angiver, er det blevet opdateret, InfoPath koden i begivenheden at opdatere den eksisterende formular.

  1. Klik på Formularindstillinger i menuen Funktioner.

  2. Klik på versionsstyring på listen kategori i dialogboksen Formularindstillinger.

  3. Klik på Benyt brugerdefineret hændelse på listen ved opgradering, og klik derefter på Rediger. Microsoft Script Editor starter med markøren i hændelseshandler 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. Erstat kommentar Write your code here med din kode.

  5. Baseret på denne formularskabelon til at teste koden i så fald, publicere formularskabelonen, oprette flere formularer, redigere og udgive en opdateret version af formularskabelonen og derefter åbne en eksisterende formular, der er baseret på den gamle version af denne formularskabelon.

    Bemærk!: Du kan finde links til flere oplysninger om publicering af formularskabelonen i afsnittet Se også.

Toppen af siden

Tilføje et script til andre begivenheder

Denne fremgangsmåde kan bruges til at føje følgende hændelseshandlerne til formularskabelonen:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • Peg på programmering i menuen Funktioner, og klik derefter på hændelsen til at føje til hændelseshandleren. Microsoft Script Editor starter med markøren i den hændelseshandler, du har valgt.

  • Erstat kommentar Write your code here med din kode.

Toppen af siden

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×