4. Visueel weerspiegelen van de status van een record

4.1. Inleiding

Dit document beschrijft een techniek waarmee het mogelijk is om diverse aspecten van een record(LOI) visueel weer te geven.

Deze faciliteit is in de eerste plaats bedoeld voor personeelsleden. Het visueel aspect wordt getoond in de Brocade formulieren die bedoeld zijn om de bewuste records aan te passen.

4.2. Architectuur

4.2.1. visualloi

Dit is meta-informatie die de visuele attributen beschrijft:

In de beheersinformatie van de diverse LOI types kunnen een reeks visuele kenmerken voor formulieren worden opgegeven.

Deze kenmerken beschrijven onder meer de voorwaarde waaronder het visueel kenmerk optreedt. Het eerste optredende visueel kenmerk wordt dan weerhouden en de styling van het passende formulier element wordt aangepast.

Test [matcher: tekst]

Dit is een M routine die werkt met 3 variabelen:

  • RDloi: de waarde van de LOI (vb. c:lvd:32764)
  • UDuser: de userid van de gebruiker

Na afloop moet RDmatch bestaan:

  • indien ‘RDmatch: het kenmerk wordt niet weerhouden
  • indien RDmatch: het kenmerk wordt weerhouden
CSS [css: tekst]
Definieer hier de passende styling voor het formulier
Tekst [header: label]
Tekst die wordt toegevoegd aan de legende

4.2.2. LOI-systemen

LOIs worden meestal gegroepeerd in systemen:

  • regelwerken van catalografische beschrijvingen
  • systemen van archiefobjecten
  • ISAD-systemen
  • systemen can collectiebeschrijvingen

Deze systemen worden beschreven door een identifier elk met hun specifieke meta-informatie.

Een attribuut van deze meta-informatie moet dan de toegelaten visuele vormen zijn. Laten we in het vervolg van deze tekst dit attribuut de naam visform geven. De waarde van visform moet een lijst zijn (genummerd vanaf 1) met als waarden identifiers van het meta-type visualloi.

Uit deze lijst wordt de eerste visuele vorm geselecteerd die van toepassing is.

Dit kan met behulp van de macro:

macro selectVisualForm($css, $text, $list, $loi, $staff=""):
    '''
    $editfile: /visualloi/application/visual.d
    $synopsis:  Zoek een passend visueel kenmerk voor een formulier binnen een lijst kandidaten
    $css: CSS specificatie. Moet tussen <style> </style> kunnen worden geplaatst.
    $text: Extra tekst voor de legende. Mag leeg zijn.
    $list: sekwentiele lijst met visuele loi
    $loi: LOI
    $staff: userid van de gebruiker
    $example: m4_selectVisualForm(RDcss, RDtext, RAlist, "c:lvd:1273", "rphilips")
    '''

    «d %Find^bvissel(.$css,.$text,.$list,$loi,$staff)»

4.2.3. Uitbouw van de visualloi

De test die bepaalt of een visualloi van toepassing is op een gegeven LOI kan erg specifiek van aard zijn en moet gebaseerd zijn op M code.

Het is het beste dat er een paar vaste afspreken worden gevolgd:

  • Deze M code moet worden aangemaakt in qtech project /visualloi/application.
  • Voor de LOI van het type xyz moet de code worden aangemaakt in het bestand bvisxyz.m. Dit betekent voor een c-loi dat de M code moet te vinden zijn in bvisc.m. Code die algemener is en kan worden toegepast op alle LOI wordt aangemaakt in het bestand bvisgen.m.
  • De code moet op een specifieke manier worden gedocumenteerd: laat de tag in de M-code volgen door lijnen die beginnen met //rst:. Volg het voorbeeld uit het volgende code-fragment
fn %Lm(PDcloi, PDpat):
//rst:Heeft *c-loi* een lidmaatschap met een gegeven patroon?
//rst:
//rst:.. codeblock:: mumps
//rst:
//rst:   s RDmatch=$$%Lm^bvisc(RDloi,"antilope*")
//rst:
 ;pragma calls
 ;pragma fos
 n x,y,z,ZAlm,lm,match,return
 m4_getCatIsbdMemberships(ZAlm, PDcloi)
 s lm="",match=0
 f  s lm=$O(ZAlm(lm)) q:lm=""  d  q:match
 . m4_strMatchGlob(match, lm, PDpat)
 . q
 q match

4.3. Webformulier

De CSS code, corresponderend met de visuele vorm, moet kunnen worden ingebed in het webformulier. Het is aan de ontwikkelaar om dit mogelijk te maken.

4.4. Hulpfuncties

In de code in qtech project /visualloi/application zijn er heel wat hulpfuncties te vinden die het mogelijk maken om de selectie van de visuele vorm mogelijk te maken: zoek een passende, booleaanse combinatie met deze bouwstenen.

4.4.1. Algemeen

%List^bvisgen

Behoort LOI tot een lijst ?

s RDmatch=$$%List^bvisgen(RDloi,"ulst:rphilips:myList")

4.4.2. Catalografische beschrijvingen

%AutoDel^bvisc

Wordt c-loi verwijderd door het automatisch schrappen

s RDmatch=$$%AutoDel^bvisc(RDloi)
%Dr^bvisc

Heeft c-loi een drager met een gegeven patroon?

s RDmatch=$$%Dr^bvisc(RDloi,"multi*")
%Godfath^bvisc

Werd c-loi laatst gewijzigd door een catalograaf waarvan je een ‘peter’ bent.

s RDmatch=$$%AutoDel^bvisc(RDloi)
%Lm^bvisc

Heeft c-loi een lidmaatschap met een gegeven patroon?

s RDmatch=$$%Lm^bvisc(RDloi,"antilope*")
%Opac^bvisc

Behoort c-loi tot een OPAC met een gegeven patroon?

s RDmatch=$$%Opac^bvisc(RDloi,"ua*")