# Användarguide för Glom v0.2

för Glom v1.6

2004 Murray Cumming
Gloms utvecklingsteam

Tillstånd att kopiera, distribuera och/eller modifiera detta dokument ges under villkoren i GNU Free Documentation License (GFDL), version 1.1 eller senare, utgivet av Free Software Foundation utan standardavsnitt och omslagstexter. En kopia av GFDL finns att hämta på denna länk eller i filen COPYING-DOCS som medföljer denna handbok.

Denna handbok utgör en av flera GNOME-handböcker som distribueras under villkoren i GFDL. Om du vill distribuera denna handbok separat från övriga handböcker kan du göra detta genom att lägga till en kopia av licensavtalet i handboken enligt instruktionerna i avsnitt 6 i licensavtalet.

Flera namn på produkter och tjänster är registrerade varumärken. I de fall dessa namn förekommer i GNOME-dokumentation - och medlemmarna i GNOME-dokumentationsprojektet är medvetna om dessa varumärken - är de skrivna med versaler eller med inledande versal.

DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET TILLHANDAHÅLLS UNDER VILLKOREN I GNU FREE DOCUMENTATION LICENSE ENDAST UNDER FÖLJANDE FÖRUTSÄTTNINGAR:

1. DOKUMENTET TILLHANDAHÅLLS I "BEFINTLIGT SKICK" UTAN NÅGRA SOM HELST GARANTIER, VARE SIG UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, INKLUSIVE, MEN INTE BEGRÄNSAT TILL, GARANTIER ATT DOKUMENTET ELLER EN MODIFIERAD VERSION AV DOKUMENTET INTE INNEHÅLLER NÅGRA FELAKTIGHETER, ÄR LÄMPLIGT FÖR ETT VISST ÄNDAMÅL ELLER INTE STRIDER MOT LAG. HELA RISKEN VAD GÄLLER KVALITET, EXAKTHET OCH UTFÖRANDE AV DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET LIGGER HELT OCH HÅLLET PÅ ANVÄNDAREN. OM ETT DOKUMENT ELLER EN MODIFIERAD VERSION AV ETT DOKUMENT SKULLE VISA SIG INNEHÅLLA FELAKTIGHETER I NÅGOT HÄNSEENDE ÄR DET DU (INTE DEN URSPRUNGLIGA SKRIBENTEN, FÖRFATTAREN ELLER NÅGON ANNAN MEDARBETARE) SOM FÅR STÅ FÖR ALLA EVENTUELLA KOSTNADER FÖR SERVICE, REPARATIONER ELLER KORRIGERINGAR. DENNA GARANTIFRISKRIVNING UTGÖR EN VÄSENTLIG DEL AV DETTA LICENSAVTAL. DETTA INNEBÄR ATT ALL ANVÄNDNING AV ETT DOKUMENT ELLER EN MODIFIERAD VERSION AV ETT DOKUMENT BEVILJAS ENDAST UNDER DENNA ANSVARSFRISKRIVNING;

2. UNDER INGA OMSTÄNDIGHETER ELLER INOM RAMEN FÖR NÅGON LAGSTIFTNING, OAVSETT OM DET GÄLLER KRÄNKNING (INKLUSIVE VÅRDSLÖSHET), KONTRAKT ELLER DYLIKT, SKA FÖRFATTAREN, DEN URSPRUNGLIGA SKRIBENTEN ELLER ANNAN MEDARBETARE ELLER ÅTERFÖRSÄLJARE AV DOKUMENTET ELLER AV EN MODIFIERAD VERSION AV DOKUMENTET ELLER NÅGON LEVERANTÖR TILL NÅGON AV NÄMNDA PARTER STÄLLAS ANSVARIG GENTEMOT NÅGON FÖR NÅGRA DIREKTA, INDIREKTA, SÄRSKILDA ELLER OFÖRUTSEDDA SKADOR ELLER FÖLJDSKADOR AV NÅGOT SLAG, INKLUSIVE, MEN INTE BEGRÄNSAT TILL, SKADOR BETRÄFFANDE FÖRLORAD GOODWILL, HINDER I ARBETET, DATORHAVERI ELLER NÅGRA ANDRA TÄNKBARA SKADOR ELLER FÖRLUSTER SOM KAN UPPKOMMA PÅ GRUND AV ELLER RELATERAT TILL ANVÄNDNINGEN AV DOKUMENTET ELLER MODIFIERADE VERSIONER AV DOKUMENTET, ÄVEN OM PART SKA HA BLIVIT INFORMERAD OM MÖJLIGHETEN TILL SÅDANA SKADOR.

