De mogelijke functies bij een attribuut zijn afhankelijk van het soort veld. Er worden hier de volgende veldsoorten onderscheiden:
Soort : Ingaveveld
Bij een ingaveveld kan aangegeven zijn dat de door de gebruiker gedane ingave moet worden geverifieerd in een bestand, zoals landcodes of rayoncodes. In dat geval moet in het veld "functie" de naam van het opzoekbestand en het weer te geven veld opgegeven worden volgens het volgende formaat:
[bestandsnaam "xxx"(, bestandsnamen "xxx")], veldnummer (, veldnummers)
| Voorbeeld | Resultaat |
|---|---|
| [xxxF5A,ACCF5A],2 | In dit geval zal eerst gecontroleerd worden of het klantspecifieke bestand aanwezig is, anders wordt het algemene landcode bestand gebruikt. Vervolgens wordt het bestand gelezen met de ingave als sleutel en veld 2 weergegeven als het betreffende record bestaat. Bestaat het record niet en is het een verplicht veld, dan wordt de ingave niet geaccepteerd. |
| [TABEL "020"] | In dit geval wordt de ingave gezocht in de variabele tabel "020". Het woord 'TABEL' in dit commando geeft aan dat de gegevens uit een door u zelf gedefinieerde variabele tabel gelezen zullen worden. Bij een tabel is het niet nodig om de velden op te geven welke op het scherm moeten worden weergegeven, omdat het hier altijd gaat om veldnummer 3. |
Binnen relatiebeheer is het ook mogelijk om de informatie van een subscherm als tabel te gebruiken bij een weer nieuwe en andere ingave. Hierdoor wordt het ondermeer mogelijk om bijvoorbeeld de informatie uit het subscherm contactpersonen te gebruiken bij het vastleggen van afspraken in weer een ander agendascherm.
[AKBF82 "0019.00"],1,2
Bovenstaand commando geeft aan hoe de informatie uit een subscherm als tabel voor een nieuwe ingave gebruikt kan worden. De bestandsnaam 'AKBF82' geeft aan dat het de informatie van een subscherm betreft, terwijl "0019.00" het attribuutnummer voorstelt van het subscherm dat gelezen moet worden. In het voorbeeld wordt verder aangegeven dat naast de subsleutel de informatie uit de velden 1 en 2 in een venster aan de gebruiker moeten worden getoond.
Wanneer op een van de bovenstaande wijzen de ingave op een attribuut in een bestand kan worden geverifieerd, wordt in het onderhoudsprogramma automatisch de mogelijkheid geboden om met de info toets in een venster informatie op te vragen uit de betreffende tabel. De in de venster getoonde items kunnen daar door de gebruiker worden geselecteerd en worden meegenomen naar de ingave. Door in de functie gebruik te maken van de '-s' optie kan de informatie in een andere sortering aan de gebruiker worden getoond. De '-s' optie wordt gevolgd door het sorteerbestand met de gewenste sortering.
[AKBF86 -s AKBS86],7,2,3
Indien er meerdere sorteerbestanden aanwezig zijn, gerelateerd aan het hoofdbestand, dan kunt u met de optie ALL, ipv. het sorteerbestand in voorgaand voorbeeld AKBS86, aangeven dat alle gekoppelde sorteerbestanden opvraagbaar moeten zijn. Op het attribuutnummer 1, kan voorgaand voorbeeld als functie worden opgenomen om middels de vraagtekenfunctie informatie van aanwezige nummers te kunnen oproepen. Indien bij de koppeling met een andere module het relatienummer gelijk is aan het nummer wat gebruikt wordt die module) en er is een sorteerbestand, dan mag u ook dit externe bestand als zoekingang gebruiken.
Bij een ingave veld is het ook mogelijk dat de informatie die bij het attribuut wordt ingegeven, in een speciaal daarvoor geschreven CALL wordt gecontroleerd of bewerkt. De betreffende functionaliteit zal door een programmeur moeten worden ingebouwd.
CALL AKB85A
De CALL in het commando geeft aan dat het hier om een controle via een CALL. De naam AKB85A geeft de naam van het programma aan dat geCALLed dient te worden.
Het veld "functie" bevat ingeval de soort "berekend veld" is, de formule voor het te berekenen veld. In de formule kunnen constante waarden, attribuutnummers en/of labels opgegeven worden. De volgende bewerkingen zijn toegestaan:
Ook het gebruik van haakjes in berekeningen is toegestaan. Attributen die in de berekening gebruikt worden moeten tussen < en > geplaatst worden. Hierbij kan het attribuutnummer of -label worden opgegeven. Berekeningen worden door het systeem op twee decimalen nauwkeurig achter de komma afgerond. Houd hier bij de opbouw van de formule rekening mee. Hieronder een tweetal voorbeelden:
<910>-<911>
(<omzet>-<kostprijs>)*100/<omzet>
Een berekend veld mag zowel voor attributen op het basisscherm als voor attributen op het subscherm worden gedefinieerd. Tussen een berekend veld op het basisscherm en op een subscherm zijn echter wel een aantal verschillen in de manier van formuleren en de mogelijkheden.
Indien de soort wordt gedefinieerd als 'call', wordt het programma dat in de functie is gespecificeerd aangeroepen. Achter de programmanaam kunnen een of meer attribuutnummers opgegeven worden die als argument door het bewuste programma gebruikt worden. Door aanroep van een speciale call kan een DOS- of UNIX-applicatie, bv. WordPerfect , worden aangeroepen (vanzelfsprekend alleen op een DOS- dan wel UNIX-machine ! ) Hierbij kunnen ook enkele argumenten worden meegegeven.
| Doel | Opdrachtregel | ||||||
|---|---|---|---|---|---|---|---|
| DOS | |||||||
| Starten WP |
CALL AKB85E -P "NAW" -D \wp51\ <0001.00> -E "\wp51\wp
/m-macronaam" -T
| ||||||
| Starten WP | CALL AKB85E -E \wp51\wp | ||||||
| Starten DOS-applicatie (met parameters) | CALL AKB85E "\dir\bmpview \dir\ft <0001.00>.bmp" | ||||||
| UNIX | |||||||
| Starten WP met macro | CALL ALB85E -P "NAW" -D /usr/users/wp51 -E "/u1/wp51/wpbin/wp -m /u/macro | ||||||
Soort : Agendascherm of Subscherm
Bij het definieren van attributen als agenda- of subscherm kan worden opgegeven, dat er een extra sortering dient te komen, waarbij de laatst ingebrachte waarde (laatste datum of hoogste subnummer) als eerste in een opvraagscherm wordt getoond (historische velden). Bij de functie van het attribuut dient dan AFLOPEND te worden opgegeven.
| Doel | Opdracht |
|---|---|
| Spring naar attribuut nummer 0015.00 op voorwaarde 'ingave >=15' | [SPRING "0015.00"=>"15"] |
| Spring na invoer na scherm 3 op voorwaarde 'ingave >=15' | [SPRING "003"=> "15"] |
| Spring naar einde ingave op voorwaarde 'ingave is leeg' | [SPRING "EINDE"=" "] |
Bijvoorbeeld:
In alle andere gevallen wordt een hier opgegeven naam van een programma gebruiken om de weer te geven waarde te valideren en/of te formatteren. Dit is echter optioneel.