Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 10 Nächste Version anzeigen »

Beschreibung

Nach Aufruf der Funktion öffnet sich ein Eingabefeld zur Suche nach Scan-Nummern unterschiedlicher Retroprojekte.
Folgende Eingaben sind möglich

  • Lxxxx/yyyy für Retro DNB-L
  • Fxxxx/yyyy für Retro DNB-F
  • Dxxxx/yyyy für Retro DNB-DMA
  • xxxx/yyyy 1. vereinfachte Form für DNB-L, wird zu Lxxxx/yyyy
  • xxxxyyyy 2. Vereinfachte Form für DNB-L, wird zu Lxxxxyyyy
  • #xxx/yyyy # steht für A|B|C|D|E|M|S für Kontingente = Retro2
    Vereinfachte Eingabeform: #xxxyyyy, aus #xxx/yyyy wird R#xxx/yyyy

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.
gemeldet durch Petra Fischer am 18.05.2011

Code

dnb_scripte_01.js

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

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
 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.

Seitenanfang

  • Keine Stichwörter