Murray Cumming
Glom-utvecklingsgruppen

     murrayc@murrayc.com

Glom 1.6
20 Juni 2004

Murray Cumming

Murray Cumming

Den här handboken beskriver version 1.6 av Glom

Återkoppling

Om du vill rapportera ett fel eller göra ett förslag kring Glom eller denna handbok kan de skickas in till GNOME:s Bugzilla , under produkten Glom. Sök i Bugzilla innan du skickar in din rapport för att säkerställa att den inte redan rapporterats.

Användarhandbok för Glom.

Daniel Nylander po@danielnylander.se
2006 Daniel Nylander
Anders Jonsson anders.jonsson@norsjovallen.se
2017 Anders Jonsson

## Introduktion

Glom låter dig designa och använda databassystem.

## Komma igång

### Starta Glom

Du kan starta Glom på följande sätt:

Program-menyn

  Välj Kontor Glom .

### Då du startar Glom

Då du startar Glom visas följande fönster. DU kan öppna en befintlig Glom-fil eller skapa en ny, möjligen genom att basera en ny Glom-fil på ett av exemplen.

Uppstartsfönster för Glom, öppnande av en befintlig fil

Visar Gloms huvudfönster då det används för att öppna en befintlig Glom-fil.

Uppstartsfönster för Glom, skapande av en ny fil

Visar Gloms huvudfönster då det används för att skapa en ny Glom-fil.

## Använda Glom som en operatör

För att öppna ett befintligt Glom-dokument, öppna antingen dokumentet från filhanteraren, eller välj Glom från programmenyn, och välj sedan dokumentet då du tillfrågas. Glom kommer att fråga dig om ett användarnamn och lösenord för att komma åt databasen. Din administratör kommer tillhandahålla ditt användarnamn och lösenord.

När du öppnar ett befintligt dokument kommer Glom att vara på `användarnivå`n `Operatör`. Denna användarnivå låter dig hitta och redigera poster, men låter dig inte ändra databasens grundläggande struktur.

### Navigering

Varje databas har flera tabeller. För att titta på en annan tabell, välj `Tabeller` från menyn `Navigera`. Dubbelklicka sedan på tabellen, eller välj den och klicka på knappen `Öppna`.

Navigera till en tabell

Navigera till en tabell.

### Visa och mata in data

I `Dataläge` kan du visa eller mata in information i antingen vyn `Lista` eller `Detaljer`.

#### Listvyn

Listvyn visar många poster på en gång och visar vanligen bara de viktigaste fälten.

När du matar in data i ett fält kommer det att sparas i databasen så fort du slutar rediga fältet. Om det är ett datum- eller tidsfält kommer dataformatet att kontrolleras åt dig.

För att skapa en ny post, klicka helt enkelt på knappen `Ny`, eller börja skriva i ett fält i den sista tomma raden. En ny postrad kommer att skapas med tomma fält för dig att fylla i.

Listvyn

Listvyn.

För att sortera posterna, klicka helt enkelt på ett kolumnhuvud. Till exempel skulle du kunna klicka på en datumkolumn för att lista fakturor i datumordning, och klicka igen för att lista dem i omvänd ordning.

#### Detaljvyn

Detaljvyn visar endast en post och visar vanligen alla fält arrangerade på lämpligt sätt.

När du matar in data i ett fält kommer det att sparas i databasen så fort du slutar rediga fältet. Om det är ett datum- eller tidsfält kommer dataformatet att kontrolleras åt dig.

För att skapa en ny post, klicka helt enkelt på knappen `Ny`. En ny post kommer att skapas med tomma fält för dig att fylla i.

Detaljvyn

