Het werken met plug-ins

Plug-ins ››
Parent Previous Next

       wat is een plug-in?

       het uitvoeren van een plug-in


Wat is een plug-in?


Er is een mechanisme in GENEAAL ingebouwd om zelf functionaliteit aan GENEAAL toe te kunnen voegen. Dit mechanisme werkt als volgt.

De plugins zijn kleine programma's, geschreven in de taal PIPL (Plug-in Programming Language). De programma's kunnen gebruikmaken van de database van GENEAAL. Hiertoe zijn in de taal vele mogelijkheden ingebouwd.

Voor het ontwikkelen en compileren van de programma's, de plug-ins, is een speciale Plug-in Compiler beschikbaar. Deze vertaalt de plug-intekst, het PIPL-programma, naar een vorm die GENEAAL begrijpt. De gecompileerde plug-ins worden door Geneaal in gelezen en uitgevoerd.


N.B.        Plug-ins voor versie 8 werken alleen wanneer zij ook met de Plug-in Compiler voor versie 8 zijn aangemaakt! Plug-ins van vorige versies moeten eerst opnieuw door de compiler worden vertaald voordat zij bruikbaar zijn.


Bij versie 9 is een aantal plugins reeds bijgevoegd, o.a.:


naam plugin

functie

Achternamen

Maakt een lijst met achternamen in de geopende familie en het aantal malen dat de naam voorkomt.

Uitvoer in html.

Beeldengalerij

Er wordt een beeldengalerij gemaakt. In de beeldengalerij worden gekoppelde beelden van alle personen uit de geopende familie of uit de personenlijst opgenomen.

De uitvoer bestaat uit één of meer html-bestanden.

Bloedverwanten

Maakt een lijst van alle bloedverwanten van de huidige persoon tot en met de derde graad.

Uitvoer in html.

Diapresentatie

Maakt diapresentatie van alle beelden van de geopende familie.

InHetVerleden

Er wordt nagegaan wat er op een bepaalde datum aan gebeurtenissen heeft plaatsgevonden. De uitvoer is een html-bestand.

Kalender

Maakt kalender met geboortedata van (waarschijnlijk) levende personen in de geopende familie met een bepaalde familienaam. De familienamen worden aan de gebruiker gevraagd

Kwartierblad

Maakt een kwartierblad van de huidige persoon.

Uitvoer in html.

LeeftijdOverledenen

Er wordt staafdiagram gemaakt van leeftijdscategorieën van overleden waarvan de leeftijd exact bekend is. Er wordt gekeken naar alle personen uit de geopende familie of uit de personenlijst.

De uitvoer is een html-bestand.

PersonenTellen

Deze plugin telt van alle families de personen en relaties en geeft de resultaten in het vak Meldingen weer.

N.B. Dit tellen kan enige tijd duren !!

ZoekBeroep

Zoek in de huidige familie naar personen die een bepaald beroep uitoefenden.De gevonden personen worden in de personenlijst geplaatst.

De beroepen worden aan de gebruiker gevraagd (max. 5).

N.B. De personenlijst moet eerst worden leeggemaakt.

ZoekWoonplaats

Zoek in de huidige familie naar personen die in een bepaalde plaats woonden.De gevonden personen worden in de personenlijst geplaatst.

De plaatsen worden aan de gebruiker gevraagd (max. 5).

N.B. De personenlijst moet eerst worden leeggemaakt.

ZoekInOpmerkingen

Zoek in de huidige familie naar personen waarbij een bepaalde tekst in opmerkingen of referenties voorkomen. Bij het zoeken wordt alleen naar cijfers en letters gekeken.

De gevonden personen worden in de personenlijst geplaatst.

N.B. De personenlijst moet eerst worden leeggemaakt.

ZoekTitels

Zoek in de huidige familie naar personen die een titel hebben.De gevonden personen worden in de personenlijst geplaatst.

N.B. De personenlijst moet eerst worden leeggemaakt.

ZoekOntbrekendeAktes

Zoek in de huidige familie naar personen die geen geboorte- of overlijdensaktegegevens hebben. De gevonden personen worden in de personenlijst geplaatst.

N.B. De personenlijst moet eerst worden leeggemaakt.


Voor het programmeren en testen van een plugin wordt verwezen naar de help-informatie van de Plug-incompiler: help


Een voorbeeld van een programmatekst van een eenvoudige plug-in:


plugin PersonenTellen

description 'Deze plugin telt van alle families de personen en relaties \

en geeft de resultaten in het vak Meldingen weer.\n\

N.B. Dit tellen kan enige tijd duren !!'


globalvars

Famnr, AtlFams, TotaalAtlPers, AtlPers, TotaalAtlRels, AtlRels, PersNr: number;

p, r: number;

h: string;

main

if (AantalFamilies(AtlFams) = 0) or (AtlFams = 0) then Stop;


SchrijfNR(0);

Famnr := 1;

TotaalAtlPers := 0;

TotaalAtlRels := 0;

loop {langs de families}

 if (ConnectFamilie(FamNr, AtlPers) <> 0) and (AtlPers <> 0) then

  begin

   p := 0; {p telt werkelijke aantal personen in deze familie}

   AtlRels := 0; {telt aantal relaties in deze familie}

   loop {door de familie}

    stopif VolgendeFamPersoon(PersNr) = 0;

     p := p + 1;

     if PersoonAantalRels(PersNr, r) > 0 and r > 0 then

      AtlRels := AtlRels + r;

   endloop; {per persoon}

   NaamFamilie(FamNr, h);

   h := SubStr(h ++ '                       ', 1, 20);

   SchrijfTekst(0, h ++ ': ' ++ GetalNaarTekst(p, 0) ++ ' personen; ' ++

                        GetalNaarTekst(AtlRels, 0) ++ ' relaties');

   TotaalAtlPers := TotaalAtlPers + p;

   TotaalAtlRels := TotaalAtlRels + AtlRels;

  end;

 FamNr := FamNr + 1;

 stopif FamNr > AtlFams;

endloop; {per familie}


SchrijfNR(0);

SchrijfTekst(0, 'TOTAAL         : ' ++ GetalNaarTekst(TotaalAtlPers, 0) ++ ' personen; ' ++

                        GetalNaarTekst(TotaalAtlRels, 0) ++ ' relaties');

SchrijfNR(0);

endmain



Het uitvoeren van een plug-in

Voor het uitvoeren van een plug-in is er in het menu Extra de menustap Plug-ins of gebruik de knop: .


Hierna verschijnt het plug-inscherm:



Linksboven staan de bekende plug-ins, hieronder een scherm voor de beschrijving van de bovengekozen plug-in; en rechts een groot scherm voor de meldingen van de uitvoering van de gekozen plug-in


Er zijn de volgende knoppen:


dit is uitvoeringsknop: de plugin wordt gestart

met deze knop wordt het plug-inscherm gesloten

hiermee wordt de uitvoering afgebroken


Na het gebruik van de uitvoeringsknop, wordt in het vak Meldingen de voortgang bijgehouden:

Bovenvermelde plug-in (PersonenTellen) levert b.v. de volgende uitvoer:




De meeste plug-ins geven hun resultaat in de vorm van een webpagina, b.v. Kwartierblad: