<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
<!ENTITY appversion "1.6">
<!ENTITY manrevision "0.2">
<!ENTITY date "20 June 2004">
<!ENTITY app "Glom">
<!-- Information about the entities
       The legal.xml file contains legal information, there is no need to edit the file. 
       Use the appversion entity to specify the version of the application.
       Use the manrevision entity to specify the revision number of this manual.
       Use the date entity to specify the release date of this manual.
       Use the app entity to specify the name of the application. -->]>
<!-- 
      (Do not remove this comment block.)
  Maintained by the GNOME Documentation Project
  http://developer.gnome.org/projects/gdp
  Template version: 2.0 beta
  Template last modified Apr 11, 2002
-->
<!-- =============Document Header ============================= -->
<article id="index" lang="sv">
<!-- please do not change the id; for translations, change lang to -->
<!-- appropriate code -->
  <articleinfo> 
    <title>Användarguide för Glom v0.2</title>       
    <subtitle>för Glom v1.6</subtitle>

    <copyright><year>2004</year> <holder>Murray Cumming</holder></copyright> 
<!-- translators: uncomment this:

  <copyright>
   <year>2002</year>
   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
  </copyright>

   -->
<!-- An address can be added to the publisher information.  If a role is 
     not specified, the publisher/author is the same for all versions of the 
     document.  -->
    <publisher> 
      <publishername>Gloms utvecklingsteam</publishername> 
    </publisher> 

   
   <!-- This file  contains link to license for the documentation (GNU FDL), and 
        other legal stuff such as "NO WARRANTY" statement. Please do not change 
	any of this. -->

    <authorgroup> 
      <author role="maintainer"><firstname>Murray</firstname> <surname>Cumming</surname> <affiliation> <orgname>Glom-utvecklingsgruppen</orgname> <address> <email>murrayc@murrayc.com</email> </address> </affiliation></author> 
      
<!-- This is appropriate place for other contributors: translators,
     maintainers,  etc. Commented out by default.
     
      <othercredit role="translator">
		<firstname>Latin</firstname> 
		<surname>Translator 1</surname> 
		<affiliation> 
	  		<orgname>Latin Translation Team</orgname> 
	  		<address> <email>translator@gnome.org</email> </address> 
		</affiliation>
		<contrib>Latin translation</contrib>
      </othercredit>
-->
    </authorgroup>


<!-- According to GNU FDL, revision history is mandatory if you are -->
<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
<!-- Remember to remove the &manrevision; entity from the revision entries other
-->
<!-- than the current revision. -->
<!-- The revision numbering system for GNOME manuals is as follows: -->
<!-- * the revision number consists of two components -->
<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
<!-- to V3.0, and so on. -->  
    <revhistory>
      <revision><revnumber>Glom 1.6</revnumber> <date>20 Juni 2004</date> <revdescription> 
			 <para role="author">Murray Cumming</para> 
			 <para role="publisher">Murray Cumming</para> 
		  </revdescription></revision>
    </revhistory> 

    <releaseinfo>Den här handboken beskriver version 1.6 av Glom</releaseinfo> 
    <legalnotice> 
      <title>Återkoppling</title> 
      <para>Om du vill rapportera ett fel eller göra ett förslag kring Glom eller denna handbok kan de skickas in till <ulink url="http://bugzilla.gnome.org" type="http">GNOME:s Bugzilla </ulink>, under produkten Glom. Sök i Bugzilla innan du skickar in din rapport för att säkerställa att den inte redan rapporterats.</para>
<!-- Translators may also add here feedback address for translations -->
    </legalnotice> 

    <abstract role="description">
      <para>Användarhandbok för Glom.</para>
    </abstract>
  
    <othercredit class="translator">
      <personname>
        <firstname>Daniel Nylander</firstname>
      </personname>
      <email>po@danielnylander.se</email>
    </othercredit>
    <copyright>
      
        <year>2006</year>
      
      <holder>Daniel Nylander</holder>
    </copyright>
  
    <othercredit class="translator">
      <personname>
        <firstname>Anders Jonsson</firstname>
      </personname>
      <email>anders.jonsson@norsjovallen.se</email>
    </othercredit>
    <copyright>
      
        <year>2017</year>
      
      <holder>Anders Jonsson</holder>
    </copyright>
  </articleinfo> 

  <indexterm zone="index"><primary>MY-GNOME-APP</primary></indexterm> 
  <indexterm zone="index"><primary>mygnomeapp</primary></indexterm>