Detaljvyn.

### Hitta data

Välj `Sökläge` från lägesmenyn. Fälten i list- och detaljvyerna kommer nu vara tomma, och en sökknapp kommer att visas längst ner i fönstret.

Ange information, eller del av informationen, i ett fält för att söka poster med den informationen i fältet. Ange till exempel Jim i ett namnfält för att söka poster med ”Jim” eller ”Jimmy” i namnet.

När du trycker ner knappen `Sök` kommer Glom att söka efter poster och sedan visa dem. Om endast en post hittas kommer det att visa den posten i detaljvyn. Om flera poster hittas kommer det att visa dig de posterna i listvyn.

### Skriva ut rapporter

Om din databasutvecklare har definierat rapporter för en tabell så kommer du att se dem listade i menyn `Rapporter`. Välj helt enkelt rapporten från menyn för att skapa rapporten. Om du tidigare har utfört en sökning kommer rapporten bara att innehålla de data som hittats för tillfället. I annat fall kommer alla data finnas i den aktuella rapporten. Kom ihåg att varje tabell har sina egna rapporter, så du kan behöva byta till den relevanta tabellen för att använda en specifik rapport.

En rapport

En rapport.

## Använda Glom som en utvecklare

När du skapar ett nytt dokument kommer Glom att vara på `användarnivå`n `Utvecklare`. Du kan också byta till användarnivån utvecklare efter att ha öppnat ett befintligt dokument, med menyn `användarnivå`. Glom kommer endast att tillåta detta om administratören har tillåtit det.

### Lägga till tabeller

Du kan se listan över befintliga tabeller genom att välja `Tabeller` från menyn `Navigera`. Du kommer också att se detta fönster efter att ha anslutit till en databasserver och efter att ha skapat ett nytt dokument. För att skapa en ny tabell, klicka på knappen `Lägg till` och ange namnet på den nya tabellen. Glom kommer att föreslå en läsbar titel för denna tabell. `Operatörer` kommer att se denna titel istället för tabellens faktiska namn. Du kan också markera en tabell som `dold` från operatörer. Till exempel bör operatörer se "Fakturarader" som relaterade poster från tabellen "Fakturor", men bör aldrig kunna navigera direkt till tabellen "Fakturarader".

Du kan också ange en tabell som `standardtabell`. Denna tabell kommer att visas när en operatör öppnar ett befintligt dokument, utan någon fråga om att välja en tabell från listan.

Du kan också använda detta fönster för att byta namn på en befintlig tabell.

Klicka på knappen `Öppna` för att titta på den valda tabellen.

### Redigera fält

Välj `Fält` från menyn `Utvecklare`. Detta visar listan över fält i tabellen. Nya tabeller har automatiskt ett primärnyckelfält, men du kan ändra detta fält om nödvändigt.

Klicka på knappen `Lägg till` för att lägga till ett nytt fält, och ange sedan namnet på det nya fältet. Glom kommer att gissa en lämplig titel som är läsbar för människor för detta fält, men du kan redigera detta. `Operatörer` kommer att se denna titel istället för fältets faktiska namn.

För att ange fler detaljer för fältet, välj fältet och klicka på knappen `Detaljer`.

Redigera fält

Redigera tabellens fält.

#### Primärnycklar

Varje tabell måste ha exakt en `primärnyckel`. Värdet i detta fält kommer vara unikt, vilket betyder att varje värde i detta fält endast dyker upp i en post i tabellen. Till exempel skulle varje post i en "Kunder"-tabell ha ett "Kund-ID". Detta värde kommer användas för att hänvisa till den kunden från andra tabeller, så som poster för "Projekt" och "Fakturor". Se avsnittet Skapa relationer för att se hur du kan skapa relationer mellan tabeller.

#### Fälttyper

Glom erbjuder några få enkla fälttyper:

1. Tal

2. Text

3. Datum

4. Tid

5. Boolesk - antingen sant eller falskt

6. Bild

#### Beräknade fält

