Korte beschrijving van het programma ChaF.

0. Inleiding

Programma ChaF, een acroniem voor CHAnge_Field, kan een willekeurig veld in alle geselecteerde personen of in alle geselecteerde relaties wijzigen. Door toepassing van de selectiemogelijkheden van PRO-GEN kunnen de te wijzigen personen of relaties worden aangegeven. Daarna kan een aan te geven veld in al deze personen of relaties worden gewijzigd via een van de uitvoermogelijkheden.

Om redenen van beveiliging is echter de mogelijkheid om een veld waarin een verwijzing staat (bijvoorbeeld naar een ouder) geblokkeerd. Verandering van dit type velden zal veelal resulteren in een onbruikbaar bestand.

1. Installatie

2. Starten van ChaF

ChaF is geïnstalleerd als een uitvoerprogramma, ondanks het feit dat het GEEN uitvoer maakt. Om ChaF te starten, kiest u een van de uitvoermenu's, "uitvoer gegevens personen", "uitvoer gegevens relaties", “stamreeks", "kwartierstaat", "genealogie" of parenteel". Na de selectie van de personen of relaties volgt het menu "instellingen".

Kies in dit menu voor "Soort uitvoer" de mogelijkheid "Tekstuitvoer en diversen". Kies vervolgens voor "uitvoerdefinitie" het programma ChaF. Deze keuze is door het installatieprogramma in het menu opgenomen.

In het menu getiteld "uitvoermenu" kiest u voor uitvoer naar het beeldscherm.

Vervolgens start programma ChaF.

3. Mogelijkheden

ChaF kan velden in alle type PRO-GEN bestanden wijzigen. Het kan dus ook wijzigingen aanbrengen in bijvoorbeeld een PRO-GEN bidprentjesbestand.

Echter de naam van het soort record, zoals 'persoon', 'relatie' of 'bidprentje', kan niet worden bepaald vanuit een VTX programma. Om die reden staat in alle (fout)meldingen van het programma 'persoon' of 'relatie',zelfs als een ander type record in het bestand staat. In de onderstaande beschrijving worden ook, voor de eenvoud, de termen 'persoon' en 'relatie' gebruikt.

ChaF kent drie mogelijke bronnen voor een nieuwe waarde. De eerste mogelijkheid is dat de nieuwe waarde via een menu wordt ingevoerd. Deze vaste (constante) waarde wordt gebruikt om in elk van de personen of relaties het veld te vullen.

De tweede mogelijkheid is dat de inhoud van een ander veld van dezelfde persoon of relatie wordt gebruikt. Dit is handig als men informatie binnen een persoon (of relatie) wilt verplaatsten. Zo kunnen bijvoorbeeld van alle geselecteerde personen het veld "Geboorte tekst" worden gekopieerd naar veld "Geboorte info". Tevens kan er voor worden gekozen om het gekopieerde veld te wissen.

De derde en laatste mogelijkheid is dat de waarde van een VTX expressie wordt gebruikt. Deze mogelijkheid kan gebruikt worden om bijvoorbeeld het volgnummer in een kwartierstaat op te nemen in het code-veld. Daarvoor kan de VTX functie NUMBER$ worden gebruikt.

De nieuwe waarde kan op drie manieren worden gebruikt om het veld te wijzigen. De eerste manier is dat de nieuwe waarde het veld overschrijft. De informatie die voorheen in dat veld stond is dan dus verloren gegaan.

Aangezien een veld ook overschreven mag worden met een lege waarde is het dus ook mogelijk om een veld te wissen.

De tweede mogelijkheid is dat niet het gehele veld, doch slechts een op te geven deeltekst wordt vervangen door een andere tekst. In dit geval wordt door ChaF een extra selectie uitgevoerd: het veld dient de te vervangen tekst te bevatten. Indien dit niet het geval is, wordt de betreffende persoon of relatie niet gewijzigd. Het zoeken naar deze tekst kan op twee manieren worden uitgevoerd: een hoofdletter en de overeenkomstige kleine letter kunnen al dan niet als gelijk worden opgevat.

