Seitenhistorie
...
Inhalt |
---|
Beschreibung
Auszug |
---|
Nach Aufruf der Funktion öffnet sich ein Eingabefeld zur Suche nach Scan-Nummern unterschiedlicher Retroprojekte. Folgende Eingaben sind möglich Vereinfachte Eingabeform: #xxxyyyy, aus #xxx/yyyy wird R#xxx/yyyy |
Standard-Konfiguration
Die Funktion ist im Pull-Down-Menü Retro... der Funktionsleiste Formalerschliessung enthalten.
Eingabemaske
Historie
Datum | geändert von | Beschreibung |
---|---|---|
2011-02-02 | Althaus | Neu implementiert |
2011-02-07 | Althaus | Ergänzungen für unterschiedliche Eingabeformate |
2011-07-01 | Althaus | Fehler beim Aufruf von Scans aus dem Retro II-Projekt (z.B. B003/0064) behoben. |
...
Scriptdatei(en)
dnb_scripte_01.js
Codeblock |
---|
function RetroBild() {
var strBibliothek;
var Bibliothek = "DBL";
var nrKasten;
var nrBild;
var boolOK = false;
var strBoxTitel = "Funktion RetroBild";
var strBoxText = "Folgende Eingaben sind möglich:\n\n"
+ "Lxxxx/yyyy für Retro DNB-L\n"
+ "Fxxxx/yyyy für Retro DNB-F\n"
+ "Dxxxx/yyyy für Retro DNB-DMA\n"
+ "xxxx/yyyy 1. vereinfachte Form für DNB-L, wird zu Lxxxx/yyyy\n"
+ "xxxxyyyy 2. Vereinfachte Form für DNB-L, wird zu Lxxxxyyyy\n"
+ "#xxx/yyyy # steht für A|B|C|D|E|M|S für Kontingente = Retro2\n"
+ "Vereinfachte Eingabeform: #xxxyyyy, aus #xxx/yyyy wird R#xxx/yyyy\n\n"
+ "Beispiel: L2746/0055";
var strEingabe = __dnbPrompter(strBoxTitel, strBoxText,"");
if (strEingabe) {
//application.messageBox("strEingabe", strEingabe, "");
var intLength = strEingabe.length;
//application.messageBox("intLength", intLength, "");
if ((strEingabe == "") || (intLength > 10)) {
__dnbFehler(strBoxTitel,"Keine Eingabe oder Eingabe zu lang");
} else {
// Standardeingabe
var regExp = /[L|F|D]\d\d\d\d\/\d\d\d\d/;
var regMatch = regExp.exec(strEingabe);
if ((regMatch) && (intLength == 10)) {
//application.messageBox("regMatch1", regMatch, "");
strBibliothek = strEingabe.substring(0,1);
switch (strBibliothek) {
case "L": Bibliothek = "DBL";
break;
case "F": Bibliothek = "DBF";
break;
case "D": Bibliothek = "DMA";
break;
default: __dnbFehler("Funktion RetroBild","Erstes Zeichen muss L, F oder D sein!","");
}
nrKasten = strEingabe.substring(1,5);
//application.messageBox("nrKasten", nrKasten, "");
nrBild = strEingabe.substring(6,10);
//application.messageBox("nrBild", nrBild, "");
boolOK = true;
} else {
// Eingabeform xxxx/yyyy
regExp = /\d\d\d\d\/\d\d\d\d/;
regMatch = regExp.exec(strEingabe);
if ((regMatch) && (intLength == 9)) {
//application.messageBox("regMatch2", regMatch, "");
nrKasten = strEingabe.substring(0,4);
nrBild = strEingabe.substring(5,9);
boolOK = true;
} else {
// Eingabeform xxxxyyyy
regExp = /\d\d\d\d\d\d\d\d/;
regMatch = regExp.exec(strEingabe);
if ((regMatch) && (intLength == 8)) {
application.messageBox("regMatch3", regMatch, "");
nrKasten = strEingabe.substring(0,4);
nrBild = strEingabe.substring(4,8);
boolOK = true;
} else {
// Eingabeform #xxx/yyyy
regExp = /[A|B|C|D|E|M|S]\d\d\d\/\d\d\d\d/;
regMatch = regExp.exec(strEingabe);
if ((regMatch) && (intLength == 9)) {
//application.messageBox("regMatch4", regMatch, "");
Bibliothek = "Retro2";
nrKasten = strEingabe.substring(0,4);
nrBild = strEingabe.substring(5,9);
boolOK = true;
} else {
// Eingabeform #xxx/yyyy
regExp = /[A|B|C|D|E|M|S]\d\d\d\d\d\d\d/;
regMatch = regExp.exec(strEingabe);
if ((regMatch) && (intLength == 8)) {
//application.messageBox("regMatch5", regMatch, "");
Bibliothek = "Retro2";
nrKasten = strEingabe.substring(0,4);
nrBild = strEingabe.substring(4,8);
boolOK = true;
} else {
__dnbFehler(strBoxTitel,"Falsches Eingabeformat");
}
}
}
}
//application.messageBox("Bibliothek", Bibliothek, "");
//application.messageBox("nrKasten", nrKasten, "");
//application.messageBox("nrBild", nrBild, "");
//application.messageBox("Kontrolle","Aufruf für " + Bibliothek + "\nKasten: " + nrKasten + "\nBild: " + nrBild,"");
}
if (boolOK) {
__retro(Bibliothek,nrKasten,nrBild);
}
}
}
}
|
dnb_public-js
Codeblock |
---|
function __retro(Bibliothek, Kasten, Bild) {
const tifHomeDBF = "\\\\Dnbf-nsc1-p02\\DBF-Retro\\DBF001\\";
const tifHomeDBL = "\\\\Dnbf-nsc1-p02\\DBL-Retro\\";
const tifHomeDMA = "\\\\Dnbf-nsc1-p02\\DBL-Retro\\!dma\\";
const jpgHomeRetro2 = "\\\\Dnbf-nsc1-p02\\DNB-Retro2\\";
var Pos8595 = 0;
var tifHome;
var Titel;
var Exemplarkennung;
switch (Bibliothek) {
case "DBL": tifHome = tifHomeDBL;
Titel = "Retro DBL";
Exemplarkennung = "[0101";
break;
case "DBF": tifHome = tifHomeDBF;
Titel = "Retro DBF";
Exemplarkennung = "[0292";
break;
case "DMA": tifHome = tifHomeDMA;
Titel = "Retro DMA";
Exemplarkennung = "[3000";
break;
case "Retro2": tifHome = jpgHomeRetro2;
Titel = "Retro 2";
Exemplarkennung = "[0";
break;
default: __dnbFehler("Retro","Unbekannter Parameter beim Aufruf einer Retro-Funktion","");
}
if ((Kasten != "") && (Bild != "")) {
__retroAnzeige(tifHome,Bibliothek,Kasten,Bild);
} else {
application.activeWindow.command("show da",false);
var Kopie = application.activeWindow.copyTitle();
//application.messageBox("Kopie",Kopie,"");
if (Kopie == "") {
__dnbFehler("Retro","Es konnte keine Titelkopie erstellt werden","");
} else {
var Eingabe = "";
var Pos2260 = Kopie.indexOf("2260 ");
//application.messageBox("Pos2260",Pos2260,"");
if (Pos2260 > 0) {
Eingabe = Kopie.substring(Pos2260 + 5,Pos2260+14);
Kasten = Eingabe.substring(0,4)
//application.messageBox("Kasten",Kasten,"");
Bild = Eingabe.substring(5,9)
//application.messageBox("Bild",Bild,"");
}
Pos8595 = Kopie.indexOf("8595 ");
if (Pos8595 > 0) {
Eingabe = Kopie.substring(Pos8595 + 5,Pos8595+14);
Kasten = Eingabe.substring(0,4)
//application.messageBox("Kasten",Kasten,"");
Bild = Eingabe.substring(5,9)
//application.messageBox("Bild",Bild,"");
}
if ((!Pos8595) && (!Pos2260)) {
__dnbFehler("Retro","Keine Kategorie 2260 bzw. 8595 mit Scannummer vorhanden","");
} else {
__retroAnzeige(tifHome,Bibliothek,Kasten,Bild);
}
}
}
}
|
VB-Scriptcode
Codeblock |
---|
Sub RetroBild()
' 26.02.2009 un - Anpassung Retro 2
Dim Eingabetext, Bibo, Kastennr, Bildnr
On Error Resume Next
Eingabetext = InputBox("Bitte Angaben in der Form Xyyyy/zzzz eingeben" & vbCrLf & _
"X = L für DBL" & vbCrLf & _
"X = F für DBF" & vbCrLf & _
"X = D für DMA" & vbCrLf & "yyyy = Kastennummer" & vbCrLf & "zzzz = Bildnummer" & vbCrLf & vbCrLf & _
"Beispiel: L2746/0055","Funktion RetroBild")
If Len(Eingabetext) = 0 Then
Exit Sub
End If
If (Eingabetext = "") Or (Len(Eingabetext) > 10) Then
MsgBox "Falsche Eingabeform", vbOKOnly + vbCritical,"Funktion RetroBild"
Exit Sub
Else
If (Len(Eingabetext) = 9) And (Left(Eingabetext,1) >= "A") Then
Eingabetext = "R" & Eingabetext
ElseIf (Len(Eingabetext) = 8) And (Left(Eingabetext,1) >= "A") Then
Eingabetext = "R" & Eingabetext
ElseIf (Len(Eingabetext) = 8) And IsNumeric(Eingabetext) Then
Eingabetext = "L" & Left(Eingabetext,4) & Right(Eingabetext,4)
ElseIf Len(Eingabetext) = 9 Then
Eingabetext = "L" & Eingabetext
End If
Select Case UCase(Left(Eingabetext,1))
Case "L"
Bibo = "DBL"
Case "F"
Bibo = "DBF"
Case "D"
Bibo = "DMA"
Case "R"
Bibo = "Retro2"
Case Else
MsgBox "Erstes Zeichen muss L, F oder D sein",vbOKOnly + vbCritical,"Funktion RetroBild"
Exit Sub
End Select
End If
Kastennr = Mid(Eingabetext,2,4)
Bildnr = Right(Eingabetext,4)
Call Retro(Bibo,Kastennr,Bildnr)
End Sub
|
Testhinweise
Wurde mit dem im Hilfetext angegebenen Scan getestet.
Seitenanfangformalerschliessung.js, dnb_public.js
Überblick
Inhalte