Fältvärden kan beräknas beroende på andra fält, med programmeringsspråket Python. Denna beräkning ska vara implementationen av en Python-funktion som ska returnera ett värde. Returvärdet kommer användas som fältets värde. Detta värde kommer att beräknas på nytt varje gång ett av källfälten ändras. ATT GÖRA: Detta fungerar för närvarande bara för standardvärden, och du kan inte använda fältvärden i beräkningen ännu.

Du kan också använda beräkningar för att ange ett standardvärde för fält, genom att välja fliken `Standardvärde` i fönstret `Fältdetaljer` och klicka på kryssrutan `Beräkna värde`, och sedan ange en Python-beräkning. Du kan testa denna beräkning i fönstret `Redigera`.

### Arrangera layouter

Varje tabell har vyer för `Lista` och `Detaljer`, och som standard visar dessa alla fält i tabellen i den ordning de skapades. Du kan redigera layouten genom att välja `Layout` från menyn `Utvecklare`.

#### Arrangera listvyn

För vyn `Lista` kan du ange sekvensen av fältkolumner och huruvida några fält är dolda.

Redigera listlayouten

Redigera listlayouten.

#### Arrangera detaljvyn

För vyn `Detaljer` kan du skapa grupper av fält och ge dessa grupper titlar. Du kan sedan placera fält i dessa grupper och ange ordningen för fält i dessa grupper. Du kan också ange ordningen på dessa grupper. Till exempel kanske du skapar en grupp "Namn" i tabellen "Kontakter", och placerar fälten "titel", "förnamn" och "efternamn" i den gruppen. Du kan ha andra grupper för "Adress"-fälten.

Redigera detaljlayouten

Redigera detaljlayouten.

### Skapa relationer

Tabeller i databasen är ofta relaterade med varandra. Till exempel kan en tabell "Fakturor" ha ett fält "Kund-ID". Ett värde i detta fält skulle ange en post i tabellen "Kunder" med samma värde. Glom kan visa extra information, så som kundnamnet, från den relaterade posten. Eller så kan det visa en lista över flera relaterade poster - till exempel flera relaterade "Fakturarader" som är relaterade till en post i "Faktura"-posten.

För att skapa relationer, välj `Relationer` från menyn `Utvecklare`. Detta kommer att visa listan över befintliga relationer. Klicka på knappen `Lägg till` för att skapa en ny relation och ange ett namn för den. Du väljer sedan ett fält i den aktuella tabellen och ett fält i en annan tabell som det ska vara relaterat till. Denna relation kommer att hitta alla poster i den andra tabellen för vilka värdena i båda fälten är lika.

Du kan använda relationen på följande platser.

1. För att visa ett relaterat fält i list- eller detaljvyn.

2. För att visa en lista över relaterade fält i detaljvyn.

3. För att slå upp ett värde från ett fält i en relaterad post. Till exempel för att kopiera aktuellt pris för en "Produkt" till fältet "Pris" för en "Fakturarad"-post.

4. För att beräkna ett fälts värde.

### Användaradministration

För att definiera `Operatörer` som kan använda din databas, och för att ange vilken åtkomst de har till de olika tabellerna, välj `Användare` från menyn `Utvecklare`.

### Översättningar

Gloms användargränssnitt (och detta dokument) har översatts till flera språk, som du redan bör se om du använder din dator med ett annat användargränssnitt än engelska. Dessutom visar och förstår Glom automatiskt siffror och datum enligt den aktuella användarens lokalkonventioner. Till exempel kan en användare i USA ange ett pris som 1.99 och ett datum som 1/13/2008, men en tysk användare av samma databas kommer senare att se det som 1,99 och 13.1.2008.

Glom-systemet som du skapar innehåller dock också text som måste översättas om det ska användas av personer som talar olika språk. Till exempel måste du tillhandahålla översättningar för titlarna för dina tabeller, fält och rapporter. Alla dessa textobjekt kan ses i en lista när du väljer `Översättningar` från menyn `Utvecklare`. I detta fönster kan du ange språket som du använde för originaltexten, och mata in översättningar för varje textobjekt för ytterligare språk. När Glom-systemet öppnas av en användare av det språket kommer dessa textobjekt att visas i användargränssnittet.

Översättningar

Översättningar.

