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