Deze lijst omvat een overzicht van alle interne veldnamen, veldtypen en maximale veldlengtes, welke gebruikt kunnen worden in een itemprofiel in JOIN Zaak & Document. Het overzicht geldt voor een Oracle database.
(Varchar = Variable Character Field)
Interne veldnaam | Veldtype | Maximale veldlengte | Bijzonderheid |
---|---|---|---|
SEQUENCE | Numeric | 6,0 | Volgnummerveld wordt automatisch aangemaakt |
MARK | Varchar | 250 | |
SUBJECT1 | Varchar | 250 | |
SUBJECT2 | Varchar | 250 | |
DOCUMENT_DATE | Datetime | 16 | |
RECIEVED_DATE | Datetime | 16 | |
PROCESSED | Character | 1 | |
COMPANY | Varchar | 250 | De koppelingsknop tussen documenten en adressen wordt altijd bij het COMPANY-veld geplaatst. |
MAILADDRESS | Varchar | 250 | COMPANY, MAILADDRESS, ZIPCODE en CITY worden gebruikt als adresgegevens. ZIPCODE is het postcodeveld. |
ZIPCODE | Varchar | 10 | |
CITY | Varchar | 250 | |
COUNTRY | Varchar | 20 | |
PHONE1 | Varchar | 20 | |
PHONE2 | Varchar | 20 | |
PHONE3 | Varchar | 20 | |
FAX1 | Varchar | 20 | |
FAX2 | Varchar | 20 | |
URL | Varchar | 250 | Alle gegevens beginnend met https://, wordt de inhoud van het veld herkend als internetadres. |
SALUTATION | Varchar | 250 | |
INITIALS | Varchar | 50 | |
SURNAME | Varchar | 250 | |
FIRSTNAME | Varchar | 50 | |
PREFIX | Varchar | 50 | |
TITLE | Varchar | 250 | |
FUNCTION | Varchar | 250 | |
DEPARTMENT | Varchar | 250 | |
SEX | Varchar | 8 | |
EMAIL1 | Varchar | 250 | Als één van de e-mailvelden een geldig e-mailadres bevat wordt er een mailto-link geplaatst. |
EMAIL2 | Varchar | 250 | |
EMAIL3 | Varchar | 250 | |
TEXT1 | Varchar | 250 | |
TEXT2 | Varchar | 250 | TEXT2 wordt standaard gebruikt als dossiernaam met een documentregistratie. De koppelingsknop voor dossiers wordt naast dit veld geplaatst. |
TEXT3 | Varchar | 250 | Voor adresprofielen kunnen TEXT3, TEXT4 & TEXT5 worden gebruikt als tweede adres, postcode en plaats (standaard bezoekadres). |
TEXT4 | Varchar | 250 | Voor adresprofielen wordt TEXT4 gekoppeld aan de postcodetabel. |
TEXT5 | Varchar | 250 | Voor adresprofielen wordt TEXT5 gebruikt als tweede plaatsnaam. |
TEXT6 | Varchar | 250 | |
TEXT7 | Varchar | 250 | |
TEXT8 | Varchar | 250 | |
TEXT9 | Varchar | 250 | |
DATE1 | Datetime | 16 | |
DATE2 | Datetime | 16 | |
DATE3 | Datetime | 16 | |
DATE4 | Datetime | 16 | |
DATE5 | Datetime | 16 | |
DATE6 | Datetime | 16 | |
DATE7 | Datetime | 16 | |
DATE8 | Datetime | 16 | |
NUM1 | Numeric | 12,2 | |
NUM2 | Numeric | 12,2 | |
NUM3 | Numeric | 12,2 | |
NUM4 | Numeric | 12,2 | |
NUM5 | Numeric | 12,2 | |
NUM6 | Numeric | 12,2 | |
BOL1 | Character | 1 | Character(1) velden worden gezien als Booleaanse velden (Ja/Nee-velden) in JOIN Zaak & Document. |
BOL2 | Character | 1 | |
BOL3 | Character | 1 | |
BOL4 | Character | 1 | |
BOL5 | Character | 1 | |
BOL6 | Character | 1 | |
BOL7 | Character | 1 | |
BOL8 | Character | 1 | |
BOL9 | Character | 1 | |
BOL10 | Character | 1 | |
ARCHIVED | Character | 1 | Dit veld wordt gebruikt om een registratie te archiveren |
MEMO | Text | NVT (Blob) | Uitgebreide Inhoud |
LEGALID | Numeric | 20 | ID-veld (bijv BSN) |
CONFIDENTIALITY | Text | 250 | Vastleggen van vertrouwelijkheid |
Bovenstaande datatypes zijn weergegeven zoals ze door JOIN Zaak & Document worden gebruikt in een SQL serverdatabase. Hieronder ziet u de corresponderende datatypes voor andere database-types:
SQL server | Oracle | MySQL | MS Acces | Informix | Omschrijving |
---|---|---|---|---|---|
Character | Character | Character | Text | Character | Tekstveld, vaste lengte |
Varchar | Varchar | Varchar | Text | Varchar | Tekstveld, variabele lengte |
Numeric | Numeric | Numeric | Number | Numeric | Numeriek veld |
Datetime | Date | Datetime | Date/Time | Date | Datum/tijd veld |
Text | Long Raw | Longblob | OLE | Text | Kan een grote hoeveelheid tekst bevatten |
MS Access ondersteunt geen fixed-length tekstvelden.
Macro | Omschrijving |
---|---|
FOFMON() | Vult de eerste dag van de huidige maand in. |
LOFMON() | Vult de laatste dag van de huidige maand in. |
FPRMON() | Vult de eerste dag van de vorige maand in. |
LPRMON() | Vult de laatste dag van de vorige maand in. |
FDAYWK() | Vult de eerste dag van de huidige werkweek in. |
LDAYWK() | Vult de laatste dag van de huidige werkweek in. |
FDAYPW() | Vult de eerste dag van de vorige werkweek in. |
LDAYPW() | Vult de laatste dag van de vorige werkweek in. |
FofQ() | Vult de eerste dag van dit kwartaal in. |
LofQ() | Vult de laatste dag van dit kwartaal in. |
FPrQ() | Vult de eerste dag van vorig kwartaal in. |
LPrQ() | Vult de laatste dag van vorig kwartaal in. |
FofY() | Vult de eerste dag van dit jaar in. |
LofY() | Vult de laatste dag van dit jaar in. |
FprY() | Vult de eerste dag van vorig jaar in. |
LprY() | Vult de laatste dag van vorig jaar in. |
De onderstaande macro’s worden door JOIN Zaak & Document herkend als u de macro-optie in de veldinstellingen van een itemprofiel hebt geactiveerd. Een macro wordt door JOIN Zaak & Document automatisch vervangen door een gegenereerde waarde als een nieuwe registratie wordt aangemaakt, een registratie (dossier, adres, contactpersoon) wordt gekoppeld, of wanneer een registratie wordt afgehandeld. Bekijk de noties bij de verschillende typen macro, om te zien wat de specifieke werking is.
Macro | Omschrijving |
---|---|
DATE() | Vult na het creëren van een nieuwe registratie de datum van vandaag in. |
DATE() + 5 | Vult na het creëren van een nieuwe registratie de datum, vijf dagen na vandaag in. |
NOW() | Vult na het creëren van een nieuwe registratie het huidige tijdstip in. |
NOW() + 5 | Vult na het creëren van een nieuwe registratie het tijdstip, vijf uur na het huidige tijdstip in. |
GLOBALNUM() | Vult na het creëren van een nieuwe registratie een globaal volgnummer in, dat uniek is over alle boeken. Deze macro kan niet gebruikt worden op het SEQUENCE-veld. Gebruik GLOBALNUM(REEKSNAAM) om meerdere globale reeksen, elk met hun eigen naam aan te maken. Vul in plaats van REEKSNAAM de gewenste naam in. |
%BEHANDELAAR% | Vult na het creëren van de registratie de volledige naam in van de aangemelde gebruiker. |
%USER% | Vult na het creëren van de registratie de volledige naam in van de aangemelde gebruiker. |
%USERTEL% | Vult na het creëren van de registratie het telefoonnummer (PHONE1) van de aangemelde gebruiker in. |
%USERFAX% | Vult na het creëren van de registratie het faxnummer (FAX1) in van de aangemelde gebruiker. |
%USERLOC% | Vult na het creëren van de registratie de afdeling (DEPARTMENT) in van de aangemelde gebruiker. |
%USER_[veldnaam]% | Vult na het creëren van de registratie de waarde van [veldnaam] in van de huidige gebruiker (bv. %USER_CITY%). |
De macro YEAR([macro]) om een bestaande datummacro heen, bijvoorbeeld YEAR(DATE()), vult alleen het jaar in. Voor GLOBALNUM() is een hernummertool beschikbaar om bestaande registraties die aan het profiel te voldoen van een globaal uniek nummer te voorzien.
Macro | Omschrijving |
---|---|
%ADDRES_[veldnaam]% | Waarde van [veldnaam] van het gekozen adres |
%FOLDER_[veldnaam]% | Waarde van [veldnaam] van het gekozen dossier |
%CONTACT_[veldnaam]% | Waarde van [veldnaam] van de gekozen contactpersoon |
%FOLDER_ITEM_APPLIES_TO% | Waarde van het ‘alleen zichtbaar voor’-veld |
%ADDRES_COMPANY% | Naam van het bedrijf van het gekoppelde adres |
%ADRESS_COUNTRY% | Land van het gekoppelde adres |
%FOLDER_SUBJECT1% | Omschrijving van het gekoppelde dossier |
%FOLDER_TAB% | Biedt in de documentregistratie na de keuze van een dossier de beschikbare tabbladen aan. |
%COBJECT_[veldnaam]% | Waarde van [veldnaam] van het gekoppeld object |
Als één of meer van deze macro’s zijn ingesteld, vervallen de “standaardmacro’s” na het invullen van een adres of van een contactpersoon:
Standaard worden na het kiezen van een adres de volgende velden ingevuld: COMPANY, MAILADDRESS, ZIPCODE, CITY, COUNTRY, PHONE1, FAX1 en TEXT2 (het TEXT2 veld wordt gekopieerd naar het TEXT1 veld van het document of dossier).
Standaard worden na het kiezen van een contactpersoon de volgende velden ingevuld: SURNAME, FIRSTNAME, PREFIX, INITIALS, SALUTATION, PHONE1, PHONE2, PHONE3, FAX1 en FAX2.
Standaard worden er geen gerelateerde velden van dossiers overgenomen.
Macro’s van het type %[macro]_[veldnaam]% zullen altijd actief worden bij het (her)koppelen van een registratie, maar kunnen daarna overschreven worden (tenzij voor het veld ‘alleen lezen’ is aangevinkt). Dit kan handig zijn, soms wil je een andere werking. Als slechts éénmaal de waarde opgehaald moet worden, gebruik dan een IF-macro (zie verderop). Als het gekoppelde veld altijd moet worden bijgewerkt bij wijzigingen, gebruik dan een DLOOKUP-macro. Deze wordt verderop ook beter uitgelegd.
De volgende macro’s worden alleen uitgevoerd, wanneer de huidige waarde van het veld nog leeg is. Bestaande data wordt dus niet overschreven!
Knop | Omschrijving |
---|---|
DATE(PROCESSED) | Vult na het afhandelen van de registratie de afhandeldatum in |
DESTROY(DATE1,TEXT2) | Vult na het afhandelen van de registratie de vernietigingsdatum in. De vernietigingsdatum wordt berekend door het aantal jaar, dat in het ‘TEXT2’ veld ingevuld is, op te tellen bij het DATE1 veld. De vernietigingsdatum is dan de eerstvolgende 1 januari hierna. Wordt bij het TEXT2 veld de tekst ‘permanent’ ingevuld, wordt de vernietigingsdatum ook ‘permanent’. De vernietigingsdatum kan alleen in een tekstveld worden gebruikt. |
De macro YEAR([macro]) om een bestaande datummacro heen, bijvoorbeeld YEAR(DATE(PROCESSED)), vult alleen het jaar in.
Macro | Omschrijving |
---|---|
SETINVISIBLE() | Wordt uitgevoerd bij het opslaan. Gebruiken in een BOL veld, maakt de registratie onzichtbaar voor andere gebruikers ongeacht hun rechten. |
ANSWERTEMPLATE() | Wordt uitgevoerd bij selectie. Vult in de antwoordwizard het juiste sjabloon in, het veld waarin deze macro gebruikt wordt moet dezelfde waarde bevatten als de naam van de sjabloon. Bijvoorbeeld: Soort document=ontvangstbevestiging; als er een sjabloon bestaat met dezelfde ‘nicename’ dan wordt deze alvast ingevuld in de wizard. |
%ACTHANDLER_[veldnaam]% | Wordt uitgevoerd bij selectie. Deze macro vult op het activiteiten of workflow tabblad gewenste gegevens van de gekozen behandelaar in. |
%PREVIOUSVALUE% | Bij het maken van een nieuw record wordt de waarde gevuld met de laats gebruikte waarde door dezelfde waarden door dezelfde gebruiker in hetzelfde boek. |
LASTCHANGEDATE() | Wordt uitgevoerd bij aanmaak registratie, en daarna bij opslaan. Vult de datum en tijd van de laatste wijziging van het record in, kan in datum en tekstveld. |
LASTCHANGEDBY() | Wordt uitgevoerd bij aanmaak registratie, en daarna bij opslaan. Vult de naam van de gebruiker in die de laatste wijziging aanbracht in het record. |
SIGNATURE() | Getekend door: bij elektronische handtekening. |
SIGNDT() | Getekend op datum: bij elektronische handtekening. |
EXPDT() | Vervaldatum certificaat: bij elektronische handtekening. |
SUBSTR([Veldnaam],1,[Lengte]) | Deze macro haalt de waarde op van [Veldnaam] op, het getal geeft de startpositie aan, het laatste getal het aantal karakters wat opgehaald moet worden. Bijvoorbeeld: SUBSTR(SUBJECT,1,50) haalt de eerst 50 karakters op van het veld SUBJECT1 |
U kunt in de standaardwaarde van een veld in een itemprofiel een berekening gebruiken door een formule in te voeren die begint met het ‘=’-teken. Vink ook de macro-optie aan als u berekeningen gebruikt. U kunt rekenen met getallen en datumwaarden en kunt voor in- en uitvoer alle typen velden (numerieke, tekst-, datum- of BOL-velden) gebruiken. Uitkomsten worden echter alleen als datum weergegeven als u de macro op een datumveld toepast.
Deze macro’s worden uitgevoerd tijdens het opslaan van de registratie.
Invoergegevens
U kunt rekenen met andere velden in dezelfde registratie, bijvoorbeeld:
=NUM1+NUM2
Dit is een geldige expressie die de som van de velden NUM1 en NUM2 aan het doelveld toekent. Ook is het mogelijk om velden van gekoppelde registraties in een veld te totaliseren, bijvoorbeeld:
=DSum(“DOCUMENT”,“NUM1”,“”)
Deze macro geeft de som van het veld NUM1 in alle gekoppelde documentregistraties als resultaat. De laatste twee dubbele aanhalingstekens [“”] kunnen vervangen worden door een SQL-conditie, waarop gefilterd kan worden. Als voorbeeld, met de SQL-conditie “IT_PARENT_KEY=‘DD812024E1A81E4FBC02485B0EB5EDB1’”, worden alleen de velden opgeteld, van de gekoppelde registraties met het ITEM_KEY ‘DD812024E1A81E4FBC02485B0EB5EDB1’. Hiermee kan je dus een dossier, document of objectboek specificeren.
Binnen JOIN Zaak & Document kunt u een aantal opzoekfuncties gebruiken, te weten:
Macro | Omschrijving |
---|---|
=DSum(“”,“”,“”) | Som van de waarden van het aangegeven veld in gekoppelde registraties van het aangegeven type. |
=DAvg(“”,“”,“”) | Gemiddelde van de waarden van het aangegeven veld in gekoppelde registraties van het aangegeven type. |
=DMin(“”,“”,“”) | Minimum van de waarden van het aangegeven veld in gekoppelde registraties van het aangegeven type. |
=DMax(“”,“”,“”) | Maximum van de waarden van het aangegeven veld in gekoppelde registraties van het aangegeven type. |
=DCount(“”,“”,“”) | Het aantal gevulde waarden voor het aangegeven veld in gekoppelde registraties van het aangegeven type. Geef een veld dat gegarandeerd niet leeg is als tweede parameter op (bijvoorbeeld “ITEM_KEY”) om alle gekoppelde registraties van het aangegeven type te tellen. |
=Dlookup(“”,“”,“”) | Geeft de veldwaarde aan gerefereerde veld. |
Alle opzoekfuncties hebben drie parameters, die altijd met dubbele aanhalingstekens [“”] omsloten moeten zijn:
Als eerste parameter het type gekoppelde registratie: “DOCUMENT” (document), “ADDRESS” (adres), “FOLDER” (dossier), “CONTACT” (contactpersoon) of “COBJECT” (object). Als tweede parameter het veld in de gekoppelde registraties waarop de bewerking moet worden uitgevoerd. En als derde parameter kan een SQL-conditie waarop de gekoppelde registraties gefilterd moeten worden. Geef alleen twee dubbele aanhalingstekens [“”] als 3e parameter om alle gekoppelde registraties van het aangegeven type in de berekening te gebruiken. Indien er alleen vanuit een specifiek gekoppelde registratie iets opgehaald mag worden, dient als 3e parameter weer een IT_PARENT_KEY opgegeven te worden. Ook kunnen andere SQL-condities worden opgegeven.
Voorbeeld 1
=DAvg(“CONTACT”,“DATE1”,“SURNAME=‘Jansen’”)
Dit geeft de gemiddelde waarde van het DATE1 veld voor gekoppelde contactpersonen met de achternaam ‘Jansen’. Let op het gebruik van aanhalingstekens: de drie parameters van DAvg zijn allen door dubbele aanhalingstekens omsloten, maar in de SQL-conditie (3e parameter) worden enkele aanhalingstekens gebruikt om de tekstwaarde te omsluiten.
Voorbeeld 2
Voor het samenvoegen van verschillende velden, voor bijvoorbeeld een adres, kan de notering in de macro per database verschillend zijn. Hieronder vindt u voorbeelden van een Dlookup-macro die een locatieadres (straat, postcode en plaats) van een gekoppeld adres in een registratie ophaalt en samenvoegd in één veld.
SQL Server:
=Dlookup(“ADDRESS”,"MAILADDRESS+', ‘+ZIPCODE+’ '+CITY)", “IT_PARENT_KEY=‘DD812024E1A81E4FBC02485B0EB5EDB1’”)
Oracle:
=Dlookup(“ADDRESS”,"MAILADDRESS || ', ’ || ZIPCODE || ’ ’ || CITY", “IT_PARENT_KEY=‘DD812024E1A81E4FBC02485B0EB5EDB1’”)
MySQL:
=Dlookup(“ADDRESS”,"CONCAT(MAILADDRESS,', ‘,ZIPCODE,’ ',CITY)", “IT_PARENT_KEY=‘DD812024E1A81E4FBC02485B0EB5EDB1’”)
Hier wordt alleen het adres opgehaald, als het betreffende adresboek het ITEM_KEY ‘DD812024E1A81E4FBC02485B0EB5EDB1’ heeft. Als uit alle adresboeken het adres opgehaald mag worden, vervang dan “‘DD812024E1A81E4FBC02485B0EB5EDB1’” door [“”].
Voor berekende veldwaarden ondersteunt JOIN de volgende datumfuncties:
Macro | Omschrijving |
---|---|
Date() | De huidige datum als aantal dagen sinds 1-1-1900, in JOIN wordt de echte datum weergegeven |
Time() | De huidige tijd als een fractioneel getal tussen 0 en 1, in JOIN wordt de echte tijd weergegeven |
Now() | De huidige datum en tijd in één getal, in JOIN wordt de echte datum en tijd weergegeven |
Year(d) | Het jaartal van de datumwaarde |
Month(d) | Geeft de maand van de datum weer als getal tussen 1 en 12 |
Day(d) | Geeft de dag van de datum weer als getal tussen 1 en 31 |
Hour(t) | Geeft het uur van de tijdswaarde weer als getal tussen 1 en 23 |
Minute(t) | Geeft de minuut van de tijdswaarde weer als getal tussen 1 en 59 |
Second(t) | Geeft de seconde van de tijdswaarde weer als getal tussen 1 en 59 |
DateSerial(y,m,d) | Stel een datumwaarde samen uit drie getallen, bijvoorbeeld =DateSerial(2010,2,28) codeert de datum 28 februari 2010 |
TimeSerial(h,m,s) | Stel een tijdswaarde samen uit drie getallen |
Bij de functies DateSerial() en TimeSerial() kunt u ook variabelen gebruiken, bijvoorbeeld:
=DateSerial(Year(DATE1),Month(DATE1)+1,DAY(DATE1))
Deze macro geeft een datum die precies één maand na de datum in het veld DATE1 is. U zou ook een getal bij Year(DATE1) kunnen optellen om een verschuiving van een aantal jaren te krijgen, of een getal bij Day(DATE1) om een verschuiving van een aantal dagen te krijgen. Om dit variable te maken, zou de macro aangepast kunnen worden naar:
=DateSerial(Year(DATE1),Month(DATE1)+NUM1,DAY(DATE1))
In dit geval kan de gebruiker dus een getal in het NUM1-veld invullen, waarna de macro de datum van DATE1 verhoogt met het aantal maanden, wat is ingevuld in NUM1. Uiteraard moet het veld NUM1 wel actief zijn.
IF([conditie],[formule 1],[formule 2])
Het resultaat van de IF-functie is gelijk aan [formule 1] als de conditie “waar” is, of [formule 2] als de conditie “onwaar” is. Bij [conditie] kan ook direct een getal- of datumveld ingevuld worden, zonder een vergelijking te gebruiken. Als het veld de waarde 0 heeft of leeg is wordt dat als “onwaar” beschouwd en wordt dus [formule 2] uitgevoerd, voor alle andere waarden wordt [formule 1] uitgevoerd.
De IF-functie wordt het meest gebruikt om te zorgen dat een veld dat het resultaat van een formule moet weergeven leeg blijft totdat de invoervelden gevuld zijn. We kunnen hem bijvoorbeeld toepassen op een datumformule:
=DateSerial(Year(DATE1),Month(DATE1)+3,Day(DATE1))
Als DATE1 niet ingevuld is geeft deze formule het resultaat 29 feb 2000. Mooier is echter dat het resultaat leeg is zolang DATE1 niet ingevuld is. We kunnen dit bereiken met de IF-functie waarin we DATE1 als conditie te gebruiken en voor het geval dat dit veld leeg is de waarde 0 (lege datum) terug te geven:
=IF(DATE1,DateSerial(Year(DATE1),Month(DATE1)+3,Day(DATE1)),0)
Door een “conditie” voor de oorspronkelijke formule te zetten, kunnen we aangeven wat er getoond moet worden. De oorspronkelijke formule wordt uitgevoerd als de conditie “waar” is, dus als DATE1 niet leeg is. 0 is wat het resultaat moet zijn als de conditie “onwaar” is, dus als DATE1 leeg is.
Als DATE1 de datum 01-01-2023 bevat, wordt het resultaat 01-04-2023. Als DATE1 leeg is, blijft het resultaat ook leeg.
De geadviseerde manier om meer complexe macro’s als deze op te stellen, is de volgende:
Als [testveld] mogen ook BOL-velden (“waar” als aangevinkt) en NUM-velden (“waar” als ongelijk aan 0) gebruikt worden. Ook kan er een andere [conditie] worden opgegeven, zoals een vergelijking. Zie hiervoor het volgende stuk.
Er kan ook een vergelijking gebruikt worden in plaats van direct op de waarde van een veld te testen:
=IF(NUM1 >= 18, “meerderjarig”, “minderjarig”)
Deze formule toegepast op een tekstveld geeft de tekst “meerderjarig” weer als NUM1 groter dan of gelijk aan 18 is, of “minderjarig” als de waarde kleiner is.
Normaal worden de besproken functies in “alleen lezen” velden gebruikt, omdat het resultaat van het veld immers altijd een berekende waarde is. Het is echter ook mogelijk om formules in een schrijfbaar veld te gebruiken, door een aanpassing op de IF-functie:
=IF([dit veld],[dit veld],[berekende waarde])
Als het veld [dit veld] nog niet ingevuld is, wordt eenmalig de [berekende waarde] ingevuld. Als de invoerder van de berekening wil afwijken, kan dat ook. Als de veldwaarde niet leeg is, is het resultaat van deze formule gelijk aan de huidige veldwaarde en die blijft dus behouden.
Voorbeeld: We geven deze formule op voor het schrijfbare veld DOCUMENT_DATE:
=IF(DOCUMENT_DATE,DOCUMENT_DATE,DATE()+1)
Het resultaat is dat standaard de datum van morgen wordt ingevuld, maar de operator kan ook besluiten om een heel andere datum in te vullen. Als er eenmaal een datum ingevuld is, blijft deze waarde behouden bij herberekening van de formule.
Macro | Omschrijving |
---|---|
Format([waarde],“formaat”) | Format geeft als resultaat een geformatteerde tekst die afgeleid is van de waarde. Zie ook de uitleg voor formattering in JOIN Admin. Voorbeeld: =“IN/05-”+Format(IT_SEQUENCE,“0000”) Deze formule toegepast op een tekstveld geeft bijvoorbeeld de tekst “IN/05-0003” als het volgnummer 3 is. Het formaat “0000” geeft hierbij aan dat het getal op 4 posities uitgelijnd moet worden met voorloopnullen. |
Replace([tekstwaarde], [tekstgedeelte], [vervang door]) | Replace geeft als resultaat een tekst terug waarin het aangegeven tekstgedeelte overal vervangen is door de tekst in [vervang door]. Replace wordt het meest gebruikt om spaties uit een tekst te verwijderen. Er zijn bijvoorbeeld veel websites waar op postcode gezocht kan worden, maar die postcode mag geen spatie bevatten. Deze formule kan gebruikt worden in het URL-veld: =“http://www.postcode.nl/index.php?address=” + Replace(ZIPCODE, " ", “”) Als het ZIPCODE-veld bijvoorbeeld de waarde “2201 XA” bevat, komt er in het URL-veld de tekst “http://www.postcode.nl/index.php?address=2201XA” te staan, zonder spatie tussen 2201 en XA. |
@display: | De display: tekstopmaak kan gebruikt worden om in het URL-veld in plaats van een onoverzichtelijk lang webadres een korte tekst voor weergave van de link te tonen. Als bijvoorbeeld @display:Zoek postcode achter de voorbeeldformule uit de vorige paragraaf toegevoegd wordt, ziet men in JOIN ‘Zoek postcode’ in plaats van het volledige webadres. |
Like([tekstwaarde], [vergelijk met]) | De Like-functie geeft 1 terug als het tekstpatroon in [vergelijk met] voorkomt in de tekstwaarde, of 0 als dat niet het geval is. [vergelijk met] moet voorafgegaan of gevolgd worden door % om aan te geven welk deel van de tekst moet overeenkomen. Voorbeeld TEXT1 bevat de waarde “Decos Software Engineering”. In dat geval geven deze drie formules alle drie het getal 1 terug: =Like(TEXT1,“Decos%”); =Like(TEXT1,“%eering”) of=Like(TEXT1,“%Software%”) |
NotLike([tekstwaarde], [vergelijk met]) | NotLike geeft het omgekeerde resultaat van Like. |
=Huisnummer([adresveld]) | De huisnummerfunctie geeft het numerieke deel van een Nederlands adres terug als getal. Dit kan toegepast worden om samenstellingen van postcode en huisnummer te maken: Replace(ZIPCODE, " ", “”) + Huisnummer(MAILADDRESS) Dit geeft bijvoorbeeld het resultaat “1119PE30” als het adres “Boeing Avenue 30” en de postcode “1119 PE” is. |
De volgende overige functies worden door de berekende velden ondersteund:
Functie | Beschrijving | Opmerking |
---|---|---|
+ | Optelling | |
- | aftrekking | |
* | vermenigvuldiging | |
/ | deling | 35/4 = 8.75 |
% | quotiënt van de deling | 35%4 = 3(hetzelfde als mod) |
\ | integere deling | 35\4 = 8 |
^ | machtsverheffing | 3^1.8 = 7.22467405584208 |
| | absolute waarde | -5|=5 (hetzelfde als abs) |
! | faculteit | 5!=120(hetzelfde als fact) |
abs(x) | absolute waarde | abs(-5)=5 |
atn(x) | inverse tangens | |
cos(x) | cosinus | paramter in radialen |
sin(x) | sinus | parameter in radialen |
exp(x) | natuurlijke exponent | exp(1) = 2.71828182845905 |
fix(x) | integer deel | afgerond naar kleinste absolute waarde: fix(-3.8) = 3 |
int(x) | integer deel | afgerond naar kleinste waarde: int(-3.8) = 4 |
dec(x) | decimaal deel | dec(-3.8) = -0.8 |
ln(x) | natuurlijke logaritme | parameter x>0 |
log(x) | logaritme met grondtal 10 | paramter x>0 |
rnd(x) | random | geeft een willekeurig getaltussen 0 en x |
sgn(x) | teken | geeft 1 als x>0; 0 als x=0 -1 als x<0 |
sqr(x) | vierkantswortel | sqr(2) =1.4142135623731; also 2^(1/2) |
cbr(x) | derdemachtswortel | cbr(2) = 1.259921049899487; also 2^(1/3) |
tan(x) | tangens | parameter (in radialen) x¹ k*p/2 met k = ± 1, ± 2… |
acos(x) | inverse cosinus | parameter -1 £ x £ 1 |
asin(x) | inverse sinus | parameter -1 £ x £ 1 |
cosh(x) | hyperbolische sinus | |
sinh(x) | hyperbolische sinus | |
tanh(x) | hyperbolische tangens | |
acosh(x) | inverse hyperbolische cosinus | parameter x ³ 1 |
asinh(x) | inverse hyperbolische sinus | |
atanh(x) | inverse hyperbolische tangens | parameter -1 < x < 1 |
root(x,n) | n-de machts wortel | parameter x ³ 0 (hetzelfde als x^(1/n) |
mod(a;b) | quotiënt van de deling | |
fact(n) | faculteit | parameter 0 £ n £ 170 |
comb(n;k) | combinaties | comb(6;3) = 20 |
min(a;b) | minimum van 2 getallen | |
max(a;b) | maximum van 2 getallen | |
mcd(a;b) | grootste gemene deler | mcm(4346;174) = 2 |
mcm(a;b) | kleinste gemene multiplicator | mcm(4346;174) = 378102 |
gcd(a;b) | grootste gemene deler | Hetzelfde als mcd |
lcm(a;b) | kleinste gemene multiplicator | Hetzelfde als mcm |
erf(x) | error Gauss functie | parameter x³0 |
gamma(x) | gamma | parameter 0 < x £ 171 |
gammaln(x) | logaritme gamma | parameter x>0 |
digamma(x) | digamma | parameter x>0 |
beta(x;y) | bèta | parameter x>0y>0 |
zeta(x) | zeta Riemman’s functie | parameter x<-1 or x>1 |
ei(x) | exponentiële integraal functie | parameter x>0 |
csc(x) | cosecant | parameter (in radialen) x¹ k*p with k = 0, ± 1, ± 2… |
sec(x) | secant | parameter (in radialen) x¹ k*p/2 with k = ± 1, ± 2… |
cot(x) | cotangent | parameter (in radialen) x¹ k*p with k = 0, ± 1, ± 2… |
acsc(x) | inverse cosecant | |
asec(x) | inverse secant | |
acot(x) | inverse cotangent | |
csch(x) | hyperbolic cosecant | parameter x>0 |
sech(x) | hyperbolic secant | parameter x>1 |
coth(x) | hyperbolic contangent | parameter x>2 |
acsch(x) | inverse hyperbloic cosecant | |
asech | inverse hyperbolic secant | parameter 0 £ x £ 1 |
acoth(x) | inverse hyperbolic cotangent | parameter x<-1 or x>1 |
rad(x) | conversie naar radialen | rad(90) = 1.5707963267949 |
deg(x) | conversie naar graden | deg(pi/4) = 45 |
round(x;d) | rond af op d decimalen | round(1.35712;2) = 1.36 |
> | groter dan | resultaat 1 (true) of 0 (false) |
>= | groter of gelijk aan | reultaat 1 (true) of 0 (false) |
< | kleiner dan | resultaat 1 (true) of 0 (false) |
<= | kleiner of gelijk aan | resultaat 1 (true) of 0 (false) |
= | gelijk aan | resultaat 1 (true) of 0 (false) |
<> | Niet gelijk aan | resultaat 1 (true) of 0 (false) |
and | logische and | and(a;b resultaat 1 (true) of 0 (false) |
or | logische or | or (a;b)resultaat 1 (true) of 0 (false) |
not | logsiche not | not (a) = resultaat 0(false) als a ¹ 0 ; anders 1 |
xor | logische exclusive-or | xor(a;b) = resultaat 1 (true) alleen als a=b |
nand | logsiche nand | nand(a;b) = resultaat 1 (true) als a=1 of b=1 |
nor | logsiche nor | nor(a;b) = resultaat 1 (true) alleen als a=0 en b=0 |
nxor | logische exclusive-nor | nxor(a;b) = resultaat 1(true) alleen als a=b |
U kunt op twee plaatsen in JOIN Admin opmaakcodes gebruiken om te bepalen hoe een veldinhoud in de applicatie wordt weergegeven:
Dit kan bijvoorbeeld gebruikt worden om aan te geven dat getallen die geldbedragen voorstellen altijd met twee cijfers achter de komma moeten worden weergegeven, maar ook om tekst- of datumvelden op te maken.
De code is als volgt opgebouwd:
Voor getallen zijn de volgende opmaakcodes beschikbaar:
Opmaakcode | Omschrijving |
---|---|
# | Dit teken staat voor significante cijfers. Niet significante tekens (voorloopnullen) worden niet weergegeven op de plaats van een #. |
0 | Niet-significante nullen (voorloopnullen of nullen achter de komma) worden ook weergegeven op de plaats waar in de opmaakcode een 0 staat. |
. | De punt geeft de plaats van het decimale scheidingsteken in de opmaakcode weer. U moet in de opmaakcode altijd een punt gebruiken. In de uitvoer gebruikt JOIN een punt of een komma, afhankelijk van de ingestelde taal. |
De opmaakcode voor een getal mag beginnen met een serie willekeurige tekens die als een valutacode voor het getal worden weergegeven. Meest gebruikt is het euroteken (€), maar u mag ook een ander valutateken of een lettercode zoals EUR gebruiken.
U kunt in JOIN niet de punt gebruiken om duizendtallen te scheiden. De reden is dat de software toestaat om zowel de punt als de komma als decimaal scheidingsteken voor invoer te gebruiken. Wij raden aan om desgewenst de spatie als scheidingsteken voor duizendtallen te gebruiken, zie de onderstaande voorbeelden:
Scheidingsteken | Omschrijving |
---|---|
0@R€# ### ##0.00 | In een velddefinitie in een itemprofiel: geef het veld de standaardwaarde 0, lijn de uitvoer rechts uit en pas het formaat “€# ### ##0,00” toe. Het getal 1234567,8 wordt in dit formaat weergegeven als: € 1 234 567,80 |
R€# ### ##0.00 | Het zelfde formaat als boven, toegepast in de kolom “Opmaak” in de query-definitie van een overzicht. |
Voor datumvelden zijn de volgende opmaakcodes beschikbaar:
Dagen, maanden en jaren
Opmaakcode | Omschrijving |
---|---|
M | Maanden als 1-12 |
MM | Maanden als 01-12 |
MMM | Maanden als jan-dec |
MMMM | Maanden als januari-december |
d | Dagen als 1-31 |
dd | Dagen als 01-31 |
ddd | Dagen als zon-zat |
dddd | Dagen als zondag-zaterdag |
yy | Jaren als 00-99 |
yyyy | Jaren als 1900-9999 |
Als u ‘m’ direct na de code ‘u’ of ‘uu’ gebruikt of direct voor de code ‘ss’ of ‘s’, worden de minuten weergegeven in plaats van de maand.
Uren, minuten en seconden
Opmaakcode | Omschrijving |
---|---|
u | Uren als 0-23 |
uu | Uren als 00-23 |
m | Minuten als 0-59 |
mm | Minuten als 00-59 |
s | Seconden als 0-59 |
ss | Seconden als 00-59 |
u AM/PM | Uren als 4 AM |
u:mm AM/PM | Uren als 4:36PM u:mm |
u:mm:ss A/P | Tijd als 4:36:03P |
[u]:mm | Verstreken tijd in uren, bijvoorbeeld 25:02 |
[mm]:ss | Verstreken tijd in minuten |
[ss] | Verstreken tijd in seconden |
u:mm:ss.00 | Fracties van een seconde |
AM en PM: Als de notatie de indicatie AM of PM bevat, is het uur gebaseerd op de 12-uursklok. ‘AM’ of ‘A’ duidt op de tijd vanaf middernacht tot het middaguur en ‘PM’ of ‘P’ duidt op de tijd vanaf het middaguur tot middernacht. Geeft u deze indicatie niet op, dan is de tijdsaanduiding op de 24-uursklok gebaseerd. De code ‘m’ of ‘mm’ moet direct achter de code ‘u’ of ‘uu’ of direct voor de code ‘ss’ staan, anders wordt de maand in plaats van de minuten weergegeven.
Opmaakcode | Omschrijving |
---|---|
> | Gebruik dit teken om de tekst altijd in hoofdletters weer te geven |
< | Gebruik dit teken om de tekst altijd in kleine letters weer te geven |
Bij een tekstveld in een itemprofiel moet u altijd de optie “Macro” aanvinken als u een opmaakcode gebruikt. Bij een numeriek of datumveld is dit niet nodig als u geen macro’s in combinatie met de opmaakcode gebruikt.
Als u een macro gebruikt in combinatie met een opmaakcode, moet u de opmaakcode aan het einde van de macro worden toegevoegd. Een opmaakcode verandert niet de inhoud van de velden in de database, maar alleen de weergave van de velden in JOIN.
Hierbij de link naar een pagina met voorbeelden van veelgebruikte macro’s uit de praktijk. Mocht de link niet openen, controleer of je toegang hebt tot het How To gedeelte (alleen Decos medewerkers).
JOIN kan gebruik maken van verschillende soorten databases. De applicatie ondersteunt de volgende databases: Oracle Microsoft SQL Server MySQL
Om JOIN te laten communiceren met een database zult u een connection-string voor de database moeten instellen. Deze connection-string moet zowel in het global.asa bestand van JOIN als in DecosAdmin.ini van JOIN Admin worden ingesteld en dient alleen te worden gewijzigd door ervaren beheerders!
Om ook bestaande stukken van globale unieke nummers te voorzien na het toevoegen van een GLOBALNUM() macro, kunt u gebruik maken van de GlobalNumberingTool. U kunt deze tool hier downloaden: GlobalNumberingTool. Start de tool op een machine waarop DecosAdmin.exe beschikbaar is of op de JOIN webserver. Als het programma in een werkende JOIN omgeving gestart is, toont het allereerst de melding “Successfully connected to database”. Klik vervolgens op OK om het hernummerproces te beginnen. Als het proces voltooid is, wordt de boodschap “Action complete” getoond. Na uitvoeren van de tool zijn de stukken die een profiel gebruiken waarin een GLOBALNUM-macro voorkomt die nog geen nummer hadden voorzien van een uniek volgnummer. Stukken die al een nummer hadden in dit veld worden niet meegenomen en kunnen mogelijk nog steeds een niet-uniek nummer hebben. Als u zeker wilt zijn dat alle stukken die aan het profiel voldoen een uniek nummer krijgen is het aan te bevelen om het nummeringsveld eerst in alle stukken leeg te maken door een bulkwijziging. Het programma bewaart een logbestand genaamd GlobalNumbering-yyyymmdd.log (waarin yyyymmdd de datum van uitvoer is) in de map waarin het opgestart wordt. In deze map vindt u na afloop ook een bestand genaamd GlobalNumbering-yyyymmdd-undo.sql. Dit sqlscript kan eventueel door uw databasebeheerder gebruikt worden om de acties van de tool ongedaan te maken.