Erfarna översättare kan vara mer vana med .po-filformatet, eller så kanske du vill använda de många verktyg som fungerar med .po-filformatet- Genom att använda knappen `Exportera` kan du skapa en .po-fil att använda i ett separat verktyg eller att skicka till en översättare. Du kan sedan importera den resulterande översättningen genom att använda knappen `Importera`.

### Definiera rapporter

#### Lägga till eller redigera rapporter

Glom kan producera rapporter för att visa specifika fält för uppsättningar av poster, sorterade och grupperade. Till exempel kan en affär behöva en rapport som listar alla produkter som sålts under en månad, grupperade efter produkttyp, och sorterade efter pris inom varje grupp. Varje tabell har sina egna rapporter, vilka är tillgängliga för operatören från menyn `Rapporter`.

För att definiera en rapport, eller för att ändra definitionen på en befintlig rapport, välj `Rapporter` från menyn `Utvecklare`.

Skapa eller redigera rapporter

Skapa eller redigera rapporter.

Observera att varje rapport har ett ID förutom ett namn läsbart för människor. Detta låter din rapport ha en översatt titel då den används på en dator som använder ett annat språk.

#### Redigera en rapport

En Glom-rapport har tre områden:

1. Sidhuvudet, vilket visas i början på rapporten

2. Huvudområdet, i vilket posterna och sammanfattningsraderna visas, med faktiska data från databasen.

3. Sidfoten, vilken visas i slutet på rapporten.

Inuti ett område, så som huvuddelen, kan du lägga till `Delar` till rapporten, så som fält, text eller bilder. Dessa kommer vanligen visas i en rad på den utskrivna rapporten, med en rad för varje post. I enkla fall kommer detta vara väldigt likt Gloms listvy. Du kan lägga till delar till din rapport genom att välja dem från listan `Tillgängliga delar` och sedan klicka på knappen `Lägg till`. Delen kommer sedan läggas till i listan `Delar` i det valda området.

För att ange detaljer för delarna, så som texten eller bilden som ska visas, eller för att välja fältet som ska visas, välj delen i listan `Delar` och klicka på knappen `Redigera`. Du kan också ange fältets formatering genom att klicka på knappen `Formatering`, precis som du gör då du definierar en detalj- eller listlayout.

Redigera en rapport

Redigera en rapport.

Vissa delar kan innehålla andra delar och ha extra egenskaper för att styra hur de presenterar sina underordnade delar. Till exempel grupperar delen `Gruppera efter` poster tillsammans enligt ett fält. Till exempel kan en produktrapport gruppera en lista över produkter efter produkttyp. Du kan till och med lägga till en andra undergruppering inuti den huvudsakliga `Gruppera efter`-delen genom att välja din `Gruppera efter`-del på toppnivån i listan `Delar` medan du lägger till en ny `Gruppera efter`-del från listan `Tillgängliga delar`. Till exempel kan du gruppera dina produkter efter tillverkare inuti varje produkttypsgrupp.

För att ange fältet efter vilket posterna ska grupperas väljer du din `Gruppera efter`-del i listan `Delar` och klickar på knappen `Redigera`. Du kan sedan välja fältet som posterna ska grupperas efter, och välja fälten efter vilka dessa poster ska sorteras inom gruppen. Du kan också ange ytterligare fält som ska visas i gruppens titelrad. Till exempel kan du vilja gruppera produkter efter ett tillverkar-ID, men också visa tillverkarens namn.

Redigera en grupp efter del

Redigera en rapport.

Delen `Vertikal grupp` kan innehålla andra objekt. Till exempel låter den dig arrangera fält under varandra i stället för ett efter ett i den horisontella raden. Detta är användbart för att gruppera relaterade fält som adressrader, eller för att helt enkelt klämma in mer information i postens rad i rapporten.

En rapport med vertikala grupper

En rapport med vertikala grupper.

Då du är klar, klicka på knappen `Stäng` för att spara rapportens definition. Din rapport kan sedan väljas från menyn `Rapporter`. Se avsnittet Skriva ut rapporter för mer detaljer.

## Dialogrutor

### Dialogruta: Ursprunglig dialogruta

Denna dialogruta låter användaren välja ett befintligt dokument eller skapa ett nytt dokument. Befintliga dokument kan väljas från listan över senast öppnade dokument eller genom att välja en fil med filväljardialogen. Dokument kan också öppnas via nätverket om andra användare kör Glom på det lokala nätverket. Slutligen kan ett nytt dokument skapas antingen genom att öppna en mallfil som redan innehåller några ursprungliga tabeller och poster, eller genom att skapa ett nytt dokument.

### Dialogruta: Ny databas

### Dialogruta: Skapa databas

### Dialogruta: Anslutning

Denna dialogruta efterfrågar ett användarnamn och lösenord för anslutning till en databasserver. Detta är vanligen inte samma användarnamn och lösenordskombination som du använder för att logga in till ditt system. Alla Glom-system kräver en databasserver som faktiska data lagras på. Om databasservern inte körs lokalt på din dator (”localhost”) så måste du också använda dess värdnamn på nätverket, så som ”glomserver.openismus.com”, men ditt värdnamn kommer vara något annat än detta.

Din systemadministratör kan tillhandahålla dessa databasinloggningsdetaljer.

Om du är systemadministratören, se Gloms webbsida för Postgres-konfiguration för hjälp med installation och konfiguration av databasservrar.

### Dialogruta: Anslutningsfel

Denna dialogruta visas då Glom inte kunde ansluta till den angivna databasservern. Antingen så körs inte databasservern på det angivna värdnamnet, eller så accepterades inte användarnamnet och lösenordet av databasservern. Se avsnittet för dialogrutan Anslutning för mer detaljer.

### Dialogruta: Databasinställningar

### Dialogruta: Ändra språk

### Fönster: Textobjekt

### Fönster: Bildobjekt

### Dialogruta: Flikhäfte

### Dialogruta: Ogiltigt format för data

### Dialogruta: Relationsöversikt

### Fönster: Grupper

### Dialogruta: Gruppera efter sorteringsfält

### Dialogruta: Gruppera efter sekundära fält

### Fönster: Knappskript

### Fönster: Fältberäkning

### Dialogruta: Ny grupp

### Dialogruta: Välj användare

### Dialogruta: Användare

### Dialogruta: Identifiera ursprunglig översättning

### Dialogruta: Översättningskopia

### Dialogruta: Välj datum

### Dialogruta: Importera till tabell

Denna dialogruta låter användaren importera en CSV-fil (med kommaseparerade värden) till den aktuella databastabellen. Den visar de första raderna i filen som ska importeras och låter användaren välja målfältet i databasen för varje kolumn i CSV-filen. För automatiskt ökade primärnycklar kan primärnyckelfältet inte användas som ett målfält, men i annat fall måste en kolumn importeras till primärnyckelfältet.

## Om Glom

Glom underhålls av frivilliga från Glom- och GNOME-gemenskapen. För att få mer information om Glom, besök Gloms webbplats.

För att rapportera ett fel eller komma med ett förslag kring detta program eller denna handbok kan du skicka in dem med bugzilla.

En annan utmärkt informationskälla är Gloms sändlistor.

Det här programmet distribueras under villkoren för GNU General Public License som publicerats av Free Software Foundation; antingen version 2 av licensen, eller (om du så vill) någon senare version. En kopia av den här licensen kan hittas på den här länken, eller i filen COPYING som inkluderats i källkoden för det här programmet.

## Koncept

Glom är lättanvänt, men du måste förstå följande grundläggande koncept.

1. `Databas`: Varje Glom-dokument tillåter åtkomst till en databas.

2. `Tabell`: Varje databas innehåller flera tabeller, så som tabeller för "Kunder" and "Fakturor".

3. `Fält`: Varje tabell har flera fält, så som fält för "Kund-ID", "Förnamn" och "Födelsedatum". I andra dokument och program kallas fält ibland för "Kolumner"

4. `Poster`: Varje tabell innehåller flera poster, vilka var och en har värden för vart och ett av fälten. Till exempel kommer tabellen "Kunder" att ha en post för varje kund. I andra dokument och program kallas poster ibland för `Rader`.

