Innehåll

# Definiera villkor

Villkor är logiska uttryck som du kan använda för att kontrollera visning av fält och områden i dokumentet. Följande exempel gäller inte bara fält, utan också områden.

Du kan definiera villkor för följande fälttyper:

1. Villkorlig text: visar text A om villkoret är sant, eller text B om villkoret är falskt.

2. Dold text: döljer fältets innehåll om villkoret är sant.

3. Dolt stycke: döljer stycket om villkoret är sant.

4. Slumpvis datapost och Nästa datapost: kontrollerar åtkomst till databasposter.

Det enklaste sättet att definiera ett villkor är att skriva det logiska uttrycket direkt i rutan Villkor med följande värden:

SANT | Villkoret är alltid uppfyllt. Du kan även ange ett valfritt värde inte lika med 0 som villkorstext.
FALSKT | Villkoret är inte uppfyllt. Du kan även ange värdet 0.

Om du lämnar rutan Villkor tom tolkas det som att villkoret inte är uppfyllt.

När du definierar ett villkor använder du samma element som när du definierar en formel, nämligen relationsoperatorer, matematiska funktioner, statistiska funktioner, talformat, variabler och konstanter.

Du kan använda följande typer av variabler när du definierar ett villkor:

1. Fördefinierade LibreOffice-variabler som använder statistik på dokumentegenskaper

2. Anpassade variabler som skapas med fältet "Sätt variabel"

3. Variabler baserade på användardata

4. Variabler baserade på innehållet i databasfält

Du kan inte använda interna variabler i villkorsuttryck, till exempel sid- och kapitelnummer.

## Villkor och variabler

I följande exempel används en variabel som kallas "x":

x == 1 eller x EQ 1 | Villkoret är sant om "x" är lika med 1.
x != 1 eller x NEQ 1 | Villkoret är sant om "x" inte är lika med 1.
sinx == 0 | Villkoret är sant om "x" är en multipel av pi.

Om du vill använda relationsoperatorer i strängar måste operatorerna omges av dubbla citattecken.

x == "ABC" eller x EQ "ABC" | Kontrollerar om variabeln "x" innehåller strängen "ABC" (sant), eller inte (falskt).
x == "" eller x EQ "" respektive !x eller NOT x | Kontrollerar om variabeln "x" innehåller en tom sträng.

Relationsoperatorn "är lika med" måste representeras av två likhetstecken (==) i ett villkor. Om du till exempel definierar variabeln "x" med värdet 1, kan du ange villkoret som x==1.

## Användardata

You can include user data when you define conditions. To change your user data, choose LibreOffice - Preferences Tools - Options - LibreOffice - User data. User data must be entered in the form of strings. You can query the user data with "==" (EQ), "!=" (NEQ), or "!"(NOT).

Följande tabell innehåller variabler för användardata och deras innebörd:

Variabel | Betydelse
--- | ---
user_firstname | Förnamn
user_lastname | Efternamn
user_initials | Initialer
user_company | Företag
user_street | Gata
user_country | Land
user_zipcode | Postnummer
user_city | Ort
user_title | Rubrik
user_position | Position
user_tel_work | Telefon - arbetet
user_tel_home | Telefon - privat
user_fax | Faxnummer
user_email | Email address
user_state | Stat (inte i alla LibreOffice-versioner)

Om du t.ex. vill dölja ett stycke, text eller område från en användare med vissa initialer, t.ex. "LM", så anger du följande villkor: user_initials=="LM".

## Villkor och databasfält

Du kan definiera villkor för att komma åt databaser och databasfält. Du kan t.ex. kontrollera innehållet i ett databasfält utifrån ett villkor eller använda databasfält i logiska uttryck. Följande tabell innehåller några ytterligare exempel på hur du kan använda databaser i villkor:

Exempel | Betydelse
--- | ---
databas.tabell.företag Databas.Tabell.Företag NEQ "" Databas.Tabell.Företag != "" | Villkoret är sant om fältet FÖRETAG inte är tomt. (I det första exemplet krävs ingen operator.)
!Databas.Tabell.Företag NOT databas.tabell.företag Databas.Tabell.Företag EQ "" Databas.Tabell.Företag =="" | Returnerar SANT om fältet FÖRETAG är tomt.
Databas.Tabell.Företag !="Sun" Databas.Tabell.Företag NEQ "Sun" | Returnerar SANT om den aktuella poster i fältet FÖRETAG inte är Sun. (Utropstecken representerar ett logiskt ICKE.)
databas.tabell.förnamn AND databas.tabell.namn | Returnerar SANT om posten innehåller det första och sista namnet.