In deze mogelijkheid kan gekozen worden tussen het vervangen van de alleen het eerste voorkomen van de opgegeven deeltekst, of het vervangen van alle voorkomens van de deeltekst.

De derde manier is dat de nieuwe waarde aan de oude waarde wordt toegevoegd, waarbij men kan kiezen of het er voor dan wel er achter wordt toegevoegd.

Tevens kan worden opgegeven of er een spatie moet worden tussengevoegd.

In elk van de drie voornoemde manieren kan worden opgegeven of de mutatiedatum, dat wil zeggen het veld "Persoon gewijzigd" of "Relatie gewijzigd", ook moet worden aangepast. Indien deze optie geactiveerd is, dan wordt in elk gewijzigd persoon of relatie de mutatiedatum gelijk gemaakt aan de huidige datum. Op deze wijze is aan de mutatiedatum te zien welke personen of relaties gewijzigd zijn. Indien ChaF gebruikt wordt om typefouten te herstellen of om het formaat van gegevens aan te passen, zal in het algemeen deze optie niet geactiveerd worden.

ChaF kent ook nog een veto optie. Indien deze optie geactiveerd is, wordt per wijziging een menu getoond waarin een identificatie van de persoon of relatie staat, de huidige (oude) waarde van het veld en de nieuwe waarde. Er kan dan gekozen worden of de betreffende wijziging moet worden aangebracht of niet. De veto optie wordt alleen geactiveerd als er daadwerkelijk iets gaat veranderen. Het kan dus gebeuren dat voor sommige records geen veto menu verschijnt, namelijk voor die records waarin niets gewijzigd is.

Behalve een Ja/Nee antwoord kan in het veto menu ook R worden ingevoerd: dit betekent dat voor de rest van de personen of relaties de veto-optie wordt uitgeschakeld, en dat in al die gevallen de wijziging wordt doorgevoerd.

Nadat een wijziging is aangebracht, controleert ChaF of de nieuwe waarde ook echt is opgeslagen. Indien het veld een maximale lengte heeft van 10 tekens, bijvoorbeeld een datumveld, en de opgegeven nieuwe waarde is een tekst met een grotere lengte, zal ChaF merken dat de nieuwe waarde na 10 tekens wordt afgebroken. Het is dan aan de gebruiker om te bepalen of ChaF door moet gaan, of dat het programma gestopt moet worden. In het laatste geval kan de waarde van het gewijzigde veld hersteld worden.

Het kan ook gebeuren, dat behalve de lengte ook de inhoud van het veld bij het teruglezen anders blijkt te zijn. De enige reden die ik kan bedenken is dat een tekst geschreven is in een getalveld. Daarom stopt ChaF in een dergelijk geval onconditioneel, nadat een foutmelding getoond is.

In ChaF is een controle opgenomen zodat het niet mogelijk is om wijzervelden te wijzigen. Dit type velden wordt door PRO-GEN bijgehouden, en indien een dergelijk veld door ChaF gewijzigd wordt, zal in het algemeen een onbruikbaar bestand ontstaan.

4. Beperkingen

Het programma kent een aantal beperkingen. Ten eerste kan ChaF alleen tekstvelden wijzigen, maar een getalveld kan worden gewijzigd door een decimaal getal in te voeren. Echter, indien er een syntactisch incorrecte waarde wordt opgegeven, zal de waarde op nul worden gezet, en zal er geen foutmelding worden gegenereerd.

De nieuwe waarde van een tekstveld, ingevoerd van het toetsenbord, kan maximaal 74 tekens lang zijn. Dit is een beperking van het menu-systeem in de VTX-taal.

5. Diversen

Programma ChaF mag vrijelijk worden gedistribueerd.

Het programma is redelijk getest en werkt voor zover ik weet correct. Maar het is en blijft een potentieel gevaarlijk programma. Zorg er daarom voor dat, voordat er met ChaF wijzigingen worden aangebracht, er een veiligheidskopie gemaakt is van het te wijzigen bestand.

Wim Nelis
Het Waterland 56
8302 XD Emmeloord
nelis@nlr.nl
0527 203172