<!-- ============= Document Body ============================= -->
<!-- ============= Introduction ============================== -->
<!-- Use the Introduction section to give a brief overview of what
     the application is and what it does. -->
  <sect1 id="mrp-introduction"> 
    <title>Introduktion</title> 
    <para>Glom låter dig designa och använda databassystem.</para>
    <!-- TODO: Take text from the website. -->
  </sect1>

<!-- =========== Getting Started ============================== -->
<!-- Use the Getting Started section to describe the steps required
     to start the application and to describe the user interface components
     of the application. If there is other information that it is important
     for readers to know before they start using the application, you should
     also include this information here. 
     If the information about how to get started is very short, you can 
     include it in the Introduction and omit this section. -->

  <sect1 id="glom-getting-started"> 
    <title>Komma igång</title> 

    <sect2 id="glom-start">
    <title>Starta Glom</title>
    <para>Du kan starta <application>Glom</application> på följande sätt:</para> 
    <variablelist>
    	<varlistentry>
    		<term><guimenu>Program</guimenu>-menyn</term>
    		<listitem>
    		<para>Välj <menuchoice> <guisubmenu>Kontor</guisubmenu> <guimenuitem>Glom</guimenuitem> </menuchoice>.</para>
    		</listitem>
    	</varlistentry>
    </variablelist>
    </sect2>

    <sect2 id="glom-when-start">
    <title>Då du startar Glom</title>
    <para>Då du startar <application>Glom</application> 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.</para>

    <!-- ==== Figure ==== -->
      <figure id="openproject"> 
	<title>Uppstartsfönster för Glom, öppnande av en befintlig fil</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/start_open.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar Gloms huvudfönster då det används för att öppna en befintlig Glom-fil.</phrase> </textobject></mediaobject> 
	</screenshot> 
      </figure>
      
        <figure id="newproject"> 
	<title>Uppstartsfönster för Glom, skapande av en ny fil</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/start_create.png" format="PNG"/> </imageobject> <textobject> <phrase>Visar Gloms huvudfönster då det används för att skapa en ny Glom-fil.</phrase> </textobject></mediaobject> 
	</screenshot> 
      </figure>
    <!-- ==== End of Figure ==== -->
  </sect2>
  </sect1>
