2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
3
<!ENTITY % addindex "IGNORE">
4
<!ENTITY % Dutch "INCLUDE">
5
<!ENTITY calligra "Calligra">
6
<!ENTITY ged.vertaald '<othercredit role="translator"
8
>Dit document is nog maar gedeeltelijk vertaald.</firstname
10
>Wilt u meehelpen, stuur een bericht naar:</surname
14
>kde-i18n-nl@kde.org</email
18
>Nieuwe vertaler</contrib
22
<book id="kexi" lang="&language;">
25
>Het handboek van &kexi;</title>
30
>Deze documentatie is geconverteerd vanuit de KDE UserBase pagina <ulink url=" http://userbase.kde.org/Kexi/Handbook/Introduction"
32
> op 2012-09-14.</firstname
40
>Bijgewerkt tot 2.4 door het &kde;-documentatieteam</firstname
45
&Natalie.Koning;&Freek.de.Kruijf;
48
>&FDLNotice;</legalnotice>
55
>&kexi; is de toepassing voor het aanmaken van databases en voor gegevensbeheer in de &calligra; productiviteitssuite. </para>
70
<!--userbase <timestamp
71
>2012-09-14T07:13:33Z</timestamp
74
<!--userbase-content-->
75
<chapter id="introduction"
80
>&kexi; is een toepassing om databases te beheren. Het kan gebruikt worden om databases aan te maken, gegevens in te voeren, query's uit te voeren en gegevens te verwerken. Door middel van formulieren kunt u een aangepaste interface voor uw gegevens maken. Alle database-objecten - tabellen, query's en formulieren - worden in de database opgeslagen, waardoor het gemakkelijk is om gegevens en ontwerp met anderen te delen. </para>
82
>&kexi; maakt deel uit van de &calligra;-productiviteitssuite door KDE. </para>
84
>In aanvulling op het opslaan van uw &kexi;-databases in bestanden, kan &kexi; uw gegevens ook op een database-server opslaan. Door gebruik te maken van een database-server kunt u uw database met anderen delen en kunnen meerdere personen de database tegelijkertijd gebruiken. De volgende database-servers worden door &kexi; ondersteund: </para>
88
><ulink url="http://www.mysql.com/"
94
><ulink url="http://www.postgresql.org/"
100
>U kunt meer informatie over &kexi; vinden op de &kexi;<ulink url="http://www.calligra-suite.org/kexi/"
101
>-pagina op de Calligra-website</ulink
102
> en op de <ulink url="http://www.kexi-project.org/about.html"
103
>website voor Kexi zelf</ulink
106
>Voor vragen over &kexi; kunt u terecht op twee mailinglijsten De gebruikers-e-maillijst van Kexi is er voor vragen over het gebruik van &kexi; of over het &kexi;-project. De ontwikkelings-e-maillijst van Kexi is er voor vragen over de ontwikkeling van &kexi;. Verdere informatie over hoe u zich kunt aanmelden voor deze lijsten en enkele andere manieren om contact op te nemen met &kexi;-ontwikkelaars, kunt u <ulink url="http://www.kexi-project.org/support.html"
112
>Dit handboek van &kexi; 2.5 is bedoeld te zijn gebaseerd op het &kexi;-handbook voor Kexi 1.1. Als u hier aan mee wilt doen, doe dat dan in overleg met Jarosław Staniek, email: kexi at kde.org</para
116
<chapter id="kexi-basics"
118
>Kexi de basis</title
123
><link linkend="kexi-databases"
124
>Kexi-databases</link
129
><link linkend="creating-a-new-database-file"
130
>Een nieuw databasebestand maken</link
135
><link linkend="the-kexi-main-window"
136
>Het hoofdvenster van Kexi</link
140
><link linkend="main-application-elements"
141
>Belangrijkste elementen van de toepassing</link
149
><link linkend="opening-an-existing-kexi-database-file"
150
>Een bestaand Kexi-databasebestand openen</link
151
> <itemizedlist>
154
><link linkend="opening-a-database-file-in-the-open-existing-project-dialog"
155
>Een databasebestand openen in het dialoogvenster Bestaand project openen</link
160
><link linkend="opening-an-existing-kexi-database-file-by-clicking-on--kexi-files-icon"
161
>Een bestaand Kexi-databasebestand openen door op het pictogram van het .kexi-bestand te klikken</link
169
><link linkend="using-built-in-help"
170
>De ingebouwde help gebruiken</link
174
<sect1 id="kexi-databases"
176
>Kexi-databases</title
179
>Veel toepassingen zoals <trademark class="registered"
180
>OpenOffice.org of </trademark
181
>, <trademark class="registered"
182
>LibreOffice</trademark
184
>&Microsoft; Excel</application
185
> maken bestanden die documenten genoemd worden. &kexi; maakt ook bestanden, maar we noemen ze &kexi;-databasebestanden of hier eenvoudig databasebestanden. </para>
187
>&kexi; kan, naast databasebestanden, ook databases op database-servers gebruiken, dit is de reden waarom we ze databasebestanden noemen en niet eenvoudig databases. </para>
189
>De term &kexi;-project, of eenvoudig project, wordt ook gebruikt om een &kexi;-database aan te duiden, ongeacht of deze in een bestand of op een database-server is opgeslagen. </para>
193
>&kexi; databasebestanden hebben gewoonlijk de extensie <filename
199
<sect1 id="creating-a-new-database-file"
201
>Een nieuw databasebestand maken</title
209
<imagedata fileref="newproject.png" format="PNG"/>
221
>Start &kexi; of, als het al actief is, gebruik <menuchoice
225
>Nieuw... (Ctrl+N)</guimenuitem
231
>Op de pagina <guilabel
232
>Nieuw project</guilabel
233
>, onder de sectie <guilabel
234
>Blanco projecten</guilabel
236
>Blanco database</guilabel
242
<imagedata fileref="projectstorage.png" format="PNG"/>
254
>Op de pagina <guilabel
255
>Opslagmethode</guilabel
263
<imagedata fileref="projectfilename.png" format="PNG"/>
276
>Projectitel & bestandsnaam</guilabel
277
>, definieert u een titel en de bestandsnaam van het project.</para
283
> om het project aan te maken.</para
291
>Wanneer u de projecttitel wijzigt, dan zal de voorgestelde bestandsnaam automatisch mee veranderen.</para
295
>U kunt de bestandenbrowser gebruiken om een map te kiezen waar u uw databasebestand op wilt slaan.</para
301
<sect1 id="the-kexi-main-window"
303
>Het hoofdvenster van Kexi</title
311
<imagedata fileref="kexi_mainwindow.png" format="PNG"/>
322
>Werkbalk met tabbladen</guilabel
323
> bovenaan geeft toegang tot de gewone acties en opdrachten. </para>
326
>Projectnavigator</guilabel
328
>Eigenschappenbewerker</guilabel
329
> worden als panelen aan weerszijden van het venster getoond. Deze kunnen van grootte veranderd of verborgen worden. Een paneel kan verborgen worden door op het kruisje bovenin (vlak onder de werkbalk) te klikken. </para>
331
>Database-objecten (tabellen, query's, enz.) in de <guilabel
332
>Projectnavigator</guilabel
333
> kunnen geopend worden door op hun namen te klikken (of te dubbelklikken, dit is afhankelijk van de globale instellingen in KDE). </para>
334
<sect2 id="main-application-elements"
336
>Belangrijkste elementen van de toepassing</title
339
>De belangrijkste elementen in het venster van &kexi; zijn: </para>
343
><emphasis role="bold"
344
>Werkbalk met tabbladen</emphasis
348
>Bevat de beschikbare commando's voor de toepassing. In <link linkend="command-reference"
350
> kunt u een uitgebreide beschrijving van de commando's vinden.</para>
355
><emphasis role="bold"
356
>Het paneel Projectnavigator</emphasis
360
>Bevat een lijst met objecten (tabellen, query's, formulieren, ...) die in het geopende databaseproject zijn aangemaakt). Bovenin de navigator bevindt zich een werkbalk met commando's voor database-objecten.</para>
365
><emphasis role="bold"
366
>Gebied voor geopende database-objecten / vensters met tabbladen</emphasis
370
>Een middelste gedeelte van het venster van de toepassing neemt de meeste ruimte. Het gebruikersinterface bevat om te schakelen tabbladen met vensters die altijd zijn gemaximaliseerd.</para>
375
><emphasis role="bold"
376
>Het paneel Eigenschappenbewerker</emphasis
380
>Bevat een lijst met eigenschappen van het actieve database-object. Voor bepaalde objecten (⪚ formulierwidgets) kunnen er verscheidene tabs zijn.</para>
385
<sect2 id="tabbed-toolbar"
387
>Werkbalk met tabbladen</title
395
<imagedata fileref="kexi_tabbedtoolbar.png" format="PNG"/>
405
>De werkbalk is de plaats die toegang geeft tot de meeste opdrachten en acties van &kexi;. </para>
407
>Met de acties in de verschillende tabbladen op de werkbalk kunt u: </para>
411
>Kexi-projecten aanmaken / openen / sluiten </para
415
>Database-objecten aanmaken</para
419
>Gegevens importeren / exporteren</para
423
>Afhankelijk van de context kunnen er extra tabbladen zichtbaar zijn: </para>
427
>Het tabblad <guilabel
428
>Formulierontwerp</guilabel
429
> is zichtbaar als de Ontwerper van formulieren werkelijk wordt gebruikt.</para
433
>Het tabblad <guilabel
434
>Rapportontwerp</guilabel
435
> is zichtbaar als de Ontwerper van rapporten werkelijk wordt gebruikt.</para
439
<sect2 id="project-navigator-pane"
441
>Het paneel Projectnavigator</title
449
<imagedata fileref="kexi_projectnavigator.png" format="PNG"/>
459
>Het paneel <guilabel
460
>Projectnavigator</guilabel
461
> is één van de meestgebruikte elementen in het hoofdvenster van &kexi;. Het paneel bevat een lijst met alle objecten die zich in het geopende Kexi-databaseproject bevinden. De objecten zijn onderverdeeld in groepen: tabellen, query's, formulieren, rapporten en scripts. </para>
463
>Het paneel Projectnavigator bevat ook een werkbalk voor de meestgebruikte commando's (van links naar rechts): <guilabel
465
> geselecteerd object, <guilabel
467
> van geselecteerd object en <guilabel
468
>Verwijderen</guilabel
469
> van geselecteerd dbject. </para>
471
>Voor elk object in de lijst kunt u een contextmenu openen met de rechter muisknop. </para>
473
>Dubbelklik met de linker muisknop in de lijst op de naam van het object om het in <guilabel
474
>Dataweergave</guilabel
475
> te openen. Als het venster al geopend is, wordt het geactiveerd zonder de weergave-modus te veranderen. </para>
479
>Hoewel uw besturingssysteem of windowmanager ingesteld kan zijn op enkelvoudig klikken inplaats van dubbelklikken, zal &kexi; dubbelklikken gebruiken in de <guilabel
480
>Projectennavigator</guilabel
481
> om het per ongeluk openen van grote bestanden of het uitvoeren van zoekopdrachten te vermijden.</para
485
<sect2 id="opened-database-objects-area---tabbed-windows"
487
>Gebied voor geopende database-objecten / vensters met tabbladen</title
495
<imagedata fileref="kexi_windowtabs.png" format="PNG"/>
505
>Wanneer u dubbelklikt op een object in de projectennavigator, dan wordt deze geopend in de <guilabel
506
>Gebied voor geopende database-objecten</guilabel
507
>. Elk venster heeft zijn eigen tabblad in &kexi;. </para>
509
>U kunt de tabbladen verplaatsen met slepen en laten vallen en ze sluiten met de knop <inlinemediaobject
511
> <imagedata fileref="Icon-tab-close.png" format="PNG"/> </imageobject
512
> </inlinemediaobject
513
> helemaal rechts op de tabbladstrip. </para>
517
>Wat later zal er een optie zijn om tabbladen los te maken, waarmee iets kan worden gemaakt wat lijkt op een MDI-interface (multi-display). Dat zou nuttig kunnen zijn voor eigengemaakte oplossingen of meervoudige displays.</para
521
<sect2 id="property-editor-pane"
523
>Het paneel Eigenschappenbewerker</title
531
<imagedata fileref="kexi_propertyeditor.png" format="PNG"/>
542
>Eigenschappenbewerker</guilabel
543
> kunt u de eigenschappen van het object in het actieve venster wijzigen. Afhankelijk van de context, kan het paneel één of meer tabbladen hebben. Het eerste tabblad <guilabel
544
>Eigenschappen</guilabel
545
>, dat altijd zichtbaar is, bevat de lijst met beschikbare eigenschappen. </para>
547
>Regels voor het gebruik van de <guilabel
548
>Eigenschappenbewerker</guilabel
553
>Elke regel bevat één eigenschap.</para
557
>U kunt de muis of het toetsenbord gebruiken om de waarden van de eigenschappen te wijzigen.</para
561
>De meestgebruikte typen voor de waarde van de eigenschappen zijn:<itemizedlist>
564
>een getal; u kunt de waarde direct intypen, of de waarde verhogen of verlagen door met de linker muisknop op de pijltjes te klikken.</para
572
>keuzelijst met waarden</para
576
>Ja/Nee; u kunt de waarde veranderen door op de knop te klikken; Ja (waar) betekent dat de knop ingeschakeld is, Nee (onwaar) betekent dat de knop uitgeschakeld is.</para
587
>Wijzigingen worden direct zichtbaar wanneer u een andere regel in de Eigenschappenbewerker selecteert of wanneer u op de toets &Enter; drukt.</para
591
>De namen van gewijzigde eigenschappen die nog niet zijn opgeslagen in de database worden in vette tekst gezet.</para
595
>Nadat u de waarde van een eigenschap gewijzigd hebt, verschijnt er een knop <guilabel
596
>Ongedaan maken</guilabel
597
> aan de rechterkant in de lijst van de Eigenschappenbewerker. Als u erop klikt kunt u de waarde terugzetten naar de oorspronkelijke waarde die in de database was opgeslagen. De knop is alleen zichtbaar als de betreffende eigenschap geactiveerd is.</para
604
> Eigenschappenbewerker</guilabel
605
> is leeg als: </para>
609
>er geen venster met een database-object geopend is, of</para
613
>het actieve database-object geen eigenschappen heeft; dit is gewoonlijk het geval als het in <guilabel
614
>Dataweergave</guilabel
615
> geopend is in plaats van in <guilabel
616
>Ontwerpweergave</guilabel
622
<sect1 id="opening-an-existing-kexi-database-file"
624
>Een bestaand Kexi-databasebestand openen</title
627
>Er zijn twee manieren om een bestaand &kexi;-databasebestand te openen: </para>
628
<sect2 id="opening-a-database-file-in-the-open-existing-project-dialog"
630
>Een databasebestand openen in het dialoogvenster Project openen</title
635
>Start &kexi;. Het dialoogvenster <guilabel
636
>Welkom bij Kexi</guilabel
637
> verschijnt, die u in staat stelt een van de recent gebruikte projecten te openen.</para
641
>Als het project niet op de pagina met recent gebruikte projecten aanwezig is kies dan <guibutton
642
>Openen...</guibutton
643
> (<keycombo action="simul"
647
>). U krijgt dan de volgende dialoog te zien:</para>
654
<imagedata fileref="kexi_openproject.png" format="PNG"/>
666
>Selecteer een map, die het bestand bevat waar u naar zoekt, in de locatiebalk.</para
670
>U kunt ofwel een bestand kiezen die onmiddellijk wordt geopend. U kunt ook zijn naam in het veld <guilabel
672
> invoeren en op <guilabel
679
>Opmerkingen</guilabel>
684
>Standaard is in de keuzelijst <guilabel
687
>Alle ondersteunde bestanden (*.kexi, *.kexic, *.kexis, *.mdb)</guilabel
688
> geselecteerd. Als u een bestand met een andere extensie zoekt, kunt u de selectie in het keuzevak <guilabel
690
> wijzigen in <guilabel
691
>Alle bestanden</guilabel
692
> om alle beschikbare bestanden weer te geven (onafhankelijk van een extensie).</para
696
>Als u een bestand van een extern type geselecteerd hebt, zoals een <guilabel
700
>-bestand, geeft &kexi; u de optie om het bestand te importeren.</para
704
>Als u een bestand met koppelingsgegevens hebt geselecteerd (met de extensie <filename
706
>) of een snelkoppeling naar een project op databaseserverbestand (met de extensie <filename
708
>), dan zal &kexi; de daarvoor bestemde dialoogvensters weergeven.</para
712
<sect2 id="opening-an-existing-kexi-database-file-by-clicking-on--kexi-files-icon"
714
>Een bestaand Kexi-databasebestand openen door op het pictogram van het .kexi-bestand te klikken</title
719
>Klik in bestandsbeheer of op het bureaublad op het bestandspictogram. &kexi; opent het databaseproject automatisch.</para
724
>Opmerkingen</guilabel>
727
>Opmerking over databasebestanden die op een andere computer staan. U kunt een databasebestand op bijvoorbeeld een webserver, een FTP-server of een MS Windows netwerk openen. In de KDE kunt u bestanden op een netwerk direct in toepassingen openen en wijzigingen in het bronbestand opslaan, dit geldt echter niet voor databasebestanden. Wanneer u een databasebestand dat op een andere computer staat opent, wordt er een kopie van het het bestand in een tijdelijke map op uw computer opgeslagen en alle wijzigingen worden in dit bestand gemaakt. Het oorspronkelijke bestand blijft ongewijzigd. Om de wijzigingen in het oorspronkelijke bestand op te slaan moet u de kopie van het bestand naar de andere computer kopiëren. </para>
730
<sect1 id="using-built-in-help"
732
>De ingebouwde help gebruiken</title
735
>De volgende manieren zijn beschikbaar om toegang te krijgen tot de ingebouwde help in &kexi;: </para>
739
><emphasis role="bold"
740
>Het handboek als document.</emphasis
744
>Het handboek is beschikbaar door de toets <keycap
746
> in te drukken of op <inlinemediaobject
748
> <imagedata fileref="Icon-help-contents.png" format="PNG"/> </imageobject
749
> </inlinemediaobject
750
> in de menubalk te klikken en <guilabel
752
> te selecteren.</para>
757
><emphasis role="bold"
759
>Wat is dit?</emphasis
765
>Wat is dit?</guilabel
766
> uit het menu dat verschijnt wanneer u op <inlinemediaobject
768
> <imagedata fileref="Icon-help-contents.png" format="PNG"/> </imageobject
769
> </inlinemediaobject
770
> klikt en dan op een gebied van de toepassing klikt om tips hierover te krijgen.</para>
776
<chapter id="building-simple-databases"
778
>Eenvoudige databases maken</title
783
><link linkend="building-simple-databases"
789
><link linkend="designing-database-tables"
790
>Databasetabellen ontwerpen</link
794
><link linkend="the-table-designer-window"
795
>Het venster Tabelontwerp</link
803
><link linkend="entering-data-into-tables"
804
>Gegevens in tabellen invoeren</link
809
><link linkend="designing-database-queries"
810
>Database-query's ontwerpen</link
815
><link linkend="designing-forms"
816
>Formulieren ontwerpen</link
817
> <itemizedlist>
820
><link linkend="most-important-terms"
821
>Belangrijkste termen</link
826
><link linkend="forms-versus-tables"
827
>Formulieren versus tabellen</link
832
><link linkend="working-with-form-design"
833
>Werken met formulierontwerp</link
838
><link linkend="using-the-widgets-tab"
839
>Het Widgets-tabblad gebruiken</link
844
><link linkend="inserting-widgets---text-fields"
845
>Widgets invoegen - tekstvelden</link
850
><link linkend="assigning-data-sources"
851
>Gegevensbronnen toewijzen</link
856
><link linkend="inserting-text-labels"
857
>Tekstlabels invoegen</link
862
><link linkend="actions"
868
><link linkend="widget-layouts"
869
>Widget-layouts</link
872
<!--FIXME not implemented in kexi 2.4
875
><link linkend="setting-widgets-size-and-position-by-hand"
876
>Setting widgets size and position by hand</link
881
><link linkend="setting-the-tab-order"
882
>Setting the tab order</link
891
><link linkend="entering-data-using-forms"
892
>Gegevens in formulieren invoeren</link
896
<sect1 id="introduction0"
901
>Om te leren hoe u &kexi; gebruikt, zou u eerst een eenvoudige database kunnen maken met behulp van de meest elementaire functies van &kexi;. Om het eenvoudig te houden, worden hier geen uitgebreide mogelijkheden voor het ontwerpen van databases besproken. </para>
903
>Begin met het maken van een nieuw leeg Telefoonboek. </para>
905
>Als u een nieuw leeg database-project hebt, volg dan de volgende stappen: </para>
909
>Databasetabellen ontwerpen. Lees de sectie genaamd <link linkend="designing-database-tables"
910
>Databasetabellen ontwerpen</link
915
>Voer gegevens in in tabellen. Lees de sectie genaamd <link linkend="entering-data-into-tables"
916
>Gegevens in tabellen invoeren</link
921
>Database-queries ontwerpen. Lees de sectie genaamd <link linkend="designing-database-queries"
922
>Database-queries ontwerpen</link
927
>Formulieren ontwerpen. Lees de sectie genaamd <link linkend="designing-forms"
928
>Formulieren ontwerpen</link
933
>Formulieren gebruiken om gegevens in te voeren. Lees de sectie genaamd <link linkend="entering-data-using-forms"
934
>Formulieren gebruiken om gegevens in te voeren</link
939
<sect1 id="designing-database-tables"
941
>Databasetabellen ontwerpen</title
943
<!--FIXME to refer to these two tables later, sometimes the caption "Persons"/"Phones" and sometimes the Name "persons"/"phone_numbers" are used; together with different markup guilabel/replaceable, make that consistent. It is really confusing-->
945
>Als eerste worden er twee tabellen aan uw database toegevoegd: <replaceable
946
> Personen</replaceable
948
>Telefoonnummers</replaceable
949
>. Dit zijn precies dezelfde tabellen als beschreven in hoofdstuk <link linkend="database-and-spreadsheet"
950
>Database en spreadsheet</link
951
>. Een indeling voor <replaceable
952
>Personen</replaceable
953
> kunt u vinden in het gedeelte <link linkend="data-integrity-and-validity"
954
>Integriteit en geldigheid van gegevens</link
955
> in dat hoofdstuk. </para>
959
>Kies uit de werkbalk <guilabel
961
>. U kunt ook op de knop <guilabel
962
>Object aanmaken: tabel</guilabel
963
> in het contextmenu van het item <guilabel
965
> in de Projectnavigator klikken.</para
969
>Het venster "Tabelontwerp" verschijnt. Zoals u bovenin het venster kunt zien, stelt &kexi; een generieke naam, zoals <guilabel
971
> voor de nieuwe tabel voor. Het tabelontwerp is nog niet opgeslagen, u kunt er dus eenvoudig een andere naam aan geven. Om dezelfde reden is ook de naam van de tabel nog niet zichtbaar in de <guilabel
972
>Projectnavigator</guilabel
976
<sect2 id="the-table-designer-window"
978
>Het venster Tabelontwerp</title
980
<sect3 id="table-designer-window-consists-of-following-columns-"
982
>Het venster "Tabelontwerp" bevat de volgende kolommen:</title
989
> <imagedata fileref="Icon-help-about-desaturated.png" format="PNG"/> </imageobject
990
> </inlinemediaobject
991
> - Aanvullende informatie over het veld.</para
997
> - veldnaam (ofwel: kolomnaam) die zichtbaar blijft tijdens het invoeren van gegevens.</para
1002
>Gegevenstype</guilabel
1003
> - een keuzelijst die gegevenstypen bevat, zodat een hoofdregel voor de ingevoerde gegevens in een veld opgesteld kan worden. Bijvoorbeeld: wanneer het gegevenstype "heel getal" is, kunnen er geen letters in het veld ingetypt worden.</para
1008
>Commentaar</guilabel
1009
> - hier kunt u allerlei informatie invullen die van nut kan zijn om het doel van het veld duidelijk te maken. Deze extra tekst wordt in het ontwerp opgeslagen en is alleen zichtbaar in de ontwerpweergave.</para
1013
>In het venster Tabelontwerp komt elke rij overeen met een enkel tabelveld. U kunt zien dat u in de ontwerpmodus werkt omdat de knop <guilabel
1014
>Ontwerpen</guilabel
1015
> is ingeschakeld op de werkbalk van het venster Tabelontwerper. </para>
1017
<sect3 id="designing-the-persons-table"
1019
>De tabel Personen ontwerpen</title
1022
>Klik in de eerste rij op de cel in de kolom <guilabel
1023
>Veldtitel</guilabel
1024
> en vul <replaceable
1026
> in als de veldtitel. Invullen van het veld <guilabel
1027
>Veldtitel</guilabel
1028
> vult automatisch het veld <guilabel
1030
> zoals te zien is in het paneel <guilabel
1031
>Bewerker van eigenschappen</guilabel
1034
>Opmerkingen over veldnamen en opschriften </para>
1038
>Elk veld moet een naam en een opschrift hebben, de velden mogen niet leeg zijn.</para
1042
>Veldnaam is een woord dat wordt gebruikt door de database, gewoonlijk niet zichtbaar voor gebruikers van de database-toepassing. De naam mag geen speciale (nationale) tekens (zoals ±, ¶, Ü) of witruimte-tekens bevatten. De naam moet alleen gewone letters, cijfers of underscore-teken <quote
1044
> bevatten. Gebruik de laatste in plaats van spaties of mintekens.</para
1048
>Veldnamen moeten met een letter of met een underscore-teken <quote
1050
> beginnen, nooit met een cijfer.</para
1054
>Het doet er niet toe of u kleine of hoofdletters gebruikt. Voor &kexi; is de veldnaam <replaceable
1055
>Personen</replaceable
1056
> hetzelfde als <replaceable
1057
>Personen</replaceable
1062
>In de veldtitel kunt u echter alle letters en speciale tekens gebruiken. Deze wordt weergegeven voor de gebruikers van de database.</para
1066
>Vul op dezelfde manier de volgende velden in tabelontwerp in: </para>
1071
>achternaam</replaceable
1077
>straat</replaceable
1083
>Huisnummer</replaceable
1089
>plaats</replaceable
1094
>Alle bovenstaande velden, behalve <replaceable
1095
>huisnummer</replaceable
1096
> zijn van het type tekst. Verander het type van het veld <replaceable
1097
>huisnummer</replaceable
1098
> in geheel getal. Om dit te doen klikt u op een cel in de kolom <guilabel
1099
>Gegevenstype</guilabel
1100
> in de rij <replaceable
1101
>huisnummer</replaceable
1102
> en klik dan op de keuzelijst of op <keycap
1104
>. De lijst met gegevenstypen wordt zichtbaar. U kunt ook de pijltjestoetsen <keysym
1108
> drukken om een ander type te kiezen. Selecteer het type <emphasis
1109
>Geheel getal</emphasis
1112
>Vanaf nu accepteert het veld <replaceable
1113
>huisnummer</replaceable
1114
> alleen cijfers. </para>
1116
>Het ontwerp van de tabel Personen is nu klaar. Klik op de knop <guilabel
1118
> om over te schakelen naar <guilabel
1119
>Gegevensweergave</guilabel
1120
> van de tabel. U kunt nu gegevens in de tabel invoeren. </para>
1122
>Omdat het ontwerp nog niet in de database opgeslagen is, verschijnt het dialoogvenster <guibutton
1123
>Object opslaan als</guibutton
1124
>. Hier kunt u een naam voor de nieuwe tabel invullen. </para>
1126
>&kexi; biedt een generieke naam zoals <guilabel
1128
>. Om de naam te wijzigen, voert u <replaceable
1129
>Personen</replaceable
1130
> in in het veld <guilabel
1131
>Opschrift</guilabel
1132
> en drukt u op de &Enter;-toets of klikt u op de knop <keycap
1134
>. Het veld <guilabel
1135
>Opschrift</guilabel
1136
> zal worden gebruikt om de tabel aan eindgebruikers van de database te tonen, ⪚ als een formulier. Anders dan de naam mag het opschrift elk teken inclusief spaties en speciale tekens bevatten. </para>
1138
>Merk op dat de inhoud van het veld <guilabel
1139
>Opschrift</guilabel
1140
> automatisch het veld <guilabel
1142
> doet invullen. Voor uw gemak wordt vastgehouden aan de regel om alleen letters, cijfers en het teken <quote
1144
> te gebruiken. U kunt desgewenst de inhoud van het veld <guilabel
1150
>Er wordt gevraagd of u toestemming geeft voor automatische toevoeging van een primaire sleutel voor de tabel. Klik op de knop <guilabel
1151
>Primaire sleutel toevoegen</guilabel
1152
> om verder te gaan.</para
1156
>De tabel <replaceable
1157
>Personen</replaceable
1158
> is aangemaakt en in de Gegevensweergave geopend. De naam verschijnt in het paneel <guilabel
1159
>Projectnavigator</guilabel
1164
>Maak de tabel <replaceable
1165
>Telefoonnummers</replaceable
1166
> aan op dezelfde manier als de tabel <replaceable
1167
>Personen</replaceable
1172
>Maak een veld <replaceable
1173
>persoon</replaceable
1174
> aan van het type <guilabel
1175
>Geheel getal</guilabel
1177
>telefoonnummer</replaceable
1178
> van het type <guilabel
1180
>. Gebruik hier geen type getal omdat telefoonnummers veel verschillende vormen en voorvoegsels kunnen hebben.</para
1184
>Klik op de knop <guilabel
1186
> op de werkbalk en vul het opschrift <replaceable
1187
>Telefoonnummers</replaceable
1188
> in als opschrift voor de tabel. Laat &kexi;, net als bij de vorige tabel, weer automatisch een primaire sleutel maken.</para
1194
<sect1 id="entering-data-into-tables"
1196
>Gegevens in tabellen invoeren</title
1199
>U hebt de tabellen <replaceable
1200
>Personen</replaceable
1202
>Telefoonnummers</replaceable
1203
> gemaakt, maar er staan nog geen gegevens in. In dit hoofdstuk kunt u lezen hoe u snel en effectief gegevens in de tabel invoert. </para>
1205
>Start met de tabel <replaceable
1206
>Personen</replaceable
1207
>. Open het in de Gegevensweeergave met <guilabel
1209
> in het contextmenu van de <guilabel
1210
>Projectnavigator</guilabel
1211
> of de knop op de werkbalk. De huidige cel heeft een dikkere rand (gewoonlijk zwart), een celcursor. De inhoud van de cel, indien aanwezig, is geaccentueerd met een verschillende kleur. De huidige rij, &ie; de rij waar de celcursor zich in bevindt, is aan de linkerkant gemarkeerd met een pijltje. </para>
1213
>U kunt door de tabel navigeren met behulp van pijltoetsen, en de <keycap
1221
>-toetsen; u kunt ook met de muis in een cel klikken om die te selecteren. </para>
1223
>Nadat de tabel <replaceable
1224
>Personen</replaceable
1225
> geopend is, staat de celcursor in de kolom <replaceable
1227
>. De eigenschap "Automatische nummering" is voor die kolom geactiveerd, in de laatste rij staat (autonummer) in blauwe tekst. Dit betekent dat u de rijen niet hoeft te nummeren wanneer u gegevens in een nieuwe rij invoert, de rijen worden automatisch genummerd. </para>
1229
>Nieuwe rijen toevoegen en er gegevens in invoeren gaat in &kexi; anders dan in spreadsheets. Om gegevens in een nieuwe rij in te voeren moet u de celcursor naar de laatste rij verplaatsen (met de pijltoetsen of met de muis). De laatste rij is gemarkeerd met een plus-teken. Verplaats de celcursor naar de (tweede) kolom <replaceable
1231
> en voer een naam in. Voer in de volgende kolommen de achternaam, straat, huisnummer en plaats in. Verplaats de celcursor weer naar de laatste rij ofwel met de <keycap
1232
>Pijl omlaag</keycap
1233
> of door met de muis in de laatste rij te klikken, om een nieuwe rij toe te voegen. </para>
1234
<sect2 id="details-about-actions-available-while-entering-data-into-tables"
1236
>Meer over beschikbare acties tijdens gegevensinvoer in tabellen</title
1241
>Zodra u het eerste teken intypt, verschijnt er een potloodsymbool aan de linkerkant van de rij om aan te geven dat de rij gewijzigd is.</para
1245
>Dubbelklik met de met de linker muisknop in de cel die u wilt bewerken of op de &Enter;- of <keycap
1247
>-toets drukken start eveneens het bewerken van de huidige rij.</para
1251
>Druk op de &Esc;-toets om de wijzigingen die u in de cel gemaakt hebt te annuleren. Het potloodsymbool verdwijnt echter niet, omdat u misschien in een andere cel van de rij nog iets wilt wijzigen. Om alle wijzigingen in de gehele rij te negeren moet u nogmaals op de &Esc;-toets drukken.</para
1253
><!--FIXME Esc does not work in master (2.4) as described here bug in docs or app?-->
1256
>In plaats van de &Esc;-toets indrukken, kunt u op de knop <guilabel
1257
>Rijwijzigingen annuleren</guilabel
1258
> in de werkbalk drukken.</para
1262
>Druk op toetsen <keycombo action="simul"
1263
>&Shift;&Enter;</keycombo
1264
> om de wijzigingen in alle cellen in de huidige rij te accepteren.</para
1268
>Voer gegevens in de tabel <replaceable
1269
>Telefoonnummers</replaceable
1270
> in. U moet in de kolom <replaceable
1271
>Persoon</replaceable
1274
>-nummer van een persoon uit de tabel <replaceable
1275
>Personen</replaceable
1279
<sect1 id="designing-database-queries"
1281
>Database-query's ontwerpen</title
1284
>Het primaire doel van een database is het opslaan en terugvinden van gegevens. In tegenstelling tot gegevens in een spreadsheet, kunt u met &kexi; meer zoekcriteria specificeren. De resultaten worden ook sneller gevonden, zelfs bij grote databases. Dit zijn enkele van de voordelen van databases, maar om effectieve query's uit te voeren, moet u eerst weten hoe u de database laat zoeken naar de gegevens die u wilt zien. </para>
1286
>Met behulp van query's kunt u de hoeveelheid gegevens, die in een tabel gevonden worden, beperken tot een voorgedefinieerd aantal rijen en kolommen, maar u kunt ook gegevens uit meerdere tabellen dynamisch samenvoegen (join). </para>
1288
>Om een voorbeeld uit de praktijk te testen gaan we de query contacten aanmaken, hierin worden gegevens uit de twee tabellen <replaceable
1289
>Personen</replaceable
1291
>Telefoonnummers</replaceable
1292
> samengevoegd (<link linkend="designing-database-tables"
1294
> ontworpen en met gegevens die <link linkend="entering-data-into-tables"
1296
> zijn ingevoerd). </para>
1300
>Maak een nieuwe lege query door <guilabel
1302
> in de werkbalk te selecteren. Het ontwerpvenster wordt geopend. Bovenin het venster vindt u de query-relaties en onderin de query-kolommen.</para
1306
>Selecteer de tabel <replaceable
1307
>Personen</replaceable
1308
> in de keuzelijst <guilabel
1310
> bovenin het venster en klik op de knop <guilabel
1312
>. Er verschijnt een grafische representatie van de tabel in het relatiegedeelte. Doe hetzelfde in de tabel <replaceable
1313
>Telefoonnummers</replaceable
1314
> om hier iets in te voegen.</para
1318
>Voeg een query-relatie met de techniek slepen & laten vallen: klik op de veld <replaceable
1320
> in de tabel <replaceable
1321
>Personen</replaceable
1322
> sleep en laat het vallen in het veld <replaceable
1323
>Persoon</replaceable
1324
> van de tabel <replaceable
1325
>Telefoonnummers</replaceable
1326
>. Op deze manier voegt u de beide velden samen door een nieuwe relatie te creëren.</para
1330
>Dubbelklik op het veld <replaceable
1332
> in de tabel <replaceable
1333
>Personen</replaceable
1334
> om het veld als een query-kolom toe te voegen. Voeg dan op dezelfde manier uit de tabel <replaceable
1335
>Personen</replaceable
1336
> de velden <replaceable
1337
>achternaam</replaceable
1339
>straat</replaceable
1341
>huisnummer</replaceable
1343
>plaats</replaceable
1345
>telefoonnummer</replaceable
1346
> uit de tabel <replaceable
1347
>Telefoonnummers</replaceable
1352
>Het query-ontwerp kan nu getest worden. Klik op de knop <guilabel
1354
> op de werkbalk om van ontwerpen naar weergave van de gegevens om te schakelen om het resultaat van de query te zien.</para
1358
>Sla het query-ontwerp op, zodat u het later weer kunt gebruiken, door op <guilabel
1360
> op de werkbalk te klikken. Omdat het query-ontwerp nog niet eerder opgeslagen is, moet u er een naam voor invullen. Voer <replaceable
1361
>Contacten</replaceable
1362
> in in het veld Opschrift en klik op de knop <guilabel
1368
<sect1 id="designing-forms"
1370
>Formulieren ontwerpen</title
1375
><link linkend="most-important-terms"
1376
>Belangrijkste termen</link
1381
><link linkend="forms-versus-tables"
1382
>Formulieren versus tabellen</link
1387
><link linkend="working-with-form-design"
1388
>Werken met formulierontwerp</link
1393
><link linkend="using-the-widgets-tab"
1394
>Het Widgets-tabblad gebruiken</link
1399
><link linkend="inserting-widgets---text-fields"
1400
>Widgets invoegen - tekstvelden</link
1405
><link linkend="assigning-data-sources"
1406
>Gegevensbronnen toewijzen</link
1411
><link linkend="inserting-text-labels"
1412
>Tekstlabels invoegen</link
1417
><link linkend="actions"
1423
><link linkend="widget-layouts"
1424
>Widget-layouts</link
1427
<!--FIXME not implemented in kexi 2.4
1430
><link linkend="setting-widgets-size-and-position-by-hand"
1431
>Setting widgets size and position by hand</link
1436
><link linkend="setting-the-tab-order"
1437
>Setting the tab order</link
1442
<sect2 id="most-important-terms"
1444
>Belangrijkste termen</title
1449
><emphasis role="bold"
1450
>Formulier</emphasis
1454
>Een venster waarin u op een gemakkelijke manier gegevens kunt invoeren en weergeven.</para>
1459
><emphasis role="bold"
1460
>Gegevensbron van het formulier</emphasis
1464
>Databasetabel of query die de gegevens levert die in het formulier getoond worden. De gegevensbron is nodig omdat formulieren slechts hulpmiddelen zijn om de gegevens te tonen of in te vullen, terwijl tabellen en query's de bron van de gegevens zijn. Aan nieuwe, lege formulieren is nog geen gegevensbron toegewezen, daarom tonen ze de gegevens uit de database pas als u er een gegevensbron aan toewijst.</para>
1469
><emphasis role="bold"
1470
>Formulierveld</emphasis
1474
>Het equivalent van een kolom in een tabel of query. Velden voor tekst en getallen worden het vaakst gebruikt. Wanneer u een nieuwe waarde invult of de bestaande waarde wijzigt, wordt de ermee verbonden kolom in een tabel of query ook gewijzigd (nadat de wijziging geaccepteerd is).</para>
1479
><emphasis role="bold"
1480
>Formulierontwerp</emphasis
1484
>Taken die u uitvoert om het uiterlijk en de functies van het formulier te definiëren. Hiervoor moet u een gegevensbron toewijzen, verscheidene typen formuliervelden invoegen en deze op de gewenste locatie plaatsen.</para>
1489
><emphasis role="bold"
1490
>Formulierwidget</emphasis
1494
>Een element op een formulier. De belangrijkste widgettypen zijn:</para>
1498
>Widgets die informatie tonen, ⪚ een tekstvak of een afbeeldingsvak. Elke widget van dit type kan verbonden worden met een veld in een gegevensbron (een tabel of een query-kolom). Daarom worden zulke widgets ook wel kortweg formuliervelden genoemd.</para
1502
>Widgets die een gespecificeerde actie kunnen uitvoeren, ⪚ een knop waarmee het huidige formulier gesloten kan worden. In andere toepassingen heet dit type widget soms formulierbesturing omdat het een vooraf gedefinieerde actie uitvoert die het gedrag van de databasetoepassing bestuurt.</para
1506
>Andere widgets die het uiterlijk van een formulier verfraaien, ⪚ een “lijnwidget” als scheiding tussen twee gebieden op een formulier.</para
1514
><emphasis role="bold"
1515
>Containerwidget</emphasis
1519
>Een widget waarin andere widgets geplaatst kunnen worden, bijvoorbeeld frame-widget en tabbladwidget zijn containers. Het oppervlak van een formulier is ook een container. Een opdrachtknop kan niet als container dienst doen omdat het niet mogelijk is om er een ander widget in te plaatsen. Containerwidgets kunnen genest (in andere containerwidgets geplaatst) worden, dit kan nuttig zijn voor ingewikkelde formulieren.</para>
1524
<sect2 id="forms-versus-tables"
1526
>Formulieren contra tabellen</title
1529
>In hoofdstuk <link linkend="entering-data-into-tables"
1530
>Gegevens in tabellen invoeren</link
1531
> wordt beschreven hoe u gegevens direct in tabellen kunt invullen. In veel gevallen zijn formulieren geschikter om gegevens in te voeren: </para>
1535
>Een tabel kan meer kolommen bevatten dan dat er op het scherm passen. Een formulier kan zulke gegevens tonen in de vorm van meerdere regels.</para
1539
>Op een formulier kunt u gegevensvelden in logische groepen splitsen zodat ze beter leesbaar worden. U kunt labels met extra informatie invoegen om de gebruikers tips te geven hoe ze het formulier moeten gebruiken of labels met informatie over de betekenis van de gegevensvelden.</para
1543
>Voor algemene commando's kunnen knoppen op formulieren gebruikt worden, zodat gebruikers de formulieren op een zelfde manier als een losstaande toepassing waar ze mee bekend zijn kunnen gebruiken </para
1547
>Tekstvelden met meerdere regels of afbeeldingen kunnen in de gegevensweergave net zo gemakkelijk weergegeven worden als op formulieren. </para>
1549
<sect2 id="working-with-form-design"
1551
>Werken met formulierontwerp</title
1554
>Net als bij het ontwerpen van een tabel of een query kunt u zowel de Gegevensweergave als de Ontwerpweergave gebruiken. Formulieren worden in de Ontwerpweergave ontworpen. Vaak noemen we het venster waarin de formulieren ontworpen worden <emphasis
1555
>Formulierontwerper</emphasis
1560
>Om een nieuw, leeg formulier te creëren kiest u <guilabel
1561
>Formulier</guilabel
1562
> in de werkbalk. U kunt ook het commando <guilabel
1563
>Object aanmaken: Formulier</guilabel
1564
> uit de keuzelijstknop op de taakbalk van de Projectnavigator gebruiken of <guilabel
1565
>Object aanmaken: Formulier</guilabel
1566
> in het contextmenu van de Projectnavigator kiezen. </para
1570
>Er verschijnt een nieuw frame, u kunt de grootte wijzigen door de randen te verslepen. Over het formulier is een raster gelegd, zodat de widgets gemakkelijker op de juiste plaats gezet kunnen worden.</para
1574
>Het venster van Formulierontwerp heeft, net als tabelontwerp, een paneel <guilabel
1575
>Eigenschappenbewerker</guilabel
1576
>. Om ruimte te besparen in het paneel zijn er drie tabbladen met eigenschappen die gerelateerd zijn aan het geselecteerde formulier: </para>
1580
><emphasis role="bold"
1581
>Het tabblad Eigenschappen</emphasis
1585
>Bevat een lijst met eigenschappen van het geselecteerde widget.</para>
1590
><emphasis role="bold"
1591
>Het tabblad Gegevensbron <inlinemediaobject
1593
> <imagedata fileref="Icon-server-database.png" format="PNG"/> </imageobject
1594
> </inlinemediaobject
1599
>Bevat eigenschappen die specifiek verband houden met de gegevensbron van het nu geselecteerde widget of van het formulier zelf.</para>
1604
><emphasis role="bold"
1605
>Het tabblad <guilabel
1607
> <inlinemediaobject
1609
> <imagedata fileref="Icon-action-widgets.png" format="PNG"/> </imageobject
1610
> </inlinemediaobject
1615
>Bevat een hiërarchische lijst van alle widgets op het formulier. Met behulp van deze lijst kunt u gemakkelijk widgets op naam zoeken en direct het juiste widget vinden.</para>
1620
>De informatie over de naam en het type van het geselecteerde widget vindt u op het eerste en het tweede tabblad. </para>
1622
>Er zijn ook extra werkbalken beschikbaar: </para>
1626
>De werkbalk <guilabel
1628
> bevat knoppen om nieuwe widgets op het formulier in te voegen. Selecteer <guibutton
1629
>Formulierontwerp</guibutton
1630
> om het te tonen.</para
1632
<!--FIXME no Format toolbar and Format menu in master/2.4
1637
> toolbar used to format form's elements (⪚ adjusting widget's size, grouping). Formatting commands are also available in the <guilabel
1644
<sect2 id="using-the-widgets-tab"
1646
>Het tabblad Widgets gebruiken</title
1649
>Het tabblad Widgets <inlinemediaobject
1651
> <imagedata fileref="Icon-action-widgets.png" format="PNG"/> </imageobject
1652
> </inlinemediaobject
1653
> in het paneel <guilabel
1654
>Eigenschappen</guilabel
1655
> toont een lijst met formulierwidgets en hun hiërarchie. Alle widgets op hetzelfde niveau in de hiërarchie staan bij elkaar. De namen van widgets in containers springen in. </para>
1657
>Van elk widget wordt de naam en het type vermeld. Het type is ook te zien aan een pictogram links van de naam - hetzelfde pictogram dat in ontwerpmodus op de werkbalk staat. </para>
1663
>Wanneer u op een naam in de lijst klikt, wordt het bijbehorende widget op het formulier geselecteerd. Dit maakt het gemakkelijk om een widget op naam te zoeken, te selecteren en daarna op het tabblad <guilabel
1664
>Eigenschappen</guilabel
1665
> de eigenschappen ervan te wijzigen</para
1669
>Wanneer u de &Ctrl;-toets ingedrukt houdt kunt u meerdere widgets uit de lijst selecteren. Om een aantal widgets die onder elkaar staan te selecteren moet u de &Shift;-toets ingedrukt houden.</para
1675
>Het is nuttig, maar niet verplicht, om de widgets duidelijke namen te geven. De naam van een widget is een eigenschap die niet zichtbaar is voor de gebruiker van het formulier. Gebruikers van het formulier zien alleen de tekst die door de eigenschap <guilabel
1677
> bepaald wordt. </para>
1679
<sect2 id="inserting-widgets---text-fields"
1681
>Widgets invoegen - tekstvelden</title
1684
>Als voorbeeld maken we een formulier dat informatie geeft over personen, &ie; een formulier dat verbonden is met de tabel <replaceable
1685
>Personen</replaceable
1688
>Als het formulier gegevens uit een database moet weergeven, moet u de juiste velden op het formulier plaatsen. Hiervoor kunt u de knoppen op de werkbalk <guilabel
1690
> gebruiken. Elke knop correspondeert met één enkel type widget. </para>
1694
>Klik op de knop <guilabel
1696
> op de werkbalk <guilabel
1702
>Klik op het formulier met de linkermuisknop. Er wordt een nieuw tekstveld op de plaats waar u geklikt hebt geplaatst. Wanneer u een rechthoek tekent met de muis de voordat u de muisknop loslaat, kunt u de gewenste grootte van het widget op het formulier bepalen.</para
1706
>Als u het widget wilt verplaatsen, klikt u erop en sleept u het met de muis naar de gewenste plaats. U kunt de grootte van het widget wijzigen door één van de handvatten te verslepen. De handvatten zijn alleen zichtbaar als het widget geselecteerd is, als u een ander widget selecteert of op een lege plaats op het formulier klikt, verdwijnen de handvatten.</para
1710
>Klik nogmaals op de knop <guilabel
1712
> op de werkbalk en klik daarna op- het formulier om een tweede widget in te voegen. Herhaal dit totdat u drie tekstvakken meer op het formulier hebt. Om het eenvoudig te houden beperken we ons tot vijf gegevensvelden.</para
1720
>In de ontwerpmodus van formulieren is er een contextmenu beschikbaar, dat geopend kan worden door met de rechter muisknop op een gewenste widget of op het formulier te klikken. Het menu bevat de commando's <guilabel
1727
>Verwijderen</guilabel
1728
> en andere, sommige met submenu's. Voor deze commando's zijn ook sneltoetsen beschikbaar. Sommige commando's zijn alleen beschikbaar voor bepaalde typen widgets.</para
1732
>Met behulp van de commando's <guilabel
1738
> kunt u widgets verplaatsen of kopiëren naar andere formulieren en zelfs tussen aparte databaseprojecten.</para
1742
>Wanneer u de &Ctrl;-toets ingedrukt houdt terwijl u op een widget klikt, kunt u meerdere widgets selecteren.</para
1746
>Als u een kopie van een widget op het formulier wilt maken, kunt u in plaats van <guilabel
1750
> de &Ctrl;-toets ingedrukt houden terwijl u het widget met de muis versleept. Nadat u de muisknop loslaat, wordt het widget niet verplaatst, maar wordt er een kopie van het widget op de cursorpositie geplaatst.</para
1756
<sect2 id="assigning-data-sources"
1758
>Gegevensbronnen toewijzen</title
1761
>Aan de velden die u ingevoegd hebt, is nog geen gegevensbron toegewezen, ze kunnen dus nog geen informatie uit de database weergeven. Om een gegevensbron toe te wijzen gebruiken we de <inlinemediaobject
1763
> <imagedata fileref="Icon-server-database.png" format="PNG"/> </imageobject
1764
> </inlinemediaobject
1765
> tabblad (Gegevensbron) in het paneel <guilabel
1766
>Eigenschappenbewerker</guilabel
1769
>Allereerst moet de gegevensbron van het formulier gespecificeerd worden, &ie; de locatie waar de gegevens vandaan gehaald zullen worden. In dit geval gebruiken we de tabel <replaceable
1770
>Personen</replaceable
1771
> als gegevensbron voor het nieuwe formulier. </para>
1775
>Klik op een lege plaats op het formulier om te zorgen dat de eigenschappen van het formulier gewijzigd worden.</para
1779
>Schakel over naar het <inlinemediaobject
1781
> <imagedata fileref="Icon-server-database.png" format="PNG"/> </imageobject
1782
> </inlinemediaobject
1783
> tabblad (Gegevensbron) en voer de tabelnaam <replaceable
1784
>Personen</replaceable
1785
> in op de keuzelijst van <guilabel
1786
>Gegevensbron van formulier</guilabel
1787
> of klik op deze naam in de keuzelijst.</para
1791
>U hebt nu de gegevensbron voor het formulier toegewezen. Nu moeten de gegevensbronnen voor de widgets nog gespecificeerd worden. </para>
1795
>Klik op het eerste tekstveld, bovenin het formulier.</para
1799
>Voer de veldnaam <replaceable
1801
> in in het keuzevak <guilabel
1802
>Gegevensbron van het widget</guilabel
1803
> op het <inlinemediaobject
1805
> <imagedata fileref="Icon-server-database.png" format="PNG"/> </imageobject
1806
> </inlinemediaobject
1807
> tabblad (Gegevensbron). U kunt ook deze naam kiezen in de keuzelijst.</para
1811
>Klik op het volgende widget voor het tekstveld en voer <replaceable
1812
>Achternaam</replaceable
1813
> voor de gegevensbron in.</para
1817
>Op dezelfde manier wijst u gegevensbronnen toe aan de tekstvelden straat huisnummer en plaats.</para
1821
>U kunt nu het formulierontwerp opslaan (u kunt het formulier wel testen als het nog niet opgeslagen is). Om het op te slaan klikt u op de knop <guilabel
1823
> in de werkbalk. Bij het opslaan wordt een naam voor het formulier gevraagd. Voer <replaceable
1824
>Personen</replaceable
1825
> als opschrift in en klik op de knop <guilabel
1827
>. De formuliernaam wordt automatisch ingevuld. </para>
1829
>U wilt nu waarschijnlijk het formulier testen. Klik op de knop <guilabel
1831
> op de werkbalk. Als de gegevensbronnen correct zijn toegewezen, ziet u de formuliervelden met de gegevens uit de tabel <replaceable
1832
>Personen</replaceable
1839
>Als u toekenningen van gegevensbronnen aan widgets wilt verwijderen uit een formulierwidget, dan kunt u de knop<inlinemediaobject
1841
> <imagedata fileref="Icon-edit-clear-locationbar-rtl.png" format="PNG"/> </imageobject
1842
> </inlinemediaobject
1843
> in het vak <guilabel
1844
>Gegevensbron van widget</guilabel
1849
>Gebruik het pictogram <inlinemediaobject
1851
> <imagedata fileref="Icon-go-jump.png" format="PNG"/> </imageobject
1852
> </inlinemediaobject
1853
> knop van (Ga naar de geselecteerde gegevensbron van het formulier) om de juiste tabel of query in de <guilabel
1854
>Projectnavigator</guilabel
1855
> te selecteren, zodat u snel een tabel of query als gegevensbron van het formulier kunt openen.</para
1861
<sect2 id="inserting-text-labels"
1863
>Tekstlabels invoegen</title
1866
>Om het voor de gebruiker van het formulier gemakkelijker te maken om de bedoeling van de velden te zien, kunt u er tekstlabels met een duidelijke omschrijving aan toevoegen. Hiervoor gebruikt u het widget <guilabel
1870
>Voeg drie tekstlabelwidgets toe in het formulier, en zet ze aan de linker kant van de tekstvelden (of aan de rechter kant als u de indeling rechts-naar-links gebruikt). Bij het invoegen van een nieuw label verschijnt er een tekstcursor op de locatie waar u de gewenste titel in kunt voeren. Voer achtereenvolgens: <replaceable
1873
>Achternaam</replaceable
1875
>Straat</replaceable
1877
>Huisnummer</replaceable
1879
>Plaats</replaceable
1880
> in. Bovendien voegt u, aan de bovenkant van het formulier, nog een label in met de naam van het formulier, &ie; <replaceable
1881
>Personen</replaceable
1882
>. Vergroot de afmeting van dit label en vergroot de grootte van het lettertype met <guilabel
1883
>Lettertype</guilabel
1884
> in het tabblad <guilabel
1885
>Eigenschappen</guilabel
1893
>Een Actie is één handeling in de toepassing die de gebruiker kan uitvoeren. De handeling kan ook automatisch uitgevoerd worden als reactie op een bepaalde gebeurtenis, (⪚ na het openen van een formulier). </para>
1894
<sect3 id="assigning-actions-to-form-buttons"
1896
>Acties aan knoppen toewijzen</title
1899
>Er kunnen allerlei acties aan knoppen toegewezen worden. De toegewezen actie wordt uitgevoerd nadat er op de knop is geklikt. </para>
1901
>Een actie toewijzen: </para>
1905
>Schakel over naar de Ontwerpweergave als u dat nog niet had gedaan.</para
1909
>Selecteer de bestaande knopwidget door er op te klikken of zet een nieuw knopwidget op het formulier. Als u een nieuwe knop invoegt, voer zijn titel in en druk op de &Enter;-toets.</para
1913
>Klik op de knopwidget met de rechter muisknop om het contextmenu te tonen.</para
1918
>Actie toewijzen...</guilabel
1919
> in het contextmenu.</para
1923
>Het dialoogvenster <guilabel
1924
>Actie toewijzen aan opdrachtknop</guilabel
1925
> wordt geopend, hierin staat een lijst met beschikbare acties. Als er een actie aan de widget is toegewezen, is deze geselecteerd. Anders is in de keuzelijst <guilabel
1926
>Actiecategorie</guilabel
1927
> het item <guilabel
1928
>Geen actie</guilabel
1929
> geselecteerd.</para
1933
>Selecteer het item <guilabel
1934
>Toepassingsacties</guilabel
1935
> in de lijst <guilabel
1936
>Actiecategorie</guilabel
1937
>. Er verschijnt een lijst met alle beschikbare acties in de toepassing.</para
1941
>Kies één van de acties uit de lijst (⪚ <guilabel
1942
>Geselecteerd object verwijderen</guilabel
1945
<!--dialog closes immediately after clicking an action in the list-->
1948
>Na omschakelen naar de gegevensweergave van het formulier kunt u kijken of de actie werkt. </para>
1954
>Om een toegewezen actie te verwijderen, kiest u het item <guilabel
1955
>Geen actie</guilabel
1956
> in de lijst <guilabel
1957
>Actiecategorie</guilabel
1958
> in het dialoogvenster <guilabel
1959
>Actie toewijzen aan knop</guilabel
1964
>Acties werken alleen in de gegevensweergave van een formulier. Niet alle toewijzingen van acties zijn zinvol. Bijvoorbeeld de actie <guilabel
1965
>Lettertype...</guilabel
1966
> is beschikbaar in de gegevensweergave, maar alleen als u een widget in de Ontwerpweergave hebt geselecteerd. Als u wijzigingen doet aan het lettertype dan worden de wijzigingen toegepast op de tekst van dat geselecteerde widget.</para
1973
<sect2 id="widget-layouts"
1975
>Widget-layouts</title
1978
>In veel gevallen moeten de widgets overzichtelijk geplaatst en uitgelijnd worden. U kunt de widgets handmatig verplaatsen, uitlijnen en van grootte veranderen, maar dit is arbeidsintensief. Wanneer een gebruiker de grootte van het formulier verandert, wordt geen rekening gehouden met de plaats van de widgets. Bovendien kunt u niet bepalen hoeveel ruimte een formulier nodig heeft, omdat gebruikers met andere schermindelingen en resoluties werken. </para>
1980
>Er is een speciaal hulpmiddel waarmee u de widgets op een formulier automatisch kunt indelen: widgets-layout. Hiermee kunt u twee of meer widgets groeperen, zodat deze op de juiste plaats staan en de juiste grootte hebben. </para>
1982
>Met layouts wordt het uitlijnen gemakkelijker, tekstvelden staan dichter bij elkaar en de afstand tussen de elementen is overal hetzelfde. </para>
1983
<!--FIXME not implemented in kexi 2.4
1985
>There are two methods to create widget layout.
1990
>Select two or more widgets that should be placed in a common layout, and select one of the layout types from the context menu item <guilabel
1991
>Layout Widgets</guilabel
1996
>Click a container widget (or a form surface itself), where widgets are inserted and select one of the layout types from the context menu item <guilabel
1997
>Layout Widgets</guilabel
1998
>. All widgets existing within the container or within the form, being on the same level will be put into a single common layout.</para
2002
>In each of these cases you can also use <menuchoice
2006
>Layout Widgets</guimenuitem
2011
>Widget layout is presented in the design view using a blue, green or red box drawn with a broken line. This line is displayed only in the form's design view.
2014
>Besides the grid type, there are other widget layout types.
2019
><emphasis role="bold"
2024
>Vertical widget layout</para>
2029
><emphasis role="bold"
2030
>horizontal</emphasis
2034
>Horizontal widget layout</para>
2038
<sect3 id="springs-in-widget-layouts"
2040
>Springs in widget layouts</title
2043
>A spring in widget layouts is a special, invisible element allowing to adjust widget's position and size within layouts. Such a spring stretches or squeezes a widget on the right, top, bottom or left hand, so it can have desired size and position.
2051
>Select spring icon on the <guilabel
2057
>Click on a selected point of the form to insert the spring.</para
2061
>To make springs work you need to create a global widget layout, &ie; a layout for the form itself. Then, springs can use edges of the form as a boundary for expanding.
2064
<sect3 id="removing-widget-layouts"
2066
>Removing widget layouts</title
2069
>To remove widget layout without removing widgets, perform one of these actions:
2074
>Click with the right mouse button on the layout's border and select <guilabel
2075
>Break Layout</guilabel
2076
> command from the context menu.</para
2080
>Click with the left mouse button on the layout's border and select <menuchoice
2084
>Break Layout</guimenuitem
2086
> menu command.</para
2092
>Removing widget layout using the Break Layout command will not remove widgets contained in the layout. If you want to remove the widgets as well, just select the layout by clicking on its border and press <keycap
2094
> key or use <menuchoice
2098
>Delete</guimenuitem
2100
> menu command or context menu command.</para
2105
<sect3 id="size-policies-for-widgets-within-a-layout"
2107
>Variabele afmetingen van widgets in een layout</title
2110
>U kunt de elementen een vaste grootte geven, maar in &kexi; kunt u ook kiezen uit verscheidene andere manieren om de grootte van elementen in te stellen. Variabele afmetingen bieden een flexibele methode om te bepalen hoeveel een element uitgerekt (of samengedrukt) wordt, afhankelijk van naastgelegen elementen en de beschikbare ruimte op het formulier. </para>
2112
>Na het invoegen van widgets op een regel zal deze van grootte veranderen om de zichtbare tekst te laten passen. </para>
2115
>Eigenschappenbewerker</guilabel
2116
> kunt u voor elk element de variabele afmetingen instellen. Deze instellingen staan bij elkaar in de groep eigenschappen <guilabel
2117
>Variabele afmetingen</guilabel
2120
>Deze groep eigenschappen bevat: </para>
2124
><emphasis role="bold"
2125
>Horizontaal variabel afmetingen</emphasis
2129
>bepalen de horizontale grootte van het widget,</para>
2134
><emphasis role="bold"
2135
>Verticaal variabele afmetingen</emphasis
2139
>bepalen de verticale grootte van het widget,</para>
2144
><emphasis role="bold"
2145
>Horizontaal uitrekken</emphasis
2149
>bepaalt de mate waarin de Horizontaal variabele afmetingen beïnvloed worden,</para>
2154
><emphasis role="bold"
2155
>Verticaal uitrekken</emphasis
2159
>bepaalt de mate waarin de Verticaal variabele afmetingen beïnvloed worden</para>
2164
<sect3 id="values-of-size-policies"
2166
>Waarden van variabele afmetingen</title
2169
>De volgende waarden zijn beschikbaar in de keuzelijst bij <guilabel
2170
>Hor. var. afm.</guilabel
2172
>Vert. var. afm.</guilabel
2174
>Eigenschappenbewerker</interface
2179
><emphasis role="bold"
2184
>deze waarde betekent dat de afmetingen van het widget niet automatisch gewijzigd kunnen worden; de afmetingen (breedte of hoogte), die tijdens het ontwerpen gedefinieerd zijn, blijven behouden,</para>
2189
><emphasis role="bold"
2194
>deze waarde betekent dat de oorspronkelijke grootte van het widget als minimale grootte wordt ingesteld, de afmetingen voldoen en het is niet nodig om het widget groter te maken, maar zodra het nodig is, wordt het widget groter gemaakt. Dit type van variabele afmetingen kan worden gebruikt om het widget tot de totale breedte of hoogte te vergroten, in het bijzonder als u de uitrekwaarde op groter dan 0 instelt.</para>
2199
><emphasis role="bold"
2204
>deze waarde betekent dat de oorspronkelijke grootte van het widget als maximale grootte wordt ingesteld en dat het widget kleiner gemaakt kan worden, zonder dat het onbruikbaar of onleesbaar wordt, als andere widgets meer ruimte nodig hebben,</para>
2209
><emphasis role="bold"
2214
>deze waarde betekent dat de oorspronkelijke grootte van het widget het beste is en de voorkeur heeft; het widget kan echter groter of kleiner gemaakt worden en het zal leesbaar blijven,</para>
2219
><emphasis role="bold"
2220
>Toenemend</emphasis
2224
>deze waarde betekent dat de oorspronkelijke grootte van het widget redelijk is, maar het widget kan kleiner gemaakt worden; het kan ook zo groter gemaakt worden om zo veel mogelijk ruimte in te nemen,</para>
2229
><emphasis role="bold"
2230
>Minimum toenemend</emphasis
2234
>deze waarde betekent dat de oorspronkelijke grootte van het widget toegestaan is; het kan groter gemaakt worden om zo veel mogelijk ruimte in te nemen,</para>
2239
><emphasis role="bold"
2240
>Genegeerd</emphasis
2244
>deze waarde betekent dat de oorspronkelijke grootte van het widget genegeerd wordt; het widget kan groter gemaakt worden om zo veel mogelijk ruimte in te nemen, maar andere widgets maken dat gewoonlijk niet mogelijk</para>
2249
>Verschillende typen widgets hebben ook verschillende standaarden voor de variabele afmetingen; knoppen hebben bijvoorbeeld als standaard dat de variabele afmetingen ingesteld zijn op <guilabel
2251
> (in beide richtingen), terwijl voor tekstvakken de verticaal variabele afmetingen ingesteld zijn op <guilabel
2255
>De meestgebruikte variabele afmetingen zijn <guilabel
2263
<sect3 id="vertical-and-horizontal-stretch"
2265
>Verticaal en horizontaal uitrekken</title
2268
>De eigenschappen <guilabel
2269
>Vert. uitrekken</guilabel
2271
>Hor. uitrekken</guilabel
2272
> accepteren waarden die groter dan of gelijk aan 0 zijn (de waarde moet een geheel getal zijn). Met behulp van deze eigenschappen kunt u het gedrag van variabele afmetingen preciezer instellen. De standaardwaarden voor beide eigenschappen is 0. Een hogere waarde voor het uitrekken betekent dat het widget meer vergroot wordt dan widgets waarvoor een lagere waarde ingesteld is. </para>
2275
<!--FIXME No in master/2.4
2276
<sect2 id="setting-widgets-size-and-position-by-hand"
2278
>Setting widgets size and position by hand</title
2281
>In case when your form has no main layout set for auto-positioning and auto-resizing its widgets, you will probably want to modify the position and size of widgets so the form can look cleaner and be easier to use. The &kexi; form designer simplifies this task by offering the following groups of commands:
2286
>Adjusting sizes of selected widgets. The commands are available in the <menuchoice
2290
>Adjust Widgets Size</guimenuitem
2292
> submenu of the menubar and in the <guilabel
2293
>Adjust Widgets Size</guilabel
2294
> submenu of the context menu. The toolbar's drop down button <guilabel
2295
>Adjust Widgets Size</guilabel
2296
> is also available.</para
2302
>Aligning positions of the selected widgets. The commands are available in the <menuchoice
2306
>Align Widgets Position</guimenuitem
2308
> submenu of the menubar and in the <guilabel
2309
>Align Widgets Position</guilabel
2310
> submenu of the context menu. The toolbar's drop down button <guilabel
2311
>Align Widgets Position</guilabel
2312
> is also available.</para
2319
><emphasis role="bold"
2324
>The size of the selected widgets will be altered so each widget will be resized to its preferred size and its contents; for example, a text label's size will be changed to fit its text. The position of the widgets will not be changed.</para>
2329
><emphasis role="bold"
2334
>The size of the selected widgets will be altered so each widget's corner will be placed on the form's (or other container's) grid point. The widget's position can be slightly altered.</para>
2339
><emphasis role="bold"
2340
>To Shortest</emphasis
2344
>The height of the selected widgets will be altered so that each of them will have the same height as the shortest one. The position of the widgets will not be changed.</para>
2349
><emphasis role="bold"
2350
>To Tallest</emphasis
2354
>The height of the selected widgets will be altered so that each of them will have the same height as the tallest one. The position of the widgets will not be changed.</para>
2359
><emphasis role="bold"
2360
>To Narrowest</emphasis
2364
>The width of the selected widgets will be altered so that each of them will have the same height as the narrowest one. The position of the widgets will not be changed.</para>
2369
><emphasis role="bold"
2370
>To Widest</emphasis
2374
>The width of the selected widgets will be altered so that each of them will have the same height as the widest one. The position of the widgets will not be changed.</para>
2379
><emphasis role="bold"
2384
>All the selected widgets' left positions will be moved to the position of the leftmost widget's left edge.</para>
2389
><emphasis role="bold"
2394
>All the selected widgets' right positions will be moved to the position of the rightmost widget's right edge.</para>
2399
><emphasis role="bold"
2404
>All the selected widgets' top positions will be moved to the position of the uppermost widget's upper edge.</para>
2409
><emphasis role="bold"
2410
>To Bottom</emphasis
2414
>All the selected widgets' bottom positions will be moved to the position of the bottommost widget's bottom edge.</para>
2419
><emphasis role="bold"
2424
>All the selected widgets' top-left corners will be moved so that they are positioned in the nearest grid point.</para>
2429
>None of the above commands resizes the widgets.
2432
>There are also additional commands available: <guilabel
2433
>Bring Widget to Front</guilabel
2434
> (&ie; above all other widgets) and <guilabel
2435
>Send Widget to Back</guilabel
2436
> (&ie; below all other widgets). These two commands are rarely used, as it is not common to place one widget on top of an other (except when a container widget contains other widget inside). Also note that clicking a widget with a mouse button is enough to bring the widget to front.
2439
<sect2 id="setting-the-tab-order"
2441
>Setting the tab order</title
2444
>A widget's focus determines that widget's activity available using keyboard. Focus is related to widgets displayed in the form's data view. Exactly one form widget can have focus at the same time. The most frequent use of focus is text entry (when a given text field is active, &ie; it is focused). An other example is a button widget - when focused, it is possible to “press” it using the &Enter; or <keycap
2446
> key instead of a mouse button.
2449
>There are a few methods of making the widgets active (moving the focus to the widget): clicking with a mouse button, rotating the mouse wheel over the widget, or using the 	 key. The latter method is often used because of its speed and convenience for users. Availability of the focusing methods is controlled by <guilabel
2450
>Focus Policy</guilabel
2451
> property of a given widget.
2454
>There is a relationship between focusing (activating) widgets using 	 key and tab order setting of a form. After pressing the 	 key, the next widget should be focused, so the form should know about the tab order.
2457
>To alter tab order for a form's widget:
2462
>Switch to design view of the form.</para
2466
>Execute <menuchoice
2470
>Edit Tab Order...</guimenuitem
2472
> menu command. The <guilabel
2473
>Edit Tab Order</guilabel
2474
> dialog will appear with settings for this form.The window contains a list with two columns: the first column displays widget names, the second - types of the widgets. To make it easier to recognize meaning of the names and types for the user, icons related to the types are also displayed. The list contains only widgets having focus policy allowing to use the 	 key. The window allows you to change the tab order or set the automatic tab order.</para
2478
>To change tab order, either:<itemizedlist>
2481
>Click a selected widget name in the widgets list and drag it to a desired position (up or down) using the mouse.</para
2485
>Click a selected widget name on the widgets list and use <guilabel
2488
>Move Down</guilabel
2489
> buttons, to move the widgets to a desired position.</para
2493
>Click the <guilabel
2494
>Handle tab order automatically</guilabel
2495
> check box to set the automatic tab order for the form. If this option has been switched on, any changes made to the list of widgets by hand are not taken into account - &kexi; will be handling the tab orders on its own. The automatic ordering means that the top-left widget will be focused first (or the top-right if your operating system uses right-to-left layout), and the order comes from the left to right (from the right to left, respectively) and from the top to bottom.</para
2502
>Click the <guilabel
2504
> button to accept the changes or <guilabel
2506
> button to dismiss the changes.
2511
<sect1 id="entering-data-using-forms"
2513
>Gegevens in formulieren invoeren</title
2516
>Het is de taak van de gebruiker van de database om gegevens in te voeren en te bewerken. Het is de taak van de ontwerper om te controleren of de gegevensinvoer en weergave naar verwachting werkt. </para>
2518
>Schakel over naar de gegevensweergave om het formulier te testen. De gegevens van één rij (record) uit de database worden in de velden weergegeven. U kunt naar een ander veld navigeren door er met de linker muisknop op de klikken of door op de 	- en <keycombo
2519
>&Shift;	</keycombo
2520
>-toetsen te drukken. Als u de inhoud van een veld bewerkt drukt u op <keycombo
2521
>&Shift; &Enter;</keycombo
2522
> of klikt u op <guilabel
2523
>Record opslaan</guilabel
2524
> op de werkbalk om de gewijzigde rij op te slaan. Klik op <guilabel
2525
>Wijzigingen in record annuleren</guilabel
2526
> op de werkbalk om de oorspronkelijke inhoud weer terug te zetten. U kunt met de knoppen in de recordnavigator naar andere rijen navigeren. De knoppen van de recordnavigator werken hetzelfde als die in de gegevensweergave van een tabel. </para>
2529
<chapter id="configuring-kexi"
2531
>Kexi instellen</title
2536
><link linkend="docking-and-undocking-side-panels"
2537
>Zijpanelen vastzetten en losmaken</link
2541
<sect1 id="docking-and-undocking-side-panels"
2543
>Panelen vastzetten en losmaken</title
2546
>De panelen <guilabel
2547
>Projectnavigator</guilabel
2549
>Eigenschappenbewerker</guilabel
2550
> kunnen op twee manieren losgemaakt worden: </para>
2554
>Dubbelklik op het handvat bovenin het paneel; of</para
2558
>één keer klikken op de diamantknop bovenaan het paneel naast de x.</para
2562
>Losgemaakte panelen kunnen weer vastgezet worden in het hoofdvenster op de volgende manieren: </para>
2566
>Dubbelklik op het handvat bovenin het venster; of</para
2570
>één keer klikken op de diamantknop bovenaan het paneel naast de x.</para
2576
>Bij het losmaken van een paneel herinnert &kexi; de laatste vaste positie zodat bij het vastzetten van het paneel, het weer op locatie gezet wordt waar het het laatst werd vastgezet.</para
2581
<chapter id="command-reference"
2583
>De commando's</title
2588
><link linkend="the-kexi-tab"
2589
>Het tabblad Kexi</link
2594
><link linkend="the-create-tab"
2595
>Het tabblad Aanmaken</link
2600
><link linkend="the-data-tab"
2601
>Het tabblad Gegevens</link
2606
><link linkend="the-external-data-tab"
2607
>Het tabblad Externe gegevens</link
2612
><link linkend="the-tools-tab"
2613
>Het tabblad Hulpmiddelen</link
2618
><link linkend="the-form-design-tab"
2619
>Het tabblad Formulierontwerp</link
2624
><link linkend="the-report-design-tab"
2625
>Het tabblad Rapportontwerp</link
2629
<sect1 id="the-kexi-tab"
2631
>Het tabblad Kexi</title
2639
<imagedata fileref="kexi_kexi_tab.png" format="PNG"/>
2649
>Het tabblad &kexi; is de plaats waar u interactie hebt met de projecten van &kexi;. </para>
2651
>Een actie selecteren zal een scherm direct naast het menu openen, die opties biedt over de door u te kiezen actie. </para>
2653
>De geboden opties zijn: </para>
2657
><emphasis role="bold"
2664
>Hier kunt u een project selecteren waaraan u recent hebt gewerkt.</para>
2669
><emphasis role="bold"
2676
>Hier kunt u een &kexi;-project openen dat ofwel in een bestand is opgeslagen of in een databaseserver.</para>
2681
><emphasis role="bold"
2688
>Deze actie sluit het nu geopende &kexi; project.</para>
2693
><emphasis role="bold"
2700
>Hier kunt u de assistent volgen om een nieuw &kexi; project te openen.</para>
2705
><emphasis role="bold"
2707
>Importeren, exporteren of verzenden...</guilabel
2712
>Hier kunt u de assistent volgen om bestaande gegevens in het nu geopende &kexi; project te importeren.</para>
2717
><emphasis role="bold"
2719
>Afsluiten</guilabel
2724
>Sluit &kexi;.</para>
2729
<sect1 id="the-create-tab"
2731
>Het tabblad Aanmaken</title
2739
<imagedata fileref="kexi_create_tab.png" format="PNG"/>
2749
>Met het tabblad <guilabel
2751
> kunt u objecten aanmaken die zullen worden toegevoegd aan uw project. </para>
2755
><emphasis role="bold"
2764
> selecteren neemt u mee naar de tabelontwerper in de ontwerpweergave om u in staat te stellen velddefinities aan uw tabel toe te voegen.</para>
2769
><emphasis role="bold"
2778
> selecteren neemt u mee naar de query-ontwerper in de ontwerpweergave om u in staat te stellen een Query te ontwerpen om eigen resultaten uit uw tabellen in uw project te halen.</para>
2783
><emphasis role="bold"
2785
>Formulier</guilabel
2791
>Formulier</guilabel
2792
> selecteren neemt u mee naar het formulierontwerp in de ontwerpweergave om u in staat te stellen widgets aan uw formulier toe te voegen.</para>
2797
><emphasis role="bold"
2806
> selecteren neemt u mee naar de rapportontwerper in de ontwerpweergave om u in staat te stellen widgets aan uw rapport toe te voegen.</para>
2811
><emphasis role="bold"
2820
> selecteren neemt u mee naar de scriptbewerker om u in staat te stellen eigen code aan uw project en/of objecten toe te voegen.</para>
2825
<sect1 id="the-data-tab"
2827
>Het tabblad Gegevens</title
2835
<imagedata fileref="kexi_data_tab.png" format="PNG"/>
2845
>Vanuit het tabblad <guilabel
2847
> kunt u gegevens in uw tabellen of widgets in uw objecten (formulieren, rapporten, etc) manipuleren </para>
2851
><emphasis role="bold"
2860
> plaatst de gegevens / het widget op het klembord en verwijdert het uit zijn huidige positie.</para>
2865
><emphasis role="bold"
2874
> plaatst de gegevens / het widget op het klembord zonder het uit zijn huidige positie te verwijderen.</para>
2879
><emphasis role="bold"
2888
> plaatst de gegevens/het widget op het klembord naar de tabel/het object.</para>
2893
><emphasis role="bold"
2895
>Plakken speciaal</guilabel
2901
>Plakken speciaal</guilabel
2902
> wordt gebruikt om willekeurige gegevens op het klembord in een tabel te plaatsen, op een nanier die is te voorspellen zodat het op de juiste wijze wordt toegevoegd volgens de definitie van de tabel.</para>
2907
><emphasis role="bold"
2916
> opent de zoekdialoog om naar specifieke tekst in de gegevens in de database te zoeken.</para>
2921
<sect1 id="the-external-data-tab"
2923
>Het tabblad Externe gegevens</title
2931
<imagedata fileref="kexi_external_data_tab.png" format="PNG"/>
2941
>Vanaf het tabblad Externe gegevens kunt u gegevens uit andere bronnen in uw &kexi; project importeren. </para>
2945
><emphasis role="bold"
2947
>Gegevens uit bestand importeren</guilabel
2953
>Gegevens uit bestand importeren</guilabel
2954
>, toont een dialoog die u in staat stelt om gegevens uit CSV- of platte tekst bestanden naar een nieuwe tabel in uw project te importeren.</para>
2959
><emphasis role="bold"
2961
>Tabellen importeren</guilabel
2967
>Tabellen importeren</guilabel
2968
>, opent de <guilabel
2969
>Assistent voor Tabellen importeren</guilabel
2970
> die u in staat stelt om gegevens te importeren uit een <filename
2978
>-bestand of uit een andere databaseserver, naar een nieuwe tabel in uw project.</para>
2983
><emphasis role="bold"
2985
>Gegevens naar bestand exporteren</guilabel
2991
>Gegevens naar bestand exporteren</guilabel
2992
>, toont een dialoog die u in staat stelt om de huidige gegevens in tabellen naar een platte tekst of CSV-bestand te exporteren.</para>
2999
>De tabel moet open zijn, om in staat te zijn er gegevens uit te exporteren naar een bestand.</para
3003
<sect1 id="the-tools-tab"
3005
>Het tabblad Hulpmiddelen</title
3013
<imagedata fileref="kexi_tools_tab.png" format="PNG"/>
3023
>Vanuit het tabblad <guilabel
3024
>Hulpmiddelen</guilabel
3025
> kunt u uw projecten manupileren. </para>
3027
<!--FIXME no aktion Import Database in the toolbar in kexi 2.7 here
3030
><emphasis role="bold"
3032
>Import Database</guilabel
3038
>Import Database</guilabel
3039
>, opens the <guilabel
3040
>Database Importing Wizard</guilabel
3041
> that allows to import complete data from an <filename
3043
> file or another database server.</para>
3049
><emphasis role="bold"
3051
>Database comprimeren</guilabel
3057
>Database comprimeren</guilabel
3058
>, controleert op kleine fouten in de database en reduceert de grootte van de database.</para>
3065
>U zou regelmatig uw database moeten opslaan om het in goede vorm te houden, speciaal na grote bewerkingen op records (massale toevoegingen, verwijderingen)</para
3069
<sect1 id="the-form-design-tab"
3071
>Het tabblad Formulierontwerp</title
3079
<imagedata fileref="kexi_form_design_tab.png" format="PNG"/>
3089
>Vanui het tabblad <guilabel
3090
>Formulierontwerp</guilabel
3091
> kunt u widgets selecteren om aan uw formulier toe te voegen. </para>
3095
><emphasis role="bold"
3097
>Aanwijzer</guilabel
3103
>Aanwijzer</guilabel
3104
>, schakelt naar de selectiemodus van widgets.</para>
3111
>Na de selectie van een widget, wordt overgeschakeld naar de toevoegingsmodus van een widget. Daarna kunt u overal klikken op het formulier om het widget te plaatsen.</para
3117
><emphasis role="bold"
3126
>-widget toont voorgedefinieerde informatie op een formulier. Gewoonlijk wordt het gebruikt als tekst naast andere widgets met gegevens.</para>
3131
><emphasis role="bold"
3140
> is een container die één regel met gegevens uit uw tabel bevat.</para>
3145
><emphasis role="bold"
3147
>Teksteditor</guilabel
3153
>Teksteditor</guilabel
3154
> is een container die meerdere regels voor gegevens uit uw tabel kan bevatten.</para>
3159
><emphasis role="bold"
3161
>Keuzelijst</guilabel
3168
> toont een lijst van opties om uit te kiezen.</para>
3173
><emphasis role="bold"
3175
>Keuzevakje</guilabel
3181
>Keuzevakje</guilabel
3182
> bevat twee of drie toestanden van gegevens (⪚ aan/uit)</para>
3187
><emphasis role="bold"
3189
>Afbeeldingsvak</guilabel
3195
>Afbeeldingsvak</guilabel
3196
> bevat een afbeelding, gebonden aan een veld in een tabel.</para>
3201
><emphasis role="bold"
3210
> stelt u in staat uit te voeren acties te definiëren bij het erop klikken.</para>
3215
><emphasis role="bold"
3224
> wordt gebruikt als een container voor andere widgets.</para>
3229
><emphasis role="bold"
3231
>Groepsvak</guilabel
3237
>Groepsvak</guilabel
3238
> wordt gebruikt om andere widgets te groeperen en hun status te besturen.</para>
3243
><emphasis role="bold"
3245
>Tabwidget</guilabel
3251
>Tabbladwidget</guilabel
3252
> wordt gebruikt als een container voor andere widgets en kan vele pagina's bevatten met verschillende widgets.</para>
3257
><emphasis role="bold"
3266
> wordt gebruikt als een logische scheideng tussen verschillende delen van een formulier.</para>
3271
><emphasis role="bold"
3273
>Webbrowser</guilabel
3279
>Webbrowser</guilabel
3280
> is een widget die u in staat stelt een webpagina in het formulier te tonen.</para>
3282
<!--FIXME missing Map Browser + Slider + Progress Bar + Link Button + Date Picker-->
3286
><emphasis role="bold"
3288
>Actie toewijzen</guilabel
3294
>Actie toekennen</guilabel
3295
> wordt gebruikt om een uit te voeren actie toe te kennen wanneer er een gebeurtenis plaatsvindt (⪚ klikken op een knop).</para>
3300
<sect1 id="the-report-design-tab"
3302
>Het tabblad Rapportontwerp</title
3310
<imagedata fileref="kexi_report_design_tab.png" format="PNG"/>
3320
>vanuit het tabblad <guilabel
3321
>Rapportontwerp</guilabel
3322
> kunt u widgets selecteren om toe te voegen aan uw rapport. </para>
3326
><emphasis role="bold"
3335
>-widget toont voorgedefinieerde informatie op een rapport. Gewoonlijk wordt het gebruikt als tekst naast andere widgets met gegevens.</para>
3340
><emphasis role="bold"
3349
>-widget is een container die één regel met gegevens uit uw tabel bevat.</para>
3354
><emphasis role="bold"
3363
>-widget is een container die meerdere regels voor gegevens uit uw tabel kan bevatten.</para>
3368
><emphasis role="bold"
3370
>Afbeelding</guilabel
3376
>Afbeelding</guilabel
3377
>-widget bevat een afbeelding, gebonden aan een veld in een tabel.</para>
3382
><emphasis role="bold"
3390
>Keuzevakje</guilabel
3391
>-widget bevat twee of drie toestanden van gegevens (⪚ aan/uit)</para>
3396
><emphasis role="bold"
3405
> wordt gebruikt als een logische scheideng tussen verschillende delen van een formulier.</para>
3408
<!--FIXME no Shape in 2.7
3411
><emphasis role="bold"
3418
> widget is used to add special shape visuals to your report.</para>
3424
><emphasis role="bold"
3431
>-widget wordt gebruikt om een visuele representatie van uw gegevens presenteert in een grafiek.</para>
3436
><emphasis role="bold"
3443
>-widget wordt gebruikt om een minimale webbrowsercomponent te bieden en informatie af te drukken uit een lokale of website op afstand in een rapport.</para>
3445
<!--FIXME missing Map-->
3449
><emphasis role="bold"
3456
>-widget wordt gebruikt om een af te drukken barcode te maken in een rapport, uit gegevens in een veld.</para>
3462
<chapter id="appendix-a--introduction-to-databases"
3464
>Appendix A. Introductie tot databases</title
3469
><link linkend="what-is-a-database"
3470
>Wat is een database?</link
3475
><link linkend="database-and-spreadsheet"
3476
>Database and rekenblad</link
3481
><link linkend="database-design"
3482
>Database-ontwerp</link
3487
><link linkend="who-needs-a-database"
3488
>Wie heeft een database nodig?</link
3493
><link linkend="database-creation-software"
3494
>Software voor het maken van databases</link
3498
<sect1 id="what-is-a-database"
3500
>Wat is een database?</title
3503
>Een database kan gedefinieerd worden als een verzameling gegevens over één onderwerp. Deze is zo georganiseerd dat men gemakkelijk naar informatie kan zoeken, wijzigingen kan maken en nieuwe items toe kan voegen. </para>
3505
>Bekijk het onderstaande diagram voor één van de bovenstaande voorbeelden: een telefoonboek. </para>
3513
<imagedata fileref="contact-example.png" format="PNG"/>
3524
>In de bovenstaande afbeelding ziet u de gegevens van twee contacten, elk op een aparte kaart. Een kaart kan ook een enkele rij in een tabel voorstellen. </para>
3529
>De tabel "Contacten"</emphasis
3552
>699 23 43 12</para>
3570
>Termen en definities: Een enkel gegeven dat deel uitmaakt van een grotere verzameling kan een <emphasis
3572
> of meer professioneel een <emphasis
3574
> genoemd worden. De verzameling wordt gewoonlijk een <emphasis
3576
> genoemd. Een logische naam voor de tabel beschrijft de gegevens die erin opgeslagen zijn, in dit geval is dat Contacten. Verder bestaat elke rij in de tabel uit kolommen, ook wel <emphasis
3578
> genoemd. In de tabel <replaceable
3579
>Contacten</replaceable
3580
> zijn er twee kolommen (velden): <guilabel
3583
>Telefoonnummer</guilabel
3586
>Voor eenvoudig gebruik kan een database uit een enkele tabel bestaan. Vaak worden deze twee ook als gelijkwaardig gezien. Zoals u zult zien, gebruiken we voor echte databases gewoonlijk meer dan één tabel. </para>
3588
>Kortom, u hebt al een eenvoudige database met één tabel <replaceable
3589
>Contacten</replaceable
3594
>Bekijk de inhoud op <ulink url="https://www.zoho.com/creator/database-software-vs-spreadsheet.html"
3600
<sect1 id="database-and-spreadsheet"
3602
>Database en spreadsheet (rekenblad)</title
3605
>Hoogstwaarschijnlijk hebt u al spreadsheet-toepassingen gebruikt, zoals <guilabel
3606
>Calligra Sheets</guilabel
3608
>LibreOffice Calc</guilabel
3610
>&Microsoft; Excel</guilabel
3611
>. In dat geval vraagt u zich misschien af: spreadsheets en databases hebben allebei tabellen, waarom zou ik de laatste gebruiken? </para>
3613
>Bij het vergelijken van spreadsheets en databases kunt u de volgende punten tegenkomen die later gedetailleerder ter sprake komen. </para>
3614
<sect2 id="how-is-a-database-different-from-a-spreadsheet"
3616
>Waarin verschilt een database van een spreadsheet?</title
3619
>Om de capaciteit groter dan die van een mobiele telefoon te maken, voegt u een kolom (veld) <replaceable
3621
> aan de tabel <replaceable
3622
>Contacten</replaceable
3623
> toe. Voeg voor iedere persoon meer telefoonnummers (werk, thuis) toe en voeg achternamen aan namen toe. Om het eenvoudiger te maken nemen we het volgende aan: </para>
3627
>De tabel is beperkt tot twee personen (in een echte database kunnen dat er honderden of duizenden zijn)</para
3631
>Er zijn geen twee personen met dezelfde naam en achternaam</para
3638
>De tabel "Contacten"</emphasis
3645
>Naam en achternaam</guilabel
3665
>699 23 43 12</para>
3669
>Western Gate 1, Warsaw</para>
3675
>Adam Willson</para>
3679
>711 19 77 21</para>
3683
>London, Frogs Drive 5</para>
3693
>110 98 98 00</para>
3697
>Western Gate 1</para>
3707
>312 43 42 22</para>
3711
>Warsaw, Western Gate 1</para>
3717
>ADAM Willson</para>
3721
>231 83 02 04</para>
3725
>Frogs Drive 5, London</para
3733
>Zo'n tabel kan zowel in een spreadsheet als in een database gemaakt worden. In een spreadsheet is dat natuurlijk gemakkelijk te doen. Welk probleem komen we op dit punt tegen? </para>
3735
<sect2 id="referential-data-integrity"
3737
>Integriteit van referentiegegevens</title
3740
>Veronderstel dat u een spreadsheet gebruikt en dat u het adres van ten minste één persoon moet veranderen. Er is een klein probleem: u moet het adres vaak in veel rijen veranderen. Joan staat bijvoorbeeld op drie rijen. Er ontstaat een echt probleem als u vergeet om het adres in één van de rijen te veranderen - het adres dat bij deze persoon hoort, is dubbelzinnig, hierdoor verliezen uw gegevens hun integriteit. </para>
3742
>Bovendien is er geen eenvoudige manier om een persoon uit de tabel te verwijderen, omdat u eraan moet denken dat alle rijen met betrekking tot die persoon verwijderd moeten worden. </para>
3744
<sect2 id="data-redundancy"
3746
>Dubbele gegevens</title
3749
>Dit houdt direct verband met het vorige probleem. In de velden Naam en achternaam en Adres zijn dezelfde gegevens meerdere keren ingevoerd. Dit is typerend voor de manier waarop spreadsheets gegevens opslaan, de database wordt onnodig groot en vereist daardoor meer van de computer (meer te verwerken gegevens vereisen meer tijd). </para>
3751
>Hoe kunt u deze problemen met behulp van een database oplossen? U kunt de informatie in kleinere stukken opsplitsen door een aanvullende tabel <replaceable
3752
>Personen</replaceable
3753
> aan te maken, deze tabel heeft slechts twee kolommen: <replaceable
3754
>Naam en achternaam</replaceable
3762
>De tabel Personen</emphasis
3769
>Naam en achternaam</guilabel
3785
>Western Gate 1, Warsaw</para>
3791
>Adam Willson</para>
3795
>Frogs Drive 5, London</para
3803
>Elke rij in de tabel <replaceable
3804
>Personen</replaceable
3805
> komt overeen met een enkele persoon. De tabel <replaceable
3806
>Contacten</replaceable
3807
> is vanaf nu een relatie naar de tabel <replaceable
3808
>Personen</replaceable
3811
<sect2 id="data-integrity-and-validity"
3813
>Integriteit en geldigheid van gegevens</title
3816
>Let op de manier waarop gegevens in de velden <replaceable
3817
>Naam en achternaam</replaceable
3820
> zijn ingevuld. Mensen die gegevens intypen kunnen fouten maken en soms slordig zijn. In ons voorbeeld hebben we namen in verschillende volgordes en vormen (Joan Smith en Smith Joan; Adam en ADAM) en ook verschillende manieren om hetzelfde adres in te typen. Er zijn vast nog meer verschillende manieren te bedenken. </para>
3822
>Het bovenstaande laat zien dat, wanneer u ⪚ het telefoonnummer van een persoon met het adres <quote
3823
>Western Gate 1, Warsaw</quote
3824
> zoekt, u niet alle resultaten ziet. U krijgt slechts één rij te zien in plaats van drie. Ook vindt u niet alle telefoonnummers voor <quote
3826
> in het veld <replaceable
3827
>Naam en achternaam</replaceable
3830
> niet hetzelfde is als <quote
3834
>Hoe kunt u deze problemen oplossen door een database te gebruiken? U kunt dit doen door het ontwerp van de tabel <replaceable
3835
>Personen</replaceable
3836
> te veranderen: </para>
3840
>Splits de gegevens in het veld <guilabel
3841
>Naam en achternaam</guilabel
3842
> in twee aparte velden: <replaceable
3845
>Achternaam</replaceable
3850
>Splits de gegevens in het veld <replaceable
3852
> in drie aparte velden: <replaceable
3853
>Straat</replaceable
3855
>Huisnummer</replaceable
3857
>Plaats</replaceable
3862
>Geldigheid van gegevens garanderen: door er zeker van te zijn dat er geen lege velden zijn, u moet ⪚ altijd een huisnummer invullen.</para
3866
>Een gewijzigde tabel ziet er ongeveer zo uit: </para>
3871
>De tabel Personen</emphasis
3882
>Achternaam</guilabel
3890
>Huisnummer</guilabel
3910
>Western Gate</para>
3947
>Voorwaarden</emphasis
3954
>vereist veld</para>
3958
>vereist veld</para>
3962
>vereist veld</para>
3966
>vereist veld</para>
3978
>Dankzij het introduceren van de voorwaarde vereist veld kunnen we er zeker van zijn dat ingevulde gegevens compleet zijn. Bij andere tabellen kunt u natuurlijk toestaan dat bepaalde velden leeg blijven. </para>
3980
<sect2 id="limiting-data-view"
3982
>Beperking van gegevensweergave</title
3985
>Een spreadsheet geeft alle rijen en kolommen van de tabel weer, wat lastig kan zijn als er veel gegevens zijn. U kunt in spreadsheets natuurlijk rijen filteren en sorteren, maar dat vereist extra voorzichtigheid. Wanneer u een spreadsheet gebruikt, loopt u het risico dat u vergeet dat de gegevens gefilterd zijn, wat tot vergissingen kan leiden. Bij het berekenen van totalen kunt u denken dat u 100 rijen met gegevens hebt, terwijl er nog 20 extra rijen verborgen zijn. </para>
3987
>Als u met een klein gedeelte van de gegevens wilt werken, ⪚ om deze gegevens door een ander te laten bewerken, kunt u deze naar een ander spreadsheet kopiëren en, nadat ze bewerkt zijn weer terugkopiëren. Deze <quote
3989
> bewerking kan echter de oorzaak zijn van gegevensverlies of van onjuiste berekeningen. </para>
3991
>Om de zichtbaarheid van gegevens te beperken, kunnen database-toepassingen query's, formulieren en rapporten maken. </para>
3993
>Een praktische manier om de gegevens te beperken is de volgende uitgebreide versie van de eerder beschreven tabel <replaceable
3994
>Personen</replaceable
4000
>De tabel Personen</emphasis
4011
>Achternaam</guilabel
4019
>Huisnummer</guilabel
4043
>Western Gate</para>
4089
>We nemen aan dat de nieuwe kolom Inkomen vertrouwelijke gegevens bevat. Hoe kunt u informatie over de personen door uw medewerkers laten inzien, zonder de inkomens bekend te maken? Dit is mogelijk als u ze alleen een query en niet de gehele tabel geeft. De query kan alle kolommen behalve Inkomen selecteren. In de wereld van de database staat zo'n query ook bekend als weergave (view). </para>
4091
<sect2 id="performance-and-capacity"
4093
>Prestatie en capaciteit</title
4096
>U werkt waarschijnlijk met een vrij snelle computer, maar u zult ook inzien dat dat bij grote, logge spreadsheets niet echt helpt. Het gebrek aan efficiëntie wordt ten eerst veroorzaakt door het ontbreken van indexen die het zoekproces versnellen (databases hebben die wel). Ook het gebruik van een klembord om gegevens te kopiëren kan na verloop van tijd lastig worden. </para>
4098
>Het duurt lang om spreadsheets die veel gegevens bevatten te openen. Een spreadsheet laadt heel veel gegevens in het computergeheugen. De meeste van deze gegevens hebt u waarschijnlijk niet direct nodig. Databases laden, in tegenstelling tot spreadsheets, de gegevens alleen wanneer ze nodig zijn. </para>
4100
>In de meeste gevallen hoeft u er niet om te denken hoe de database de gegevens opslaat. Dit betekent dat het volgende voor databases, in tegenstelling tot spreadsheets, niet uitmaakt: </para>
4104
>De volgorde van de rijen, u kunt deze immers veranderen als dat nodig is. Bovendien kunt u dezelfde gegevens in andere volgorden in meer weergaven tegelijk zien.</para
4108
>Hetzelfde geldt voor de kolommen (velden) in de tabel.</para
4112
>Samen met <link linkend="limiting-data-view"
4113
>Beperking van gegevensweergave</link
4114
> beschreven in het vorige gedeelte, bepalen deze eigenschappen de voordelen van databases. </para>
4116
<sect2 id="data-entry"
4118
>Gegevensinvoer</title
4121
>De nieuwere versies van toepassingen om spreadsheets te creëren bieden de mogelijkheid om formulieren voor gegevensinvoer te ontwerpen. Zulke formulieren zijn nuttig als de gegevens niet gemakkelijk in een tabel getoond kunnen worden, ⪚ omdat de tekst te lang is of omdat niet alle kolommen op het scherm passen. </para>
4123
>In dit geval is de manier waarop de spreadsheet werkt problematisch. Velden voor gegevensinvoer worden her en der in de spreadsheet geplaatst en zijn vaak niet beschermd tegen (bedoelde of onbedoelde) bewerking door andere gebruikers. </para>
4130
>In databases kunnen gegevens gegroepeerd, beperkt en verzameld worden in de vorm van een rapport. Spreadsheets worden gewoonlijk in de vorm van kleine tabellen afgedrukt zonder volledige automatische controle over de verdeling van de pagina's en de indeling van de velden. </para>
4132
<sect2 id="programming"
4134
>Programmeren</title
4137
>Toepassingen voor het creëren van databases beschikken vaak over volwaardige programmeertalen. Nieuwere spreadsheets hebben deze mogelijk ook, maar berekeningen worden nog steeds gedaan door het wijzigen van de velden en het kopiëren van gegevens, zonder rekening te houden met de eerder genoemde regels voor relevantie en integriteit. </para>
4139
>In een spreadsheet worden de gegevens gewoonlijk in een grafische gebruikersinterface verwerkt, waardoor de snelheid achteruit kan gaan. Databases kunnen in de achtergrond werken, buiten de grafische interface om. </para>
4141
<sect2 id="multiuse"
4143
>Gebruik door meer personen tegelijk</title
4146
>Het is moeilijk om met meer personen tegelijk aan een spreadsheet te werken. Zelfs als het technisch mogelijk is, zoals bij de nieuwste toepassingen, dan vereist het nog een hoge mate van discipline, aandacht en kennis van de gebruikers; en deze eigenschappen kunnen niet gegarandeerd worden. </para>
4148
>Een klassieke manier om gegevens in een spreadsheet met anderen te delen is: het gehele bestand versturen (gewoonlijk per email) of het bestand op een netwerk opslaan. Deze manier van werken is niet effectief voor grote groepen - gegevens die op een bepaalde tijd nodig zijn, kunnen geblokkeerd zijn doordat iemand anders eraan werkt. </para>
4150
>Databases zijn juist ontworpen om de gegevens voor meer personen tegelijk toegankelijk te maken. Zelfs in de eenvoudigste versies kunnen rijen in een bepaalde tabel geblokkeerd worden, waardoor de tabelgegevens gemakkelijk gedeeld kunnen worden. </para>
4152
<sect2 id="security"
4157
>Het beveiligen van een spreadsheet of bepaalde delen ervan met een wachtwoord is vaak niet meer dan symbolisch. Nadat een spreadsheet op een computernetwerk opgeslagen is, kan iedereen die het bestand kan kopiëren ook proberen het wachtwoord te achterhalen. Dit is vaak niet eens moeilijk als het wachtwoord in hetzelfde bestand als de spreadsheet opgeslagen is. </para>
4159
>Functies om het bewerken of het kopiëren van een spreadsheet (of een deel ervan) te blokkeren, zijn eveneens gemakkelijk te kraken. </para>
4161
>Databases (behalve die in een bestand opgeslagen zijn in plaats van op een server) hoeven niet als een enkel bestand beschikbaar te zijn. U krijgt toegang tot een database via een computernetwerk, gewoonlijk moet u een gebruikersnaam een een wachtwoord opgeven. U krijgt alleen toegang tot de delen (tabellen, formulieren of zelfs alleen bepaalde rijen en kolommen) die aan u toegewezen zijn door het instellen van toegangsrechten. </para>
4163
>Toegangsrechten bepalen of gegevens bewerkt of alleen gelezen kunnen worden. Als bepaalde gegevens niet voor u beschikbaar zijn, worden die ook niet naar uw computer gestuurd, er is dan ook geen mogelijkheid om de gegevens zo gemakkelijk te kopiëren, zoals dat wel bij spreadsheets kan. </para>
4166
<sect1 id="database-design"
4168
>Database-ontwerp</title
4171
>Over het ontwerpen van een database moet zorgvuldig nagedacht worden. U kunt waarschijnlijk wel inzien dat het wijzigen van de tabellen van <replaceable
4172
>Personen</replaceable
4173
>, zoals voorgesteld werd in hoofdstuk <link linkend="data-integrity-and-validity"
4174
>Integriteit en geldigheid van gegevens</link
4175
>, problemen kan opleveren als de tabel veel gegevens bevat. Bijvoorbeeld: een veld hernoemen is gemakkelijk, maar het splitsen van het veld <guilabel
4177
> in aparte velden is lastig werk en vereist veel aandacht. </para>
4179
>Om zulke situaties te vermijden moet u nadenken over uw databaseproject voordat u het daadwerkelijk op de computer creëert en voordat anderen het gaan gebruiken. Door in het begin wat meer tijd te investeren, kunt u later vrijwel zeker veel tijd bij uw dagelijks werk besparen. </para>
4181
<sect1 id="who-needs-a-database"
4183
>Wie heeft een database nodig?</title
4185
<sect2 id="stick-to-spreadsheets-if-"
4187
>Gebruik een spreadsheet als:</title
4192
>u de uitgebreide mogelijkheden niet nodig hebt en als de hoeveelheid gegevens niet steeds groter wordt (maar kunt u dat met zekerheid voorspellen?)</para
4196
>u niet in staat bent om de methodes om een database te maken te leren. U zou er dan over kunnen denken om deze taak uit te besteden of om eenvoudigere hulpmiddelen te gebruiken.</para
4200
>u ingewikkelde spreadsheets gebruikt en het ontbreekt u aan tijd of geld om over te schakelen naar databases. Bedenk of dit geen doodlopende weg is. Reken niet op magische hulpmiddelen die uw spreadsheet (hoe goed ontworpen ook) in een database veranderen.</para
4204
<sect2 id="consider-using-databases-if-"
4206
>Overweeg om databases te gebruiken als:</title
4211
>uw verzameling gegevens met de week groeit.</para
4215
>u vaak nieuwe spreadsheets maakt, tussen spreadsheets heen en weer kopieert, en het gevoel krijgt dat het werk steeds lastiger wordt. In dit geval wordt de moeite van het overschakelen snel terugverdiend.</para
4219
>u rapporten en overzichten maakt waarvoor de tabelweergave van een spreadsheet niet geschikt is. U kunt overwegen om over te schakelen naar een database met formulierweergaven.</para
4224
<sect1 id="database-creation-software"
4226
>Software voor het maken van databases</title
4229
>Tot nu toe hebt u iets geleerd over de algemene eigenschappen van databases zonder details over specifieke toepassingen om ze te ontwerpen. </para>
4231
>De eerste databases zijn tegelijk met grote mainframes in de jaren 60 gebouwd, ⪚ IBM System/360. Dat was voordat de pc's hun intrede deden. Deze databases werden onderhouden door gespecialiseerd personeel. Hoewel de hardware van die computers onberekenbaar was, ze erg langzaam waren en weinig opslagruimte hadden, blijft één van de eigenschappen van de databases ook nu nog een aantrekkelijk voordeel: veel gebruikers kunnen tegelijkertijd toegang tot de gegevens hebben via een netwerk. </para>
4233
>In de jaren 70 ontwikkelden wetenschappers de theorie van relationele databases (termen zoals: tabel, record, veld, relationeel en vele anderen). Op basis van deze theorie zijn de IBM DB2 en Oracle-databases gecreëerd, die verder ontwikkeld werden en nog steeds gebruikt worden. Aan het einde van de jaren 70 kwamen de eerste pc's op de markt. Hun gebruikers konden langzaamaan steeds meer verschillende toepassingen gebruiken, ook die voor het creëren van databases. </para>
4235
>Voor grote databases van bedrijven is de situatie niet veranderd: ze hebben nog steeds krachtige computers of aan elkaar geschakelde computers, clusters genoemd, nodig. Dit valt echter buiten het bereik van dit handboek. </para>
4237
>Op het gebied van <quote
4238
>toegankelijke</quote
4239
> databases met een grafische gebruikersinterface voor pc's kunt u kiezen uit de volgende mogelijkheden: </para>
4243
><ulink url="http://www.dbase.com"
4245
> - een hulpmiddel om databases te beheren voor DOS, populair in de jaren 80. Bestanden in DBase-formaat worden nog steeds in speciale gevallen gebruikt omdat hun structuur zo eenvoudig is.</para
4249
><ulink url="http://msdn.microsoft.com/vfoxpro/"
4251
> - een toepassing die op DBase lijkt (begin jaren 90). Na de overname door Microsoft werd er een grafische gebruikersinterface aan toegevoegd, sinds die tijd werd het gebruikt om databases op pc's te creëren. Het product is nog steeds op de markt, hoewel het een beetje verouderd lijkt.</para
4255
><ulink url="http://office.microsoft.com/access/"
4256
>Microsoft Access</ulink
4257
> - een toepassing voor databases (gegevens en ontwerpen van grafische interfaces) met veel vereenvoudigingen en daarom geschikt voor beginners, ontworpen eind jaren 80, gebaseerd op 16-bits architectuur. Dit is ook nu nog op de markt en wordt nog veel gebruikt, vooral door kleine bedrijven waar efficiëntie en de toegang van meer gebruikers tegelijk niet zo belangrijk zijn.</para
4261
><ulink url="http://www.filemaker.com"
4263
> - een populaire toepassing die wel wat op MS Access lijkt wat betreft eenvoud, draait op Windows en Macintosh platforms, op de markt sinds 1985.</para
4267
><ulink url="http://www.calligra-suite.org/kexi"
4269
> - een toepassing voor meerdere platforms (&UNIX;/&Linux;, Windows, &MacOS; X) ontworpen in 2003, ontwikkeld volgens Open Source principes, onderdeel van de globale KDE gemeenschap, doe onder andere dingen levert als een grafische omgeving voor &UNIX;/&Linux; systemen. Een belangrijke bijdrage aan de ontwikkeling van Kexi is het bedrijf OpenOffice Poland.</para
4274
<chapter id="appendix-b--comparing-kexi-to-other-database-applications"
4276
>Appendix B. Kexi vergelijken met andere database-toepassingen</title
4281
><link linkend="data-types"
4282
>Gegevenstypen</link
4286
<sect1 id="data-types"
4288
>Gegevenstypen</title
4291
>Hoewel verschillende database-toepassingen gelijksoortige functies hebben, gebruiken ze vaak andere termen. Om het u gemakkelijk te maken vindt u hier een overzicht van de terminologie in &kexi; en de corresponderende termen die in andere database-toepassingen gebruikt worden. Dit hoofdstuk kan nuttig zijn bij de migratie van databases van de ene toepassing naar een andere. </para>
4293
>De tabel hieronder laat zien hoe de gegevenstypen in &kexi; corresponderen met gegevenstypen in andere database-toepassingen. </para>
4295
>Sommige van de gegevenstypen zijn subtypen van andere typen. Het type <guilabel
4296
>Lange tekst</guilabel
4297
> is bijvoorbeeld een subtype van het type <guilabel
4299
>. Als u een subtype in &kexi; wilt gebruiken, moet het bijbehorende basistype (in dit geval Tekst) in het tabelontwerp kiezen en daarna het subtype kiezen bij de instelling <guilabel
4302
>Eigenschappenbewerker</guilabel
4308
>Vergelijking van de gegevenstypen in Kexi en in andere database-toepassingen.</emphasis
4317
>MS Access</guilabel
4321
>dBase/FoxPro</guilabel
4333
>Tekst (Text)</para>
4345
>Alfanumeriek</para>
4351
>Lange tekst (Long text)</para>
4369
>Datum/Tijd (Date/Time)</para>
4387
>Heel getal (Integer Number)</para>
4391
>Getal (Integer)</para>
4405
>Groot heel getal (Big Integer Number)</para>
4409
>Long Integer</para>
4417
>Long Integer</para>
4423
>Drijvende kommagetal (Floating Point Number)</para>
4427
>Enkele/dubbele precisiegetal</para>
4444
<chapter id="reserved-words-for-sql"
4446
>Appendix C. Voor SQL gereserveerde woorden</title
4449
>De volgende lijsten bevatten woorden die intern door &kexi; worden gebruikt bij het werken met gegevensbronnen. </para>
4453
>Bij het ontwerpen van uw database zou uw best moeten doen om het gebruikt van deze gereserveerde woorden te vermijden omdat u anders problemen kunt krijgen met uw databasebestand of deze zelfs kunt beschadigen.</para
4459
>Als u ze toch gereserveerde woorden wilt gebruiken omsluit ze dan met dubbele aanhalingstekens <quote
4464
<sect1 id="kexi-sql-reserved-words"
4466
>Voor Kexi-SQL gereserveerde woorden</title
4469
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik in Kexi-SQL: </para>
4697
<sect1 id="kexi-sqlite-driver-reserved-words"
4699
>Voor Kexi-SQLite Driver gereserveerde woorden</title
4702
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-SQLite Driver: </para>
4806
<sect1 id="kexi-mysql-driver-reserved-words"
4808
>Voor Kexi-MySQL Driver gereserveerde woorden</title
4811
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-MySQL Driver: </para>
4847
>AUTO_INCREMENT</para
4855
>AVG_ROW_LENGTH</para
4995
>CURRENT_TIMESTAMP</para
5027
>DAY_MICROSECOND</para
5055
>DELAY_KEY_WRITE</para
5219
>GEOMETRYCOLLECTION</para
5251
>HIGH_PRIORITY</para
5263
>HOUR_MICROSECOND</para
5303
>INSERT_METHOD</para
5391
>LOCALTIMESTAMP</para
5427
>MASTER_CONNECT_RETRY</para
5435
>MASTER_LOG_FILE</para
5439
>MASTER_LOG_POS</para
5443
>MASTER_PASSWORD</para
5451
>MASTER_SERVER_ID</para
5459
>MASTER_SSL_CA</para
5463
>MASTER_SSL_CAPATH</para
5467
>MASTER_SSL_CERT</para
5471
>MASTER_SSL_CIPHER</para
5475
>MASTER_SSL_KEY</para
5483
>MAX_CONNECTIONS_PER_HOUR</para
5487
>MAX_QUERIES_PER_HOUR</para
5495
>MAX_UPDATES_PER_HOUR</para
5527
>MINUTE_MICROSECOND</para
5531
>MINUTE_SECOND</para
5555
>MULTILINESTRING</para
5603
>NO_WRITE_TO_BINLOG</para
5711
>RAID_CHUNKSIZE</para
5731
>RELAY_LOG_FILE</para
5735
>RELAY_LOG_POS</para
5811
>SECOND_MICROSECOND</para
5875
>SQL_BIG_RESULT</para
5879
>SQL_BUFFER_RESULT</para
5887
>SQL_CALC_FOUND_ROWS</para
5895
>SQL_SMALL_RESULT</para
5927
>STRAIGHT_JOIN</para
6035
>USER_RESOURCES</para
6051
>UTC_TIMESTAMP</para
6111
<sect1 id="kexi-postgresql-driver-reserved-words"
6113
>Voor Kexi-PostgreSQL Driver gereserveerde woorden</title
6116
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-pqxx Driver: </para>
6176
>AUTHORIZATION</para
6228
>CHARACTERISTICS</para
6296
>CURRENT_TIMESTAMP</para
6572
>LOCALTIMESTAMP</para
7040
<sect1 id="kexi-oracle-driver-reserved-words"
7042
>Voor Kexi-Oracle Driver gereserveerde woorden</title
7045
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-Oracle Driver: </para>
7073
>AUTHORIZATION</para
7381
>MAXLOGHISTORY</para
7385
>MAXLOGMEMBERS</para
7737
<sect1 id="kexi-sybase-driver-reserved-words"
7739
>Voor Kexi-Sybase Driver gereserveerde woorden</title
7742
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-Sybase Driver: </para>
7778
>AUTOINCREMENT</para
7786
>AVG_ROW_LENGTH</para
7926
>CURRENT_TIMESTAMP</para
7958
>DAY_MICROSECOND</para
7986
>DELAY_KEY_WRITE</para
8150
>GEOMETRYCOLLECTION</para
8182
>HIGH_PRIORITY</para
8194
>HOUR_MICROSECOND</para
8234
>INSERT_METHOD</para
8322
>LOCALTIMESTAMP</para
8358
>MASTER_CONNECT_RETRY</para
8366
>MASTER_LOG_FILE</para
8370
>MASTER_LOG_POS</para
8374
>MASTER_PASSWORD</para
8382
>MASTER_SERVER_ID</para
8390
>MASTER_SSL_CA</para
8394
>MASTER_SSL_CAPATH</para
8398
>MASTER_SSL_CERT</para
8402
>MASTER_SSL_CIPHER</para
8406
>MASTER_SSL_KEY</para
8414
>MAX_CONNECTIONS_PER_HOUR</para
8418
>MAX_QUERIES_PER_HOUR</para
8426
>MAX_UPDATES_PER_HOUR</para
8458
>MINUTE_MICROSECOND</para
8462
>MINUTE_SECOND</para
8486
>MULTILINESTRING</para
8534
>NO_WRITE_TO_BINLOG</para
8642
>RAID_CHUNKSIZE</para
8662
>RELAY_LOG_FILE</para
8666
>RELAY_LOG_POS</para
8742
>SECOND_MICROSECOND</para
8806
>SQL_BIG_RESULT</para
8810
>SQL_BUFFER_RESULT</para
8818
>SQL_CALC_FOUND_ROWS</para
8826
>SQL_SMALL_RESULT</para
8858
>STRAIGHT_JOIN</para
8966
>USER_RESOURCES</para
8982
>UTC_TIMESTAMP</para
9042
<sect1 id="kexi-xbase-driver-reserved-words"
9044
>Voor Kexi-xBase Driver gereserveerde woorden</title
9047
>Deze lijst bevat sleutelwoorden die zijn gereserveerd voor gebruik door de Kexi-xBase Driver: </para>
9153
>Gereserveerde woorden worden voor elke driver gescheiden gehouden zodat ze ook als referentie kunnen worden gebruikt.</para
9158
<chapter id="supported-file-formats"
9160
>Appendix D. Ondersteunde bestandsformaten</title
9162
<sect1 id="comma-separated-values-format-csv"
9164
>Formaat komma-gescheiden waarden (CSV)</title
9167
>&kexi; is is staat om gegevens te importeren en te exporteren van/naar een verscheidenheid of indelingen met komma-gescheiden waarden (CSV-bestanden). De meeste toepassingen voor rekenbladen en databases kunnen deze indeling importeren en exporteren, waarmee dit een toepasselijke indeling is om tekstuele gegevens tussen verschillende toepassingen uit te wisselen. </para>
9169
>&kexi; also ondersteunt een aantal opties die ingesteld kunnen worden voor het uitvoeren van de import: </para>
9173
>gegevenstype voor elke kolom,</para
9177
>andere tekens voor veldscheiding zoals tabs,</para
9181
>verschillende tekens rondom tekst,</para
9185
>aangegeven aantal records die overgeslagen kunnen worden, indien nodig,</para
9189
>dubbele scheidingstekens die overgeslagen kunnen worden,</para
9193
>waarden uit de eerste rij die gebruikt kunnen worden om kolomnamen in te stellen,</para
9197
>tekstcodering (UTF-8 is de standaard),</para
9201
>datumformaat (gedefinieerd door het besturingssysteem is de standaard),</para
9205
>vooraan en achteraan komende witruimte verwijderen van de teksten.</para
9209
>Toont bij importeren van &kexi; een voorbeeld van de geïmporteerde gegevens. De meest geschikte set opties wordt automatisch gedetecteerd door &kexi; gebaseerd op het geleverde CSV-bestand. </para>
9211
<sect1 id="microsoft-access-mdb-file-format"
9213
>Microsoft Access (MDB) bestandsformaat</title
9215
<sect2 id="overview"
9220
>Ondersteuning voor het importeren van <guilabel
9221
>Microsoft Access</guilabel
9222
> databases (2003 of ouder) is in &kexi; ingebouwd. <guilabel
9224
> databases kunnen alleen <emphasis
9225
>geïmporteerd</emphasis
9226
> worden in een &kexi; database. Het kan niet gebruikt worden om de database te bewerken of te exporteren naar een <guilabel
9228
> database. Het zou echter ook in staat moeten zijn om databases aangemaakt door andere toepassingen die de JET-database-engine gebruiken, te importeren. Importeren van <filename
9230
> databases geïntroduceerd in MS <guilabel
9232
> 2007 worden nu niet ondersteund. </para>
9234
>Om een database te importeren: </para>
9238
>Kies in het &kexi; menu het commando <guilabel
9239
>Importeren, exporteren of verzenden..</guilabel
9244
>Klik op de knop <guilabel
9245
>Database importeren</guilabel
9250
>Gebruik de importassitent door het gewenste .mdb-bestand te selecteren.</para
9254
<sect2 id="capabilities"
9259
>De importfunctie is met succes gebruikt om een <emphasis
9260
>Northwind</emphasis
9261
> database te importeren, goed bekend bij MS <guilabel
9263
> gebruikers. Veel andere <guilabel
9265
> sjabloondatabases kunnen ook worden geïmporteerd. </para>
9272
<imagedata fileref="kexi_northwind.png" format="PNG"/>
9282
<sect2 id="supported-features"
9284
>Ondersteunde functies</title
9287
>Importeren van de volgende veldtypen is getest en werkt in het algemeen goed: </para>
9299
>Gegevensvelden</para
9303
>Numerieke waarden</para
9307
<sect2 id="unsupported-features"
9309
>Niet ondersteunde functies</title
9312
>Op dit moment worden alleen tabellen geïmporteerd. Bij importeren slaat &kexi; de volgende objecten over: </para>
9332
>De volgenden zijn niet getest: </para>
9336
>Importeren van binaire objecten</para
9342
<chapter id="credits-and-license"
9344
>Dankbetuigingen en licentie</title
9347
>&kexi; Copyright 2002-2012 Het Kexi-team: </para>
9349
>Kexi-ontwikkelaars: </para>
9353
>Jaroslaw Staniek (staniek kde.org)</para
9357
>OpenOffice Polska, LLC (info openoffice.com.pl)</para
9361
>Lucijan Busch (lucijan kde.org)</para
9365
>Cedric Pasteur (cedric.pasteur free.fr)</para
9369
>Adam Pigg (adam piggz.fsnet.co.uk)</para
9373
>Martin Ellis (martin.ellis kdemail.net)</para
9377
>Sebastian Sauer (mail dipe.org)</para
9381
>Christian Nitschkowski (segfault_ii web.de)</para
9385
>Peter Simonsson (psn linux.se)</para
9389
>Joseph Wenninger (jowenn kde.org)</para
9393
>Seth Kurzenberg (seth cql.com)</para
9397
>Laurent Montel (montel kde.org)</para
9401
>Till Busch (till bux.at)</para
9405
>De documentatie is geschreven door Martin A. Ellis (martin.ellis kdemail.net), Jaroslaw Staniek (staniek kde.org) met bijdragen van Anne-Marie Mahfouf, Raphael Langerhorst, Michal Kubicki en Aron Stansvik. </para>
9407
>Dit programma is beschikbaar onder de licentie van de <ulink url="http://docs.kde.org/stable/common/lgpl-license.html"
9408
>GNU Lesser General Public License</ulink
9411
<!--userbase-content-->
9412
&meld.fouten;&vertaling.natalie;&vertaling.freek; &underFDL; </chapter>
9413
&documentation.index;