Observera skillnaden mellan det logiska Inte "!" (NOT) och relationsoperatorn Inte lika med "!=" (NEQ).

När du refererar till ett databasfält i ett villkor använder du formen databasnamn.tabellnamn.fältnamn. Om ett av namnen innehåller ett tecken som är en operator, till exempel ett minustecken (-), ska du omgärda namnet med hakparenteser, exempelvis databasnamn.[tabellnamn].fältnamn. Använd aldrig mellanslag inuti fältnamn.

### Exempel: Dölja ett tomt databasfält

Du kan vilja skapa ett villkor som döljer tomma fält, t.ex. om vissa av FÖRETAG-fältets dataposter är tomma.

Välj Dolt stycke från listan och ange följande villkor: Adressbok.Adresser.Företag EQ ""

eller skriv följande

NOT Adressbok.Adresser.Företag

Om databasfältet FÖRETAG är tomt så är villkoret sant och stycket döljs.

To display hidden paragraphs on the screen, choose LibreOffice - Preferences Tools - Options - LibreOffice Writer - View, and clear the Hidden paragraphs check box.

## Exempel på villkor i fältkommandon

I följande exempel används fältet Villkorlig text, även om exemplen gäller alla fält som går att länka till ett villkor. Den syntax som används i villkor används också i fälten Dold text, Dolt stycke, Slumpvis datapost och Nästa datapost.

## Så här visar du villkorlig text baserat på antalet sidor:

1. Välj Infoga - Fältkommando - Andra och klicka sedan på fliken Funktioner.

2. Klicka på "Villkorlig text" i listan Fälttyp.

3. I rutan Villkor skriver du "page == 1".

4. I rutan Så skriver du "Det finns bara en sida".

5. I rutan Annars skriver du "Det finns flera sidor".

6. Klicka på Infoga och sedan på Stäng.

## Så här visar du villkorlig text baserad på en användardefinierad variabel

1. Välj Infoga - Fältkommando - Andra och klicka sedan på fliken Variabler.

2. Klicka på "Sätt variabel" i listan Fälttyp.

3. Skriv "Vinst" i rutan Namn.

4. Skriv "5000" i rutan Värde.

5. Klicka på Infoga.

6. Klicka på fliken Funktioner och sedan på "Villkorlig text" i listan Fälttyp.

7. Skriv "Vinst < 5000" i rutan Villkor.

8. Skriv "Målet är inte uppnått" i rutan Så.

9. Skriv "Målet är uppnått" i rutan Annars.

10. Klicka på Infoga.

Om du vill redigera innehållet i variabeln "Vinst" dubbelklickar du på variabelfältet.

## Så här visar du villkorlig text baserad på innehållet i ett databasfält:

I den första delen av exemplet infogas ett mellanslag mellan fälten "Förnamn" och "Efternamn" i ett dokument, och i den andra delen infogas text baserad på innehållet i ett fält. I exemplet förutsätts att en adressdatakälla är registrerad i LibreOffice.

1. Välj Infoga - Fältkommando - Andra och klicka sedan på fliken Databas.

2. Klicka på "Standardbrevfät" (kopplad utskrift) i listan Fälttyp.

3. Gå till rutan Databasurval, dubbelklicka på en adressbok, klicka på "Förnamn" och sedan på Infoga. Upprepa åtgärden för "Efternamn".

4. Placera markören mellan de två fälten i dokumentet, tryck på mellanslag och återgå sedan till dialogrutan Fält:

5. Klicka på fliken Funktioner och sedan på "Villkorlig text" i listan Fälttyp.

6. I rutan Villkor skriver du: "adressbok.adresser.förnamn".

7. I rutan Så skriver du ett blanksteg och lämnar rutan Annars tom.

Du kan nu använda ett villkor för att infoga text baserad på innehållet i fältet Förnamn.

1. Klicka på fliken Funktioner i dialogrutan Fält.

2. Klicka på "Villkorlig text" i rutan Typ.

3. I rutan Villkor skriver du: adressbok.adresser.förnamn == "Mikael"

4. I rutan Så skriver du "Bäste".

5. Skriv "Hej" i rutan Annars.

6. Klicka på Infoga.