<!-- ================ Usage ================================ -->
<!-- Use this section to describe how to use the application to perform the tasks for 
  which the application is designed. -->


    <sect1 id="glom-operator-usage">
    <title>Använda Glom som en operatör</title>
    <para>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.</para>

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

    <sect2 id="navigation">
    <title>Navigering</title>
    <para>Varje databas har flera tabeller. För att titta på en annan tabell, välj <literal>Tabeller</literal> från menyn <literal>Navigera</literal>. Dubbelklicka sedan på tabellen, eller välj den och klicka på knappen <literal>Öppna</literal>.</para>

    <figure id="operator-navigation-tables"> 
	<title>Navigera till en tabell</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_tables.png" format="PNG"/> </imageobject> <textobject> <phrase>Navigera till en tabell.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

    </sect2>

    <sect2 id="viewing-and-entering-data">
    <title>Visa och mata in data</title>
    <para>I <literal>Dataläge</literal> kan du visa eller mata in information i antingen vyn <literal>Lista</literal> eller <literal>Detaljer</literal>.</para>

      <sect3 id="the-list-view">
      <title>Listvyn</title>
      <para>Listvyn visar många poster på en gång och visar vanligen bara de viktigaste fälten.</para>
      <para>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.</para> 
      <para>För att skapa en ny post, klicka helt enkelt på knappen <literal>Ny</literal>, 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.</para>

      <figure id="operator-data-list"> 
	<title>Listvyn</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_data_list.png" format="PNG"/> </imageobject> <textobject> <phrase>Listvyn.</phrase> </textobject></mediaobject> 
	</screenshot> 
      </figure>

      <para>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.</para>
      </sect3>

      <sect3 id="the-details-view">
      <title>Detaljvyn</title>
      <para>Detaljvyn visar endast en post och visar vanligen alla fält arrangerade på lämpligt sätt.</para>
      <para>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.</para>
      <para>För att skapa en ny post, klicka helt enkelt på knappen <literal>Ny</literal>. En ny post kommer att skapas med tomma fält för dig att fylla i.</para>

  <figure id="operator-data-details"> 
	<title>Detaljvyn</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_data_details.png" format="PNG"/> </imageobject> <textobject> <phrase>Detaljvyn.</phrase> </textobject></mediaobject> 
	</screenshot> 
      </figure>

      </sect3>

    </sect2>

    <sect2 id="finding-data">
    <title>Hitta data</title>
    <para>Välj <literal>Sökläge</literal> 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.</para>
    <para>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.</para> 
    <para>När du trycker ner knappen <literal>Sök</literal> 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.</para>
    <!-- TODO: screenshot -->
    </sect2>

    <sect2 id="glom-operator-printing-reports">
    <title>Skriva ut rapporter</title>
    <para>Om din databasutvecklare har definierat rapporter för en tabell så kommer du att se dem listade i menyn <literal>Rapporter</literal>. 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.</para>

     <figure id="operator-report-result"> 
	<title>En rapport</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_report_result.png" format="PNG"/> </imageobject> <textobject> <phrase>En rapport.</phrase> </textobject></mediaobject> 
	</screenshot> 
      </figure>

    </sect2>


    </sect1>

    <sect1 id="glom-developer-usage">
    <title>Använda Glom som en utvecklare</title>
    <para>När du skapar ett nytt dokument kommer Glom att vara på <literal>användarnivå</literal>n <literal>Utvecklare</literal>. Du kan också byta till användarnivån utvecklare efter att ha öppnat ett befintligt dokument, med menyn <literal>användarnivå</literal>. Glom kommer endast att tillåta detta om administratören har tillåtit det.</para>

    <sect2 id="adding-tables">
    <title>Lägga till tabeller</title>
    <para>Du kan se listan över befintliga tabeller genom att välja <literal>Tabeller</literal> från menyn <literal>Navigera</literal>. 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 <literal>Lägg till</literal> och ange namnet på den nya tabellen. Glom kommer att föreslå en läsbar titel för denna tabell. <literal>Operatörer</literal> kommer att se denna titel istället för tabellens faktiska namn. Du kan också markera en tabell som <literal>dold</literal> 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".</para>
    <!-- TODO: screenshot -->
    <para>Du kan också ange en tabell som <literal>standardtabell</literal>. 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.</para>
    <para>Du kan också använda detta fönster för att byta namn på en befintlig tabell.</para>
    <para>Klicka på knappen <literal>Öppna</literal> för att titta på den valda tabellen.</para>
    </sect2>

    <sect2 id="editing-fields">
    <title>Redigera fält</title>
    <para>Välj <literal>Fält</literal> från menyn <literal>Utvecklare</literal>. 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.</para>
    <para>Klicka på knappen <literal>Lägg till</literal> 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. <literal>Operatörer</literal> kommer att se denna titel istället för fältets faktiska namn.</para> 
    <para>För att ange fler detaljer för fältet, välj fältet och klicka på knappen <literal>Detaljer</literal>.</para>

    <figure id="developer-editing-fields"> 
	<title>Redigera fält</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_fields.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera tabellens fält.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>


    <sect3 id="primary-keys">
    <title>Primärnycklar</title>
    <para>Varje tabell måste ha exakt en <literal>primärnyckel</literal>. 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 <link linkend="sec-developer-relationships">Skapa relationer</link> för att se hur du kan skapa relationer mellan tabeller.</para>
    </sect3> 

    <sect3 id="field-types">
    <title>Fälttyper</title>
    <para>Glom erbjuder några få enkla fälttyper: <orderedlist>
