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 geselecteerd en de styling van het passende formulier element wordt aangepast.
- Regelwerk [
catsys
: label] In welke regelwerken is dit visueel kenmerk toegelaten.
- 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 geselecteerd
indien RDmatch: het kenmerk wordt geselecteerd
- 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=""):
'''
$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 qtechng 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 inbvisc.m
. Code die algemener is en kan worden toegepast op alle LOI wordt aangemaakt in het bestandbvisgen.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 qtechng 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)
- %Last^bvisc
Werd c-loi niet meer gewijzigd sinds 'PDdate'
s RDmatch=$$%Last^bvisc(RDloi,"2000-01-01")
- %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*")