5. `Relationer`: Varje tabell kan vara relaterad till andra tabeller via fält som finns i båda tabellerna. Till exempel kan tabellen "Kunder" ha en relation till tabellen "Fakturor", så att folk kan se alla fakturor för den kunden. Endast utvecklare behöver förstå detta koncept. I andra dokument och program kallas en relation ibland "Join".

## Beräknade fält och knappskript

Beräknade fält och knappskript använder programmeringsspråket Python. Beräkningen eller skriptet är implementationen av en funktion vars signatur tillhandahålls åt dig.

Redigera definitionen för ett beräknat fält

Redigera definitionen för ett beräknat fält.

### Fältvärden

Till exempel är

    record["name_first"]

värdet på fältet name_first i den aktuella posten.

### Relaterade poster

Till exempel tillhandahåller

    record.related["location"]

de relaterade posterna för aktuell post.

#### Enkla relaterade poster

För relationer som anger en ensam post kan du få värdet på ett fält i den posten. Till exempel är

    record.related["location"]["name"]

värdet på namnfältet i tabellen som indikeras av platsrelationen (ofta kallad location::name).

#### Flera relaterade poster

För relationer som anger flera poster kan du använda aggregatfunktionerna (sum, count, average) för att få generella värden. Till exempel,

    record.related["invoice_lines"].sum("total_price")

.

### Testa för tomma värden

Hur du testar efter tomma värden beror på fältets typ:

#### Icke-textfält

Icke-textfält kan vara tomma, vilket indikerar att användaren inte har matat in något värde i fältet. Till exempel antar inte Glom att ett tomt värde i ett numeriskt fält betyder 0.

Du kan testa om ett fält är tomt genom att använda Pythons None. Till exempel:

      if(record["contact_id"] == None):
        return "Ingen kontakt"
      else:
        return record.related["contacts"]["name_full"]

Du kan också testa huruvida det finns relaterade poster. Till exempel:

      if(record.related["contacts"] == None):
        return "Ingen kontakt"
      else:
        return record.related["contacts"]["name_full"]

#### Textfält

För textfält ser du om strängar har längden noll. Det är inte möjligt i Glom att skilja mellan strängar av längden noll och avsaknad av en sträng, detta för att det inte finns någon fördel i att göra så. Till exempel:

      if(record["name_full"] == ""):
        return "Inget namn"
      else:
        return record["name_full"]

### Använda det fullständiga pygda-API:t

pygda är ett python-API för libgda-API:t. Postens attribut `connection` tillhandahåller en gda.connection som kan användas för att komma åt den aktuella databasen direkt. Detta låter dig köra valfri SQL-fråga, till exempel för att läsa data från databasen med SELECT, eller för att ändra värden i databasen med UPDATE. Observera att anslutningen redan är öppen, så du kan undvika det svåra jobbet med att ange anslutningsdetaljerna.

Attributet `table_name` för posten tillhandahåller också namnet på den aktuella tabellen.

Detta exempel läser alla data från den aktuella tabellen och skriver ut värdena till terminalen:

    # Använd den aktuella databasens anslutning
    # för att få alla data för aktuell tabell.
    #
    # record.connection är ett öppet gda.connection-objekt,
    # vilket besparar oss besväret med att öppna anslutningen,
    # eller ens att veta databasens namn.

    query = "SELECT * FROM %s" % record.table_name
    data_model = gda.gda_execute_select_command(record.connection, query)

    rows = data_model.get_n_rows()
    columns = data_model.get_n_columns()
    print "    Antal kolumner: ", columns

    for i in range(columns):
        print "      kolumn ", i;
        print "        namn=", data_model.get_column_title(i)

        # Ta reda på om det är primärnyckeln:
        field = data_model.describe_column(i)
        if field.get_primary_key():
            print "        (primärnyckel)"

        print "\n";

    print "    Antal rader: ", rows

    for row_index in range(rows):
        print "      rad ", row_index;

        for col_index in range(columns):
            print "        värde=", data_model.get_value_at(col_index, row_index).get()

        print "\n";

MY-GNOME-APP
mygnomeapp