<listitem><simpara>Tal</simpara></listitem>
<listitem><simpara>Text</simpara></listitem>
<listitem><simpara>Datum</simpara></listitem>
<listitem><simpara>Tid</simpara></listitem>
<listitem><simpara>Boolesk - antingen sant eller falskt</simpara></listitem>
<listitem><simpara>Bild</simpara></listitem>
</orderedlist></para>
    </sect3>
  
    <sect3 id="calculated-fields">
    <title>Beräknade fält</title>
    <para>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.</para>
    <para>Du kan också använda beräkningar för att ange ett standardvärde för fält, genom att välja fliken <literal>Standardvärde</literal> i fönstret <literal>Fältdetaljer</literal> och klicka på kryssrutan <literal>Beräkna värde</literal>, och sedan ange en Python-beräkning. Du kan testa denna beräkning i fönstret <literal>Redigera</literal>.</para>  
    </sect3>

    </sect2>

    <sect2 id="arranging-layouts">
    <title>Arrangera layouter</title>
    <para>Varje tabell har vyer för <literal>Lista</literal> och <literal>Detaljer</literal>, och som standard visar dessa alla fält i tabellen i den ordning de skapades. Du kan redigera layouten genom att välja <literal>Layout</literal> från menyn <literal>Utvecklare</literal>.</para>

    <sect3 id="arranging-the-list-view">
    <title>Arrangera listvyn</title>
    <para>För vyn <literal>Lista</literal> kan du ange sekvensen av fältkolumner och huruvida några fält är dolda.</para>

    <figure id="developer-layout-list"> 
	<title>Redigera listlayouten</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_layout_list.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera listlayouten.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>
    </sect3>

    <sect3 id="arranging-the-details-view">
    <title>Arrangera detaljvyn</title>
    <para>För vyn <literal>Detaljer</literal> 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.</para>

    <figure id="developer-layout-details"> 
	<title>Redigera detaljlayouten</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_layout_details.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera detaljlayouten.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>
    </sect3>

    </sect2>

    <sect2 id="sec-developer-relationships">
    <title>Skapa relationer</title>
    <para>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.</para>
    <para>För att skapa relationer, välj <literal>Relationer</literal> från menyn <literal>Utvecklare</literal>. Detta kommer att visa listan över befintliga relationer. Klicka på knappen <literal>Lägg till</literal> 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.</para>
    <!-- TODO: screenshot -->
   <para>Du kan använda relationen på följande platser. <orderedlist>
