Obs!: Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.
Med formler kan du få ut mer av de regler som du skapar än att använda grundläggande, fördefinierade regler. Formler används till exempel för att beräkna det aktuella eller det kommande datumet och även för sammanfogning av text.
I den här artikeln
Översikt
En formel är ett XPath-uttryck (XML Path Language) som består av värden, fält eller grupper, funktioner och operatorer som används för att beräkna och visa andra värden. Du kan använda en formel för att skapa ett nytt värde för ett fält och visa det värdet i en kontroll som är bunden till fältet. Formler kan användas på följande sätt:
Beräkna ett matematiskt värde baserat på värden som du angav när du skapade mallen eller baserat på värden som användaren anger när han eller hon fyller i formulärmallen.
Kör en regel baserat på ett värde som beräknas med hjälp av en formel.
Visa skrivskyddad text som beräknas från andra kontroller eller visa värdet för en annan kontroll.
En funktion är ett uttryck som returnerar ett värde baserat på resultatet av en beräkning. De värden som används i funktionerna kallas för argument. Du kan använda standardfunktionerna för XPath 1.0 som ingår i InfoPath, utöver vissa funktioner som är InfoPath-specifika. Funktioner består av följande tre delar:
-
Namn Funktionens namn. Namnet beskriver ofta vad funktionen gör.
-
Returvärde Resultatet av funktionen.
-
Argument De värden som används av funktionen för att utföra formelberäkningen.
En funktion kan behöva argument för att returnera ett värde. Om funktionen kräver argument, måste du veta hur många argument som krävs och datatypen för varje argument. Funktionen fungerar inte om du anger fel antal eller typ av obligatoriska argument.
Följande bild visar förhållandet mellan funktioner, funktioner och formler.
Lägga till en kontroll för ett beräknat värde
Du kan använda en kontroll för beräknat värde om du vill visa skrivskyddad text, visa värdet för en annan kontroll i formuläret och skapa formler som baseras på XPath-uttryck. Om du utvecklar ett formulär för utgiftsuppföljning kan du till exempel lägga till en kontroll för beräknat värde som visar summan av utgifter som har matats in.
Obs!: En kontroll för beräknat värde visar endast data, den lagrar inte dem, så du bör använda en kontroll för beräknat värde endast om du inte vill spara dess värde eller hänvisa till den i en annan formel.
-
Placera markören där du vill infoga kontrollen i formulärmallen.
-
På fliken Start i gruppen Kontroller, klickar du på kontrollen för beräknat värde.
-
Gör något av följande i dialogrutan Infoga beräknat värde:
-
Om du vill skriva text eller ett XPath-uttryck direkt i kontrollen för beräknat värde, skriver du i rutan XPath.
-
Om du vill infoga en formel klickar du på Redigera formeln och anger sedan önskad formel i textrutan Formel, genom att använda följande, efter behov:
-
Om du vill infoga ett fält eller en grupp i formeln klickar du på Infoga fält eller grupp, klickar på fältet eller gruppen i dialogrutan Markera ett fält eller en grupp och klickar sedan på OK.
-
Om du vill infoga en funktion i formeln klickar du på Infoga funktion, väljer önskad funktion i dialogrutan Infoga funktion och klickar sedan på OK.
Om funktionen kräver parametrar, väljer du funktionen i dialogrutan Infoga funktion, klickar på OK och dubbelklickar sedan på angiven plats i formeltexten och väljer önskad parameter innan du klickar på OK.
-
Om du vill infoga ett värde eller en matematisk operator i formeln skriver du värdet eller symbolen för den matematiska operationen i rutan Formel.
Matematiska operatorer är bl.a. addition (+), subtraktion (-), multiplikation (*) och division (/).
Matematiska formler använder vanligtvis heltal eller decimalvärden som argument. För att undvika tomma värden i en formel går du till fliken Arkiv, klickar på Formuläralternativ och väljer sedan Avancerat och kontrollerar att Hantera tomma värden som noll är markerat.
-
-
Lägga till en formel i en kontroll
Även om du kan använda en kontroll för beräknat värde för att visa resultatet av en formel, är du inte begränsad till att använda ett en sådan kontroll. Du kan också använda en formel för att ange standardvärdet för andra kontroller, till exempel textrutor. Det finns två sätt som du kan ställa in standardvärdet för en kontroll. Du kan antingen använda ett statiskt standardvärde genom att ange önskat värde i fältet Värde i dialogrutan Egenskaper för fält eller grupp, eller så kan du använda en formel för att ange standardvärdet för ett fält baserat på andra värden i formuläret. Gör följande för att ange standardvärdet för ett fält baserat på en formel:
-
Markera kontrollen som du vill lägga till formeln i och gå sedan till Kontrollverktyg och klicka på fliken Egenskaper i gruppen Egenskaper och klicka på Standardvärde.
-
Klicka på Infoga formel bredvid rutan Värde.
-
Ange önskad formel i textrutan Formel, genom att använda följande, efter behov:
-
Om du vill infoga ett fält eller en grupp i formeln klickar du på Infoga fält eller grupp, klickar på fältet eller gruppen i dialogrutan Markera ett fält eller en grupp och klickar sedan på OK.
-
Om du vill infoga en funktion i formeln klickar du på Infoga funktion, väljer önskad funktion i dialogrutan Infoga funktion och klickar sedan på OK.
Om funktionen kräver parametrar, väljer du funktionen i dialogrutan Infoga funktion, klickar på OK och dubbelklickar sedan på angiven plats i formeltexten och väljer önskad parameter innan du klickar på OK.
-
Om du vill infoga ett värde eller en matematisk operator i formeln skriver du värdet eller tecknet för den matematiska operationen i rutan Formel.
Matematiska operatorer är bl.a. addition (+), subtraktion (-), multiplikation (*) och division (/).
Tips: Matematiska formler använder vanligtvis heltal eller decimalvärden som argument. För att undvika tomma värden i en formel går du till fliken Arkiv, klickar på Formuläralternativ och väljer sedan Avancerat. Kontrollera att Hantera tomma värden som noll är markerat.
-
-
Om du vill redigera formeln som en XPath-formel markerar du kryssrutan Redigera XPath (avancerat), vilket ändrat formeln till XPath-uttrycksversionen av formeln.
-
Om du vill kontrollera att formeln har korrekt syntax klickar du på knappen Verifiera formel. Om formeln innehåller fel:
Klicka på Visa detaljer i dialogrutan Microsoft Office InfoPath om du vill visa felen i formeln. Nedan följer några rekommendationer om hur du kan åtgärda felen:
-
Om du använder en funktion i formeln kontrollerar du att du använder rätt argument för funktionen. En del funktioner kräver fält eller grupper medan andra kräver särskilda värden som argument.
-
Ta bort och skriv om formeln för att försäkra dig om att den är rätt skriven.
-
Klicka på OK.
-
Om du vill uppdatera standardvärdet för fältet när de värden som det baseras på ändras, markerar du kryssrutan Uppdatera värdet när formeln beräknas om. Om du gör detta klickar du sedan på OK och klickar sedan under Kontrollverktyg, på fliken Egenskaper i gruppen Egenskaper, på Kontrollegenskaper. Klicka på fliken Visa och markera sedan kryssrutan Skrivskyddad.
Använda en formel i en regel
Det är möjligt när du anger villkor i verifiering, formateringeller åtgärd regler för att använda en formel för att styra villkoret. Du kan göra detta genom att välja Använd en formel från tredje listrutan i dialogrutan villkor när du tilldelar en regel till en kontroll eller formulärmallen.
Tid- och datumfunktioner
addDays
Lägger till dagar till ett datum och tid.
Syntax
addDays(datum, dagar)
Argument |
Beskrivning |
datum |
Antalet dagar i det andra argumentet läggs till datumet i det här argumentet. Argumentet kan vara av datatypen datum (date) eller ett datum och tid (dateTime). |
dagar |
Antal dagar som du vill lägga till datumet i det första argumentet. Den här parametern måste vara av datatypen heltal (integer). Om du använder ett negativt tal i det här argumentet blir returvärdet ett tidigare datum. |
Exempel
Du vill att ett fält i formulärmallen ska innehålla ett datum som ligger 60 dagar efter dagens datum. Formulärmallen innehåller ett fält med namnet fldToday med dagens datum som standardvärde. För att beräkna det nya datumet med hjälp av den här funktionen kan du använda följande formel i det nya datumfältet:
addDays (fldToday 60)
addSeconds
Lägger till sekunder till en tid eller ett datum och tid.
Syntax
addSeconds(tid, sekunder)
Argument |
Beskrivning |
tid |
Ett datum- och tidvärde eller ett tidvärde som antingen är en referens till ett annat fält på formulärmallen eller resultatet av en datum- eller tidfunktion, till exempel now() eller today(). Antalet sekunder i det andra argumentet läggs till tiden i det här argumentet. Argumentet kan vara av datatypen datum (date) eller ett datum och tid (dateTime). Om datatypen är Time, returneras datatypen Time. Om datatypen är Date, returneras datatypen Date. |
sekunder |
Antalet sekunder som du vill lägga till datum- och tidsvärdet eller tidsvärdet i det första argumentet. Fältet i den här parametern måste vara av datatypen heltal (integer). Om du använder ett negativt tal i det här argumentet blir returvärdet ett tidigare datum och tid, eller en tidigare tid. |
Exempel
Formulärmallen innehåller ett fält med namnet fldCurrentTime som använder den aktuella tiden som standardvärde och ett andra fält som använder funktionen addSeconds i en formel som visar tiden 120 sekunder från aktuellt klockslag. För att beräkna det nya tidsvärdet med hjälp av den här funktionen kan du använda följande formel i det andra fältet:
addSeconds(fldCurrentTime, 120)
now
Returnerar aktuellt systemdatum och systemtid.
Om du vill att bara det aktuella datumet ska returneras, använder du funktionen today.
Syntax
now()
Den här funktionen använder inte argument.
Exempel
För att få datum och tid när ett formulär som baseras på formulärmallen skapades, kan du använda följande formel i ett fält:
now()
today
Returnerar aktuellt systemdatum. För SharePoint-listdatumfält, använd funktionen now().
Om du vill att både datum och tid ska returneras kan du använda funktionen now.
Syntax
today()
Den här funktionen använder inte argument.
Exempel
För att få datum när ett formulär som baseras på formulärmallen skapades, kan du använda följande formel i ett fält:
today()
Fältfunktioner
count
Returnerar antalet förekomster av fältet eller gruppen i ett formulär.
Syntax
count(fält)
Argument |
Beskrivning |
fält |
Namnet på det upprepande fält eller upprepande grupp som ska räknas i formuläret. |
Exempel
Du utformar en formulärmall vars formulär ska användas av leverantörer för att rapportera deras produkter och lager. Formulärmallen innehåller en upprepande grupp med namnet grpProduct för produkter som skickas in av leverantören. Varje grupp innehåller information om produkten och dess lagernivå. När en leverantör lägger till en produkt i ett formulär som baseras på den här formulärmallen, skapas en ny instans av den upprepande gruppen.
Formulärmallen har ett fält i datakällan som innehåller antalet produkter som skickas in av leverantören. Om du automatiskt vill räkna antalet produkter som skickats in av leverantören, som är antalet förekomster av den upprepande gruppen grpProduct, använder du följande formel i fältet för antal produkter:
count(grpProduct)
last
Returnerar den sista förekomsten av ett upprepande fält eller grupp.
Obs!: Om du designar en webbläsarkompatibel formulärmall förekommer inte denna funktion i listan Funktioner i dialogrutan Infoga funktion.
Syntax
field_name[last()]
Även om själva funktionen inte har några obligatoriska parametrar, kan du använda den som ett predikat för ett angivet fältnamn.
Exempel
Du utformar en formulärmall som leverantörer ska fylla i för att rapportera deras produktinventeringar. Formulärmallen har en dataanslutning till en webbtjänst som har en metod som kontrollerar om produktinformationen för alla produkter från en leverantör har slutförts. Metoden behöver den sista produkten i listan över produkter som har skickats in av leverantören.
Produktinformationen lagras i olika fält i en upprepande grupp som heter grpProduct. När en leverantör lägger till en produkt i formuläret, läggs en ny upprepande grupp kallad grpProduct till. Om leverantören rapporter för flera produkter, innehåller datakällan för formuläret flera instanser av den upprepande gruppen grpProduct.
För att se till att du skickar in rätt information till webbtjänsten kan du lägga till ett fält som innehåller information om den sista produkten i gruppen med produkter från leverantören. Använd följande formel som standardvärde för fältet för sista produkt om du vill konfigurera det fältet till att automatiskt hämta den sista produkten:
grpProduct[last()]
local-name
Returnerar det lokala namnet på ett fält eller en grupp.
Meddelanden:
-
Om argumentet är ett upprepande fält eller en upprepande grupp, returnerar funktionen värdet för det första upprepande fältet eller upprepande gruppen.
-
När en användare fyller i ett webbläsarformulär skickar en formel som använder den här funktionen formulärdata till servern för att få returvärdet för den här funktionen.
Syntax
local-name(fält)
Argument |
Beskrivning |
fält |
Namnet på det fält som du vill returnera det lokala namnattributet för. |
Exempel
Du utformar en formulärmall som används för tillståndsansökningar. Formulärmallen har en dataanslutning till en metod i en webbtjänst. Den här metoden kräver värdet för attributet local-name i fältet för entreprenörens licensnummer. Namnet på fältet för licensnumret är fldLicenseNumber.
Du har ett fält som innehåller värdet för det lokala namnattributet. Om du automatiskt vill hämta värdet för det lokala namnattributet för fältet för licensnummer, använder du följande formel som standardvärde för fältet som innehåller värdet för det lokala namnattributet:
local-name(fldLicenseNumber)
name
Returnerar namnet och namnområdesprefixet för ett fält eller en grupp.
Meddelanden:
-
Om argumentet är ett upprepande fält eller en upprepande grupp, returnerar funktionen namnet och prefixet för det första upprepande fältet eller upprepande gruppen.
-
När en användare fyller i ett formulär baserat på en webbläsarformulärmall, skickar en formel som använder den här funktionen formulärdata till servern för att få returvärdet för den här funktionen.
Syntax
name(field)
Argument |
Beskrivning |
fält |
Namnet på det fält som du vill returnera namnområdesprefixet och namnet för. |
Exempel
Du utformar en formulärmall som används för tillståndsansökningar. Formulärmallen har en dataanslutning till en metod i en webbtjänst. Den här metoden kräver namnattributet för fältet för entreprenörens licensnummer. Namnet på fältet för licensnumret är fldLicenseNumber.
Du har ett fält som kommer att innehålla värdet för namnattributet. Om du automatiskt vill hämta värdet för namnattributet, använder du följande formel som standardvärde för fältet:
name(fldLicenseNumber)
namespace-uri
Returnerar det fullständiga namnområdet för ett fält eller en grupp.
Meddelanden:
-
Om argumentet motsvarar en uppsättning fält eller grupper, returneras namnområdet för det första fältet eller den första gruppen i formuläret.
-
När en användare fyller i ett webbläsarformulär skickas en formel som använder den här funktionen formulärdata till servern för att få returvärdet för den här funktionen.
Syntax
namespace-uri(fält)
Argument |
Beskrivning |
fält |
Namnet på fältet vars namnområdes-URI du vill hämta. |
Exempel
Du utformar en formulärmall som används för tillståndsansökningar. Formulärmallen skickar data till en webbtjänst. För att bearbeta data från ett formulär som baseras på formulärmallen behöver webbtjänsten namnområdes-URI från ett specifikt elementfält i datakällan. Fältet i formulärmallen som innehåller namnområdes-URI-data heter fldComplete.
Du har ett fält som innehåller namnområdes-URI för elementfältet. Använd följande formel som standardvärde för fältet för som kommer att innehålla namnområdes-URI för att automatiskt hämta namnområdes-URI:
namespace-uri(fldComplete)
position
Returnerar indexet (eller positionen) för fältet eller gruppen i förhållande till de andra fälten eller grupperna i samma överordnad grupp.
Obs!: Denna funktion är inte tillgänglig i webbläsarformulärmallar.
Syntax
position()
Exempel
Du utformar en formulärmall som leverantörer ska fylla i för att rapportera deras produktinventeringar. Produktinformationen lagras i fält i en upprepande grupp. Den upprepande gruppen är bunden till en upprepande tabell, vilket gör att en leverantör kan lägga till ny eller ändra befintlig produktinformation.
I den första kolumnen i den upprepande tabellen vill du visa antalet rader i en textruta. Använd följande formel om du vill visa radnumret automatiskt när leverantören lägger till en ny produkt i den upprepande tabellen som standardvärde för textrutan:
position()
Matematiska funktioner
Formler som innehåller matematiska funktioner kräver vanligtvis argument som är heltal eller decimalvärden. Kontrollera att argumenten är heltal eller decimalvärden istället för null-värden genom att klicka på Arkiv > Formuläralternativ > Avancerat, och kontrollerar sedan att kryssrutan Hantera tomma värden som noll är markerad.
avg
Beräknar medelvärdet för numeriska värden i ett fält i en upprepande grupp.
Obs!: Det upprepande fältet måste vara av typen numeriska data och ingå i en grupp.
Syntax
avg(fält)
Argument |
Beskrivning |
fält |
Namnen på de upprepande fälten i den grupp som du vill beräkna medelvärdet för. |
Exempel
Du utformar en formulärmall vars formulär ska användas av leverantörer för att rapportera deras produkter och lager. Formulärmallen innehåller ett upprepande fält med namnet fldPrice som finns i en återkommande grupp som innehåller information om varje produkt som säljs av leverantören. Gruppen är bunden till en kontroll för upprepande tabell.
Du har ett fält i formulärmallen som kommer att innehålla medelpriset för alla produkter som säljs av den leverantören. Använd följande formel i fältet för medelpris för att beräkna medelpriset:
avg(fldPrice)
boolean
Returnerar SANT om det finns ett fält eller en grupp. Annars returneras FALSKT.
Returnerar SANT även om en kontroll som är kopplad till fältet har tagits bort, men fältet fortfarande finns.
Syntax
boolean(fält)
Argument |
Beskrivning |
fält |
Ett upprepande fält eller en upprepande grupp kontrolleras av den här funktionen. |
Exempel
Du utformar en formulärmall som leverantörer ska fylla i för att rapportera deras produktlager. Produktinformationen lagras i olika fält i en upprepande grupp som heter grpProduct. Varje upprepande grupp innehåller fält med information om varje produkt. Om leverantören tillhandahåller information om sju produkter, innehåller formuläret sju upprepande grupper.
Den upprepande gruppen är bunden till en kontroll för upprepande tabell, som gör att leverantören kan lägga till ny eller ändra befintlig produktinformation. Leverantören kan lägga till eller ta bort rader från den upprepande tabellen.
Du vill visa en dialogruta om användaren tar bort alla rader i den upprepande tabellen. Du lägger till ett fält i datakällan som innehåller ordet "SANT" om kontrollen för upprepande tabell innehåller minst en rad och ordet "FALSKT" om kontrollen för upprepande tabell inte har några rader.
Du konfigurerar en regel i kontrollen för upprepande tabell för att visa en dialogruta om värdet i fältet är FALSKT. Om du automatiskt vill avgöra om den upprepande tabellen innehåller minst en rad kan du använda följande formel som standardvärde för fältet med ordet "SANT" eller "FALSKT":
boolean(grpProduct)
ceiling
Avrundar ett tal uppåt till närmaste heltal
Syntax
ceiling(tal)
Argument |
Beskrivning |
tal |
Namnet på fältet med ett numeriskt värde. |
Exempel
Du skapar en mall för ett utgiftsrapportformulär för ditt företag. Utgifterna skickas till en webbtjänst som har en parameter som accepterar endast heltal. Utgiftsbeloppet som skickas till den här parametern måste avrundas till närmaste högre heltalsvärde. Utgiftsbeloppet lagras i ett fält som heter fldExpenseAmount och heltalsvärdet lagras i ett annat fält. Använd följande formel för att beräkna det högre heltalsvärdet som standardvärde för det andra fältet:
ceiling(fldExpenseAmount)
Om en användare skapar ett formulär som baseras på formulärmallen och fyller i 145.87 i fältet fldExpenseAmount, blir värdet i fältet som innehåller formeln 146.
eval
Returnerar värden för ett fält eller en grupp. Det andra argumentet definierar uttrycket som ska beräknas för fältet eller gruppen. Oftast finns är funktionen eval kapslad inom en funktion som används för ett fält eller en grupp, till exempel sum eller avg.
Syntax
eval(fält, uttryck)
Argument |
Beskrivning |
fält |
Namnet på fältet eller gruppen vars värden ska utvärderas av uttrycket i det andra argumentet. |
uttryck |
Det uttryck som ska användas för det första argumentet. Uttrycket som kan vara en XPath-funktion eller ett uttryck som omges av dubbla citattecken (""). |
Exempel
Du skapar en mall för ett utgiftsrapportformulär för ditt företag. Formulärmallen innehåller ett fält med namnet fldTotal som innehåller ett utgiftsbelopp. Fältet fldTotal är en del av en upprepande grupp med namnet grpExpenses. Ett annat fält är bundet till en textruta som innehåller summan av alla utgifter. Om du vill visa summan av alla utgifter när användaren anger ett utgiftsbelopp, använder du följande formel i fältet för totala utgifter:
eval(grpExpenses,sum(fldTotal))
false
Returnerar FALSKT.
Syntax
false()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen har två avsnitt: ett avsnitt för kontaktinformation och ett annat avsnitt för information om ett bygglovet. När de fyller i formuläret måste leverantörerna fylla i hela avsnittet med kontaktinformation innan de kan fylla i avsnittet om bygglov.
För att uppnå detta kan du skapa en regel för att ange värdet för en booleskt fält till FALSKT om något av fälten i avsnittet med kontaktinformation är tomt. Ett booleskt värdefält kan ha det booleska värdet SANT eller det booleska värdet FALSKT. Du kan även konfigurera den villkorsstyrda formateringen för att dölja avsnittskontrollen som innehåller information om bygglov om det booleska fältvärdet är FALSKT.
Om du vill dölja avsnittskontrollen som innehåller fälten med bygglovsinformation, konfigurerar du en regel för att köra den här funktionen i det booleska fältet om något av fälten i avsnittet med kontaktinformation är tomt.
floor
Avrundar ett tal nedåt till närmaste heltal.
Syntax
floor(tal)
Argument |
Beskrivning |
tal |
Namnet på fältet med ett numeriskt värde. |
Exempel
Du skapar en mall för ett utgiftsrapportformulär för ditt företag. Utgifterna skickas till en webbtjänst som använder en parameter som accepterar endast heltal. Utgiftsbeloppet som skickas till den här parametern måste avrundas till närmaste lägre heltalsvärde. Utgiftsbeloppet lagras i ett fält som heter fldExpenseAmount och heltalsvärdet lagras i ett annat fält. Använd följande formel för att beräkna det lägre heltalsvärdet som standardvärde för det andra fältet:
floor(fldExpenseAmount)
max
Returnerar det största talet i ett fält eller en grupp.
Syntax
max(fält)
Argument |
Beskrivning |
fält |
Ett upprepande fält i en grupp eller ett fält i en upprepande grupp som du vill hitta det högsta värdet i. |
Exempel
Du utformar en formulärmall vars formulär ska användas av leverantörer för att rapportera deras produktlager. Formulärmallen innehåller en upprepande grupp som innehåller flera fält som innehåller data om leverantörens produkter. Ett fält med namnet fldPrice i den upprepande gruppen innehåller priset för en produkt.
Ett annat fält i datakällan för formulärmallen kommer att innehålla det högsta priset för alla produkter som säljs av den leverantören. Använd följande formel för att returnera det högsta priset i fältet för högsta pris:
max(fldPrice)
min
Returnerar det minsta talet i ett fält eller en grupp.
Syntax
min(fält)
Argument |
Beskrivning |
fält |
Ett upprepande fält i en grupp eller ett fält i en upprepande grupp som du vill hitta det högsta värdet i. |
Exempel
Du utformar en formulärmall vars formulär ska användas av leverantörer för att rapportera deras produktlager. Formulärmallen innehåller en upprepande grupp som innehåller flera fält som innehåller data om leverantörens produkter. Ett fält med namnet fldPrice i den upprepande gruppen innehåller priset för en produkt.
Ett annat fält i datakällan för formulärmallen kommer att innehålla det lägsta priset för alla produkter som säljs av den leverantören. Använd följande formel för att returnera det lägsta priset i fältet för lägsta pris:
min(fldPrice)
not
Returnerar SANT om ett booleskt värde är FALSKT eller null. Returnerar FALSKT om ett booleskt värde är SANT eller inte null.
Syntax
not(booleskt_värde)
Argument |
Beskrivning |
booleskt_värde |
Ett fält med en boolesk datatyp. |
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen har ett avsnitt för kontaktinformation och ett annat avsnitt för information om ett bygglovet. När de fyller i formuläret måste leverantörerna fylla i hela avsnittet med kontaktinformation innan de kan fylla i avsnittet om bygglov.
För att uppnå detta kan du skapa en regel för att ange värdet för ett booleskt fält till FALSKT om något av fälten i avsnittet med kontaktinformation är tomt. Ett booleskt värdefält kan ha det booleska värdet SANT eller det booleska värdet FALSKT. Du använder sedan samma formel för att dölja avsnittskontrollen som innehåller information om bygglov om det booleska fältvärdet är FALSKT. Om du vill ange den här regeln använder du följande formel för att ange det booleska fältvärdet till FALSKT:
not(true())
number
Konverterar ett värde till ett tal.
Funktionen returnerar NaN om värdet i argumentet inte kan konverteras till ett tal.
Syntax
number(värde)
ArgumentBeskrivning
värdeFältet med ett värde som ska konverteras till ett tal.
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen innehåller ett avsnitt där entreprenören kan skriva sin företagsadress. För att bekräfta att entreprenören anger en giltig adress, kan du använda en dataanslutning till en webbtjänst som kan bekräfta adressen. Om adressen bekräftas, kan entreprenören skicka formuläret till en SQL-databas. SQL-databasen använder ett textfält för både gatunumret och gatunamnet. Webbtjänsten kräver att adressnumret är en numerisk datatyp och att gatunamnet är en textdatatyp.
Om du vill skicka data till både webbtjänsten och SQL-databasen måste adressen lagras som två olika datatyper:
-
Om du vill skicka adressen till webbtjänsten måste adressnumret vara en numerisk datatyp och gatunamnet vara en textdatatyp.
-
Om du vill skicka adressen till SQL-databasen måste både gatunumret och gatunamnet vara en textdatatyp.
Du vill också att entreprenören ska ange sin adress endast en gång. För att konvertera adressen till rätt datatyper och säkerställa att leverantören anger sin postadress bara en gång, innehåller formulärmallen ett fält med namnet fldAddressNumber där man anger gatunumret och ett annat fält där man anger gatunamnet. Båda fälten är konfigurerade som textdatatyper.
För att kunna skicka in gatunumret till webbtjänsten behöver du konvertera data i fältet fldAddressNumber (lagras som en textdatatyp) till en numerisk datatyp. Värdet på gatunumret som konverteras till numeriska data lagras i ett annat fält som konfigurerats för att lagra numeriska datatyper.
Använd följande formel som standardvärde för fältet fldAddressNumber om du vill konvertera gatunumret från en textdatatyp till en numerisk datatyp:
number(fldAddressNumber)
nz
Returnerar ett fält eller en grupp med alla tomma fält ersatta med noll (0).
Syntax
nz(fält)
Argument |
Beskrivning |
fält |
Fältet som du vill söka efter ett värde i. |
Exempel
Du utformar en formulärmall som leverantörer ska fylla i för att rapportera deras produktinventeringar. Leverantören ska skicka sina produktlagersaldon till en webbtjänst genom ett formulär som baseras på formulärmallen. Metoden för webbtjänsten kräver att alla element som innehåller numeriska data har ett numeriskt värde. Webbtjänsten avvisar ett formulär som innehåller ett tomt numeriskt element.
Formulärmallen innehåller ett fält med namnet fldAvailability som innehåller ett tal som motsvarar leverantörens förmåga att tillhandahålla den här produkten. Leverantören kan ange ett tal i det här fältet. Använd följande formel som standardvärde för fältet för att se till att leverantören kan skicka sitt formulär baserat på formulärmallen till webbtjänsten och automatiskt ange värdet för fältet till noll om leverantören inte anger ett tal:
nz(fldAvailability)
round
Avrundar ett tal till närmaste heltal
Om talet inte ligger exakt mellan två avrundade heltalsvärden, avrundas det uppåt till närmaste heltal.
Syntax
round(tal)
Argument |
Beskrivning |
number |
Fältet som innehåller det tal som ska avrundas med hjälp av den här formeln. |
Exempel
Du utformar en formulärmall vars formulär ska användas av leverantörer för att rapportera deras produktlager. Formulärmallen innehåller en upprepande grupp som innehåller flera fält som innehåller data om leverantörens produkter. Ett av fälten, med namnet fldPrice, i den upprepande gruppen innehåller priset för en produkt.
Formulärmallen har en dataanslutning för sändning till en webbtjänst. Webbtjänstens metod kräver att alla priser avrundas till ett heltal. För att skicka rätt värde till webbtjänstens metod lägger du till ett upprepande fält i datakällan. Det här fältet använder följande formel för att avrunda priset i fältet fldPrice till ett heltal:
round(fldPrice)
sum
Returnerar summan av alla fält i ett fält eller en grupp. Varje fält konverteras först till ett numeriskt värde.
Syntax
sum(fält)
Argument |
Beskrivning |
fält |
Namnet på ett fält i en upprepande grupp eller ett upprepande fält i en grupp vars värden ska summeras. Om du vill lägga till fält från två olika grupper avgränsar du argumenten med unionoperatorn (|), t.ex. sum( fältnamn 1 | fältnamn 2). |
Exempel
Du skapar en mall för ett utgiftsrapportformulär. Formulärmallen har en grupp som innehåller utgiftsposter. Beloppet för varje post lagras i ett fält som heter fldExpenseAmount. Gruppen är bunden till en upprepande tabell som visar varje utgiftspost som en rad. Formulärmallen innehåller en textrutekontroll som visar de totala utgifterna. För att visa de totala utgifterna innehåller textrutekontrollen följande formel:
sum(fldExpenseAmount)
true
Returnerar SANT.
Syntax
true()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen innehåller ett avsnitt för kontaktinformation och ett annat avsnitt för information om ett bygglovet. När de fyller i formuläret måste leverantörerna fylla i hela avsnittet med kontaktinformation innan de kan fylla i avsnittet om bygglov.
För att uppnå detta kan du skapa en regel för att ange värdet för ett booleskt fält till SANT om alla fälten i avsnittet med kontaktinformation innehåller data. Ett booleskt värdefält kan ha det booleska värdet SANT eller FALSKT. Om det booleska fältvärdet är SANT, visas den avsnittskontroll som innehåller information om bygglov.
Om du vill visa avsnittskontrollen som innehåller bygglovsinformationen, konfigurerar du en regel för att köra den här funktionen i det booleska fältet om alla fälten i avsnittet med kontaktinformation innehåller data.
Textfunktioner
concat
Sammanfogar två eller fler fält med textsträngar till en textsträng.
Syntax
concat(text1, text2, ...)
Argument |
Beskrivning |
text1 |
Ett fält som innehåller text som ska kombineras till en enda textrad med text i argument2. |
text2, … |
Eller flera ytterligare fält som innehåller text ska kombineras med föregående fält. Avgränsa textfält med ett kommatecken. |
Exempel
Du utformar en formulärmall som innehåller ett fält med namnet fldFirstName och ett fält med namnet fldLastName. Lägg till följande formel till ett tredje fält om du vill göra att det innehåller texten "Det här formuläret fylldes i av <förnamn> <efternamn>.":
concat("Det här formuläret fylldes i av ", fldFirstName, " ", fldLastName, ".")
Obs!: Faktisk text som anges som ett textargument, inklusive blanksteg eller skiljetecken, måste infogas inom citattecken (").
contains
Returnerar SANT om det första fältet eller textsträngen innehåller det andra. Annars returneras FALSKT.
Syntax
contains(inom_text, sök_text)
Argument |
Beskrivning |
inom_text |
Namnet på fältet som innehåller den text som ska genomsökas. |
sök_text |
Fältet som innehåller den text eller text omgiven av dubbla citattecken (" ") som du vill söka efter i det första argumentet. |
Exempel
Du utformar en formulärmall med tre textfält. Det första gör att en användare att ange en stor mängd text i den första textkontrollen med namnet fldText. Det andra gör att en användare kan ange ett kortare segment av text och heter fldFindText. Den tredje textrutan jämför den andra textrutan med den första och anger om värdet i det andra fältet påträffas i det första fältet och visar resultatet. Det skulle ha följande formel som standardvärde:
contains(fldText,fldFindText)
normalize-space
Tar bort blanksteg från en textsträng.
Obs!: Detta tar bort alla inledande, avslutande och upprepade blanksteg från ett fält med textdatatyp.
Syntax
normalize-space(text)
Argument |
Beskrivning |
text |
Texten som innehåller de inledande, avslutande eller upprepande blanksteg som du vill ta bort. Omge texten med dubbla citattecken (" "). |
Exempel
Du utformar en formulärmall som innehåller ett fält med namnet fldText (som är bundet till en textrutekontroll). Om du vill normalisera text som skrivs i det första fältet och värdet i det första fältet utan några överflödig blanksteg, lägger du till ett andra fält med följande formel som standardvärde:
normalize-space(fldText)
starts-with
Returnerar SANT om det första fältet eller textsträngen börjar med det andra. Annars returneras FALSKT.
Syntax
starts-with(text, start_text)
Argument |
Beskrivning |
text |
Namnet på fältet som innehåller den text som ska genomsökas. Avgränsa argument med kommatecken. |
start_text |
Texten som du vill söka efter i början av fältet i det första argumentet. Det här argumentet kan antingen vara ett fält eller text inom dubbla citattecken (" "). |
Exempel
Du utformar en formulärmall med tre textfält. Det första gör att en användare att ange en stor mängd text i den första textkontrollen med namnet fldText. Det andra gör att en användare kan ange ett kortare segment av text och heter fldFindText. Den tredje textrutan jämför den andra textrutan med den första och anger om värdet i det första fältet börjar med värdet i det andra fältet och visar resultatet. Det skulle ha följande formel som standardvärde:
starts-with(fldText, fldFindText)
string
Konverterar ett värde till en textsträng.
Syntax
string(värde)
Argument |
Beskrivning |
värde |
Fältet som innehåller värdet som ska konverteras till text. |
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen innehåller ett avsnitt där entreprenören kan skriva sin företagsadress. För att bekräfta att entreprenören anger en giltig adress, har formulärmallen en dataanslutning till en webbtjänst som kan bekräfta adressen. Om adressen bekräftas, kan entreprenören skicka formuläret till en SQL-databas. SQL-databasen använder ett textfält för gatuadressen. Webbtjänsten kräver att adressnumret är en numerisk datatyp och att gatunamnet är en textdatatyp.
Om du vill skicka data till både webbtjänsten och SQL-databasen måste adressen lagras i två olika datatyper:
-
Om du vill skicka adressen till webbtjänsten måste gatunumret vara en numerisk datatyp.
-
Om du vill skicka adressen till SQL-databasen måste både gatunumret och gatunamnet vara en textdatatyp.
Du vill också att entreprenören ska ange sin adress endast en gång. För att konvertera adressen till rätt datatyper och säkerställa att leverantören anger sin postadress bara en gång, innehåller formulärmallen ett fält för inmatning av gatunumret med namnet fldAddressNumber och ett annat fält där man anger gatunamnet. Fältet fldAddressNumber fält är en numerisk datatyp och fältet för gatuadress är en textdatatyp.
För att skicka hela adressen (både gatunumret och gatunamnet) till SQL-databasen, måste du kombinera värdena i fälten fldAddressNumber och fältet för gatunamn till ett värde som är av datatypen text. Först måste du konvertera numeriska data i fältet fldAddressNumber, som lagrar data som en numerisk datatyp till datatypen text. Du lägger till ett fält i datakällan som innehåller hela adressen som datatypen text.
Om du vill konvertera textdata i fältet fldAddressNumber till datatypen text så att du kan använda webbtjänsten, konfigurerar du ett annat fält som innehåller gatunumret som datatypen text. Använd följande formel som standardvärde för fältet om du vill konvertera gatunumret från en numerisk datatyp till en textdatatyp:
string(fldAddressNumber)
string-length
Returnerar antalet tecken i en textsträng
Syntax
string-length(text)
Argument |
Beskrivning |
text |
Fältet vars värde är den text som du vill räkna. |
Exempel
Du utformar en formulärmall som innehåller ett fält med namnet fldText som är bundet till en textrutekontroll. Formulärmallen innehåller ett andra fält som används för att räkna antalet tecken som anges i det första formuläret. För att göra detta skulle det andra fältet innehålla följande formel som standardvärde:
string-length(fldText)
substring
Returnerar en viss del av en textsträng. Det andra argumentet anger startpositionen och det tredje argumentet anger hur många tecken som ska ingå.
Syntax
substring(text, start_position, char_count)
Argument |
Beskrivning |
text |
Ett fält med en textdatatyp eller text som omges av dubbla citattecken (" "). Funktionen söker efter den här texten och returnerar alla tecken från positionen som anges i det andra argumentet upp till det antal tecken som ska anges i det tredje argumentet eller till slutet av texten, beroende på vad som inträffar först. |
start_position |
Startpositionen för texten som ska hämtas från det första argumentet. Det här argumentet måste vara ett heltal eller en referens till ett fält som konfigurerats för att lagra heltalsdatatyper. |
char_count |
Antalet tecken som du vill hämta, med början på startpositionen som anges i det andra argumentet. Det här argumentet måste vara ett heltal eller en referens till ett fält som konfigurerats för att lagra heltalsdatatyper. |
Exempel
Du utformar en formulärmall med följande fält och kontroller:
-
Ett fält med namnet fldText som är bundet till en textrutekontroll. Det här fältet innehåller den text som funktionen söker.
-
Ett fält med namnet fldStartingPosition som är bundet till en textrutekontroll. Det här fältet har konfigurerats som en heltalsdatatyp. Fältet innehåller startpositionen för funktionen.
-
Ett fält med namnet fldNumberOfCharacters som är bundet till en textrutekontroll. Det här fältet har konfigurerats som en heltalsdatatyp. Fältet innehåller antalet tecken som funktionen returnerar.
-
En textrutekontroll som visar resultatet av funktionen. Kontrollen för textrutan innehåller följande formel:
substring(fldText, fldStartingPosition, fldNumberOfCharacters)
Om en användare anger "Formuläret skapades från en InfoPath-formulärmall." i den första textrutan, följt av 4 i den andra och 16 i den tredje, skulle den fjärde textrutan innehålla "s formuläret skapades".
substring-after
Returnerar texten i den första textsträngen som följer på den första förekomsten av den andra textsträngen.
Syntax
substring-after(text, find_text)
Argument |
Beskrivning |
text |
Ett fält med en textdatatyp eller text som omges av dubbla citattecken (" "). Funktionen söker efter texten i det här argumentet och returnerar sedan de tecken som följer efter texten i det andra argumentet. |
sök_text |
Texten du vill söka efter i texten i det första argumentet. Texten kan antingen vara värdet i fältet med en textdatatyp eller text som omges av dubbla citattecken (" "). Funktionen söker efter texten i det första argumentet och returnerar sedan alla tecken som följer efter texten i det här argumentet. |
Exempel
Du utformar en formulärmall med följande fält och kontroller:
-
Ett fält med namnet fldText som är bundet till en textrutekontroll. Det här fältet innehåller den text som funktionen söker.
-
Ett fält med namnet fldSubstringText som är bundet till en textrutekontroll. Det här fältet innehåller den text som är det andra argumentet i funktionen.
-
En textrutekontroll som visar resultatet av funktionen. Kontrollen för textrutan innehåller följande formel:
substring-after(fldText, fldSubstringText)
Om en användare anger "Formuläret skapades från en InfoPath-formulärmall." i fältet fldText och ”InfoPath” i det andra, skulle den tredje textrutan innehålla "formulärmall".
substring-before
Returnerar texten i den första textsträngen som följer kommer före den första förekomsten av den andra textsträngen.
Syntax
substring-before(text, find_text)
Argument |
Beskrivning |
text |
Ett fält med en textdatatyp eller text som omges av dubbla citattecken (" "). Funktionen söker efter texten i det här argumentet och returnerar sedan alla tecken som kommer före texten i det andra argumentet, sök_text. |
sök_text |
Det värdet du vill söka efter i argumentet text. Värdet kan antingen vara värdet i ett fält med en textdatatyp eller text som omges av dubbla citattecken (" "). Funktionen söker efter texten i det första argumentet (text) och returnerar sedan alla tecken före texten i det här argumentet. |
Exempel
Du utformar en formulärmall med följande fält och kontroller:
-
Ett fält med namnet fldText som är bundet till en textrutekontroll. Det här fältet innehåller den text som funktionen söker.
-
Ett fält med namnet fldSubstringText som är bundet till en textrutekontroll. Det här fältet innehåller den text som är det andra argumentet i funktionen.
-
AA textrutekontroll som visar resultatet av funktionen. Kontrollen för textrutan innehåller följande formel:
substring-before(fldText, fldSubstringText)
Om en användare anger "Formuläret skapades från en InfoPath-formulärmall." i fältet fldText och "skapades" i det andra, skulle tredje kontrollen för textrutan innehålla "Formuläret".
translate
Returnerar den första textsträngen med varje tecken i den andra textsträngen ersatt med tecknet i den tredje textsträngens motsvarande position.
Syntax
translate(text, find_chars, replace_chars)
Argument |
Beskrivning |
text |
Namnet på fältet som innehåller den text vars tecken ska ersättas. Avgränsa argument med ett kommatecken. |
find_chars |
Ett tecken eller värdet för ett fält med en textdatatyp som kommer att ersättas av tecknen i det tredje argumentet. Avgränsa argument med ett kommatecken. |
replace_chars |
Ett tecken eller värdet för ett fält med en textdatatyp som kommer att ersätta varje instans av tecknet i det andra argumentet. |
Exempel
Du utformar en formulärmall vars formulär används av leverantörer för ansökan om bygglov. Formulärmallen innehåller ett avsnitt där entreprenören kan skriva sin företagsadress. Avsnittet innehåller ett fält med namnet fldStreetAddress som är bundet till en textrutekontroll som entreprenören kan ange sin gatuadress i.
För att bekräfta att entreprenören anger en giltig adress, har du en dataanslutning till en webbtjänst som kan bekräfta adressen. Webbtjänsten kräver gemener i adressen.
Om du vill konvertera versaler i gatuadressen till gemener lägger du till ett ytterligare fält i datakällan för gatuadressen konverterad till gemener. Standardvärdet för det här fältet innehåller följande formel:
translate(fldStreetAddress, ABCDEFGHIJKLMNOPQRSTUVWXYZ, abcdefghijklmnopqrstuvwxyz)
URL-funktioner
SharePointListUrl
Returnerar adressen till SharePoint-listan eller ett formulärbiblioteket där formuläret ligger (endast InfoPath 2010).
Syntax
SharePointListUrl()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall för en SharePoint-lista och vill lägga till en länk till den plats där listan ligger, t.ex. "http://sharepointserver/site/list/". Du gör detta genom att lägga till en hyperlänkkontroll och ange den till Skrivskyddad och sedan ange standardvärdet för fältet som kontrollen är länkad till enligt följande:
SharePointListUrl()
Obs!: Om formulärmallen inte finns på en SharePoint-server, returnerar funktionen SharePointListUrl() endast "http://sharepointserver/site/list/".
SharePointServerRootUrl
Returnerar adressen till SharePoint-servern där formuläret ligger (endast InfoPath 2010).
Syntax
SharePointServerRootUrl()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall för en SharePoint-lista och vill lägga till en länk till roten på den SharePoint-server där listan ligger, t.ex. "http://sharepointserver/site/list/". Du gör detta genom att lägga till en hyperlänkkontroll och ange den till Skrivskyddad och sedan ange standardvärdet för fältet som kontrollen är länkad till enligt följande:
SharePointServerRootUrl()
Obs!: Om formulärmallen inte finns på en SharePoint-server, returnerar funktionen SharePointListUrl() endast "http://sharepointserver/site/list/".
SharePointCollectionUrl
Returnerar adressen till SharePoint-platssamlingen där formuläret ligger (endast InfoPath 2010).
Syntax
SharePointCollectionUrl()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall för en SharePoint-lista och vill lägga till en länk till platssamlingen för SharePoint-servern där listan ligger, t.ex. "http://sharepointserver/sitecollection/". Du gör detta genom att lägga till en hyperlänkkontroll och ange den till Skrivskyddad och sedan ange standardvärdet för fältet som kontrollen är länkad till enligt följande:
SharePointCollectionUrl()
Obs!: Om formulärmallen inte finns på en SharePoint-server, returnerar funktionen SharePointListUrl() endast "http://sharepointserver/sitecollection/".
SharePointSiteUrl
Returnerar adressen till SharePoint-platsen där formuläret ligger (endast InfoPath 2010).
Syntax
SharePointSiteUrl()
Den här funktionen använder inte argument.
Exempel
Du utformar en formulärmall för en SharePoint-lista och vill lägga till en länk till SharePoint-platsen där listan ligger, t.ex. "http://sharepointserver/site/". Du gör detta genom att lägga till en hyperlänkkontroll och ange den till Skrivskyddad och sedan ange standardvärdet för fältet som kontrollen är länkad till enligt följande:
SharePointSiteUrl()
Obs!: Om formulärmallen inte finns på en SharePoint-server, returnerar funktionen SharePointListUrl() endast "http://sharepointserver/site/".
Funktionen userName
userName
Returnerar användarnamnet för den person som fyller i formuläret (Microsoft InfoPath 2007 och senare).
Obs!: Om användaren fyller i ett formulär i en webbläsare, hämtas användarnamnet från Microsoft Windows SharePoint Services 3.0 eller senare.
Syntax
userName()
Den här funktionen använder inte argument.
Exempel
Du skapar en mall för ett utgiftsrapportformulär för ditt företag. Kreditkortsföretaget skickar poster för dina anställdas utgifter elektroniskt till en databas som företaget har. Om du vill hämta utgiftsposterna för en anställd måste databasen känna till användarnamnet för den anställde som fyller i ett formulär som baseras på din formulärmall.
Du kan lägga till ett fält i datakällan för formulärmallen för att lagra användarnamnet för den anställde. Du skapar också en dataanslutning för frågor som använder värdet i det här fältet i en fråga för att hämta utgifter.
Om du vill se till att den anställde som fyller i utgiftsrapporten använder rätt användarnamn, binder du fältet till en textrutekontroll. Om du vill visa användarnamnet för den användare som skapar ett formulär som baseras på den här formulärmallen använder du följande formel som standardvärde för ett fält som är bundet till kontrollen för textrutan:
userName()