<listitem><simpara>För att visa ett relaterat fält i list- eller detaljvyn.</simpara></listitem>
<listitem><simpara>För att visa en lista över relaterade fält i detaljvyn.</simpara></listitem>
<listitem><simpara>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.</simpara></listitem>
<listitem><simpara>För att beräkna ett fälts värde.</simpara></listitem>
</orderedlist></para>
   </sect2> 

   <sect2 id="users-administration">
   <title>Användaradministration</title>
   <para>För att definiera <literal>Operatörer</literal> som kan använda din databas, och för att ange vilken åtkomst de har till de olika tabellerna, välj <literal>Användare</literal> från menyn <literal>Utvecklare</literal>.</para>
    <!-- TODO: screenshot -->
   </sect2>

   <sect2 id="translations">
   <title>Översättningar</title>
   <para>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.</para>
   <para>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 <literal>Översättningar</literal> från menyn <literal>Utvecklare</literal>. 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.</para>

   <!-- TODO: Update this screenshot -->
   <figure id="developer-translations"> 
	<title>Översättningar</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_translations.png" format="PNG"/> </imageobject> <textobject> <phrase>Översättningar.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

    <para>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 <literal>Exportera</literal> 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 <literal>Importera</literal>.</para>  

   </sect2>

   <sect2 id="defining-reports">
   <title>Definiera rapporter</title>

   <sect3 id="adding-or-editing-reports">
   <title>Lägga till eller redigera rapporter</title>

   <para>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 <literal>Rapporter</literal>.</para>
   <para>För att definiera en rapport, eller för att ändra definitionen på en befintlig rapport, välj <literal>Rapporter</literal> från menyn <literal>Utvecklare</literal>.</para>
   <figure id="developer-editing-reports"> 
	<title>Skapa eller redigera rapporter</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_reports.png" format="PNG"/> </imageobject> <textobject> <phrase>Skapa eller redigera rapporter.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

    <para>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.</para>

    </sect3>

    <sect3 id="editing-a-report">
    <title>Redigera en rapport</title>

    <para>En Glom-rapport har tre områden: <orderedlist>
      <listitem><simpara>Sidhuvudet, vilket visas i början på rapporten</simpara></listitem>
      <listitem><simpara>Huvudområdet, i vilket posterna och sammanfattningsraderna visas, med faktiska data från databasen.</simpara></listitem>
      <listitem><simpara>Sidfoten, vilken visas i slutet på rapporten.</simpara></listitem>
    </orderedlist></para>

    <para>Inuti ett område, så som huvuddelen, kan du lägga till <literal>Delar</literal> 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 <literal>Tillgängliga delar</literal> och sedan klicka på knappen <literal>Lägg till</literal>. Delen kommer sedan läggas till i listan <literal>Delar</literal> i det valda området.</para>
    <para>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 <literal>Delar</literal> och klicka på knappen <literal>Redigera</literal>. Du kan också ange fältets formatering genom att klicka på knappen <literal>Formatering</literal>, precis som du gör då du definierar en detalj- eller listlayout.</para>

    <figure id="developer-editing-reports-details"> 
	<title>Redigera en rapport</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_reports_details.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera en rapport.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

    <para>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 <literal>Gruppera efter</literal> 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 <literal>Gruppera efter</literal>-delen genom att välja din <literal>Gruppera efter</literal>-del på toppnivån i listan <literal>Delar</literal> medan du lägger till en ny <literal>Gruppera efter</literal>-del från listan <literal>Tillgängliga delar</literal>. Till exempel kan du gruppera dina produkter efter tillverkare inuti varje produkttypsgrupp.</para>
    <para>För att ange fältet efter vilket posterna ska grupperas väljer du din <literal>Gruppera efter</literal>-del i listan <literal>Delar</literal> och klickar på knappen <literal>Redigera</literal>. 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.</para>

    <figure id="developer-editing-reports-group_by"> 
	<title>Redigera en grupp efter del</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_reports_group_by.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera en rapport.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

   <para>Delen <literal>Vertikal grupp</literal> 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.</para>
   
   <figure id="developer-editing-reports-vertical_group"> 
	<title>En rapport med vertikala grupper</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_reports_vertical_group.png" format="PNG"/> </imageobject> <textobject> <phrase>En rapport med vertikala grupper.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure> 

   <para>Då du är klar, klicka på knappen <literal>Stäng</literal> för att spara rapportens definition. Din rapport kan sedan väljas från menyn <literal>Rapporter</literal>. Se avsnittet <link linkend="glom-operator-printing-reports">Skriva ut rapporter</link> för mer detaljer.</para>



   </sect3>

   </sect2>
  
  </sect1>

<!-- =============Dialogs ================================= -->
<!-- This section contains the help to all dialogs that contain help button -->

<sect1 id="dialogs">
<title>Dialogrutor</title>

<sect2 id="dialog_existing_or_new">
<title>Dialogruta: Ursprunglig dialogruta</title>
<para>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.</para>
</sect2>

<sect2 id="dialog_new_database">
<title>Dialogruta: Ny databas</title>
<para/>
</sect2>

<sect2 id="dialog_error_create_database">
<title>Dialogruta: Skapa databas</title>
<para/>
</sect2>

<sect2 id="dialog_connection">
<title>Dialogruta: Anslutning</title>
<para>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.</para>
<para>Din systemadministratör kan tillhandahålla dessa databasinloggningsdetaljer.</para>
<para>Om du är systemadministratören, se Gloms webbsida för <ulink url="http://www.glom.org/wiki/index.php?title=Initial_Postgres_Configuration" type="http">Postgres-konfiguration</ulink> för hjälp med installation och konfiguration av databasservrar.</para>
</sect2>

<sect2 id="dialog_error_connection">
<title>Dialogruta: Anslutningsfel</title>
<para>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 <link linkend="dialog_connection">Anslutning</link> för mer detaljer.</para>

<para/>
</sect2>

<sect2 id="dialog_database_preferences">
<title>Dialogruta: Databasinställningar</title>
<para/>
</sect2>

<sect2 id="dialog_change_language">
<title>Dialogruta: Ändra språk</title>
<para/>
</sect2>

<sect2 id="window_textobject">
<title>Fönster: Textobjekt</title>
<para/>
</sect2>

<sect2 id="window_imageobject">
<title>Fönster: Bildobjekt</title>
<para/>
</sect2>

<sect2 id="dialog_notebook">
<title>Dialogruta: Flikhäfte</title>
<para/>
</sect2>

<sect2 id="dialog_data_invalid_format">
<title>Dialogruta: Ogiltigt format för data</title>
<para/>
</sect2>

<sect2 id="dialog_relationship_overview">
<title>Dialogruta: Relationsöversikt</title>
<para/>
</sect2>

<sect2 id="window_groups">
<title>Fönster: Grupper</title>
<para/>
</sect2>

<sect2 id="dialog_groupby_sort_fields">
<title>Dialogruta: Gruppera efter sorteringsfält</title>
<para/>
</sect2>

<sect2 id="dialog_groupby_secondary_fields">
<title>Dialogruta: Gruppera efter sekundära fält</title>
<para/>
</sect2>

<sect2 id="window_button_script">
<title>Fönster: Knappskript</title>
<para/>
</sect2>

<sect2 id="window_field_calculation">
<title>Fönster: Fältberäkning</title>
<para/>
</sect2>

<sect2 id="dialog_new_group">
<title>Dialogruta: Ny grupp</title>
<para/>
</sect2>

<sect2 id="dialog_choose_user">
<title>Dialogruta: Välj användare</title>
<para/>
</sect2>

<sect2 id="dialog_user">
<title>Dialogruta: Användare</title>
<para/>
</sect2>

<sect2 id="dialog_translation_identify_original">
<title>Dialogruta: Identifiera ursprunglig översättning</title>
<para/>
</sect2>

<sect2 id="dialog_translation_copy">
<title>Dialogruta: Översättningskopia</title>
<para/>
</sect2>

<sect2 id="dialog_choose_date">
<title>Dialogruta: Välj datum</title>
<para/>
</sect2>

<sect2 id="dialog_import_csv">
<title>Dialogruta: Importera till tabell</title>
<para>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.</para>
</sect2>

</sect1>

<!-- ============= Bugs ================================== -->
<!-- This section is optional and is commented out by default. 
     You can use it to describe known bugs and limitations of the 
	  program if there are any - please be frank and list all
     problems you know of. 
  
  <sect1 id="mayapp-bugs">
  <title>Known Bugs and Limitations</title>
  <para> </para>
 </sect1>
-->
<!-- ============= About ================================== -->
<!-- This section contains info about the program (not docs), such as
      author's name(s), web page, license, feedback address. This
      section is optional: primary place for this info is "About.." box of
      the program. However, if you do wish to include this info in the
      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
 <sect1 id="Glom-about"> 
    <title>Om Glom</title> 
    <para>Glom underhålls av frivilliga från Glom- och GNOME-gemenskapen. För att få mer information om Glom, besök <ulink url="http://www.glom.org/" type="http">Gloms webbplats</ulink>.</para>
    <para>För att rapportera ett fel eller komma med ett förslag kring detta program eller denna handbok kan du skicka in dem med <ulink url="http://bugzilla.gnome.org" type="help">bugzilla</ulink>.</para>

    <para>En annan utmärkt informationskälla är Gloms <ulink url="http://www.glom.org" type="http">sändlistor</ulink>.</para>

    <para>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 <ulink url="ghelp:gpl" type="help">länken</ulink>, eller i filen COPYING som inkluderats i källkoden för det här programmet.</para>
  </sect1>

  <appendix id="sec-concepts">
  <title>Koncept</title>
  <para>Glom är lättanvänt, men du måste förstå följande grundläggande koncept. <orderedlist>
<listitem><simpara><literal>Databas</literal>: Varje Glom-dokument tillåter åtkomst till en databas.</simpara></listitem>
<listitem><simpara><literal>Tabell</literal>: Varje databas innehåller flera tabeller, så som tabeller för "Kunder" and "Fakturor".</simpara></listitem>
<listitem><simpara><literal>Fält</literal>: 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"</simpara></listitem>
<listitem><simpara><literal>Poster</literal>: 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 <literal>Rader</literal>.</simpara></listitem>
<listitem><simpara><literal>Relationer</literal>: 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".</simpara></listitem> 
</orderedlist></para>
  </appendix>

  <appendix id="sec-calculated-fields">
  <title>Beräknade fält och knappskript</title>
  <para>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.</para>

     <figure id="developer-editing-fields-calculated"> 
	<title>Redigera definitionen för ett beräknat fält</title> 
	<screenshot> 
	  <mediaobject><imageobject><imagedata fileref="figures/glom_design_fields_dialog_calculated.png" format="PNG"/> </imageobject> <textobject> <phrase>Redigera definitionen för ett beräknat fält.</phrase> </textobject></mediaobject> 
	</screenshot> 
     </figure>

  <sect1 id="field-values">
  <title>Fältvärden</title>
  <para>Till exempel är <programlisting>record["name_first"]</programlisting> värdet på fältet name_first i den aktuella posten.</para>
  </sect1>

  <sect1 id="related-records">
  <title>Relaterade poster</title>
  <para>Till exempel tillhandahåller <programlisting>record.related["location"]</programlisting> de relaterade posterna för aktuell post.</para>

  <sect2 id="single-related-records">
  <title>Enkla relaterade poster</title>
  <para>För relationer som anger en ensam post kan du få värdet på ett fält i den posten. Till exempel är <programlisting>record.related["location"]["name"]</programlisting> värdet på namnfältet i tabellen som indikeras av platsrelationen (ofta kallad location::name).</para>
  </sect2>

  <sect2 id="multiple-related-records">
  <title>Flera relaterade poster</title>
  <para>För relationer som anger flera poster kan du använda aggregatfunktionerna (sum, count, average) för att få generella värden. Till exempel, <programlisting>record.related["invoice_lines"].sum("total_price")</programlisting>.</para>
  </sect2>

  </sect1>

  <sect1 id="testing-for-empty-values">
  <title>Testa för tomma värden</title>
  <para>Hur du testar efter tomma värden beror på fältets typ:</para>

  <sect2 id="non-text-fields">
  <title>Icke-textfält</title>
  <para>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.</para>
  <para>Du kan testa om ett fält är tomt genom att använda Pythons None. Till exempel:</para>
  <para>
  <programlisting>
  if(record["contact_id"] == None):
    return "Ingen kontakt"
  else:
    return record.related["contacts"]["name_full"]
  </programlisting>
  </para>
  <para>Du kan också testa huruvida det finns relaterade poster. Till exempel:</para>
  <para>
  <programlisting>
  if(record.related["contacts"] == None):
    return "Ingen kontakt"
  else:
    return record.related["contacts"]["name_full"]
  </programlisting>
  </para>
  </sect2>

  <sect2 id="text-fields">
  <title>Textfält</title>
  <para>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:</para>
  <para>
  <programlisting>
  if(record["name_full"] == ""):
    return "Inget namn"
  else:
    return record["name_full"]
  </programlisting>
  </para>
  </sect2>
</sect1>


<sect1 id="using-the-full-pygda-api">
  <title>Använda det fullständiga pygda-API:t</title>
  <para>pygda är ett python-API för libgda-API:t. Postens attribut <literal>connection</literal> 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.</para>
  <para>Attributet <literal>table_name</literal> för posten tillhandahåller också namnet på den aktuella tabellen.</para>
  <para>Detta exempel läser alla data från den aktuella tabellen och skriver ut värdena till terminalen:</para>
  <para>
  <programlisting>
# 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";
  </programlisting>
  </para>
  </sect1>

  </appendix>

 
</article>
