Beschreibung

Die Funktion bearbeitet die aktuelle DDC-Gruppe. Der Anfang der Gruppe (Feld 54x0) wird ermittelt, wenn die Kategorie 54x0 bereits über Inhalt verfügt, wird der Text "[DDC22ger]" zu Beginn der Kategorie eingefügt. Ist die Kategorie leer, so wird hinter dem Text "[DDC22ger]" der Inhalt der Kategorie 54x1 kopiert. Außerdem werden leere Felder 54x3 entfernt.

Historie

Datum

geändert von

Beschreibung

2011-03-05

Althaus

neu erstellt

Code

dnb_inhaltserschliessung.js

function ddcEnde() {

	var Temp;
	var ddcNummer;
	var Kat54x1Inhalt;
	var Schleife = true;
	var i = 0;
	var substr1;
	var substr2;

	application.activeWindow.title.startOfField(false);
	
	do {
		Temp = application.activeWindow.title.tag;
		if ((Temp.substring(0,2) == "54") && (Temp.substring(3,4) == "0")) { /* Anfang der DDC-Gruppe gefunden */
			//application.messageBox("0", "Anfang der DDC-Gruppe gefunden", "");
			Schleife = false;
			Temp = application.activeWindow.title.currentField;
			//application.messageBox("1", Temp, "");
			Temp = Temp.replace (/^\s+/, '').replace (/\s+$/, '');
			//application.messageBox("2", Temp, "");
			if (Temp.length > 5) {  /* 54x0 mit Inhalt gefunden, also nur [DDC22ger] voranstellen */
				//application.messageBox("0", "54x0 mit Inhalt gefunden, also nur [DDC22ger] voranstellen", "");
				application.activeWindow.title.startOfField(false);
				application.activeWindow.title.wordRight(1,false);
				application.activeWindow.title.insertText("[DDC22ger]");
			} else { 		/*	ohne Inhalt, also [DDC22ger] + Inhalt der Kat 54x1 anfügen */
				//application.messageBox("0", "ohne Inhalt, also [DDC22ger] + Inhalt der Kat 54x1 anfügen", "");
				application.activeWindow.title.lineDown(1,false);	/* zur Kat 54x1 */
				application.activeWindow.title.startOfField(false);
				application.activeWindow.title.wordRight(1,false),
				application.activeWindow.title.endOfField(true),
				Temp = application.activeWindow.title.selection;
				Temp = Temp.replace (/^\s+/, '').replace (/\s+$/, '');
				application.activeWindow.title.startOfField(false),
				application.activeWindow.title.lineUp(1 , false);
				application.activeWindow.title.endOfField(false);
				application.activeWindow.title.insertText("[DDC22ger]" + Temp);
			}
		} else {
			i = i + 1 
			application.activeWindow.title.lineUp(1, false);
		}
	} while ((Schleife == true) && (i <= 7));
	
	//application.messageBox("", "löschen leere Kat54x3 - Zeilen (es steht nur -Tx-- da)", "");
	application.activeWindow.title.startOfField(false);
	application.activeWindow.title.lineDown( 3,false);	// nach kat54x0 immer drei Zeilen nach unten
	
	do {
		application.activeWindow.title.wordRight( 1, true);
		Temp = application.activeWindow.title.selection;
		if ((Temp.substring(0,2) == "54") && (Temp.substring(3,4) == "3")) { 
			Schleife = true;
			Temp = application.activeWindow.title.currentField;
			application.activeWindow.title.endOfField(true);
			Temp = application.activeWindow.title.selection;
			application.activeWindow.title.startOfField(false);
			var intLength = Temp.length;
			var strEnde = Temp.substring(intLength-2,intLength);
			if (strEnde == "--") { 	// leere Zeile
				application.activeWindow.title.deleteLine(1);
			} else {
				application.activeWindow.title.lineDown( 1,false);
			}
		} else {
			Schleife = false;
		}
	} while (Schleife == true);
	application.activeWindow.title.endOfBuffer(false);

}
VB-Code
Sub ddcEnde()	' Abschluss einer DDC-Gruppe
Dim Temp, ddcNummer, Kat54x1Inhalt
Dim Schleife, i
	On error resume next
	' DDC-Gruppenanfang finden
	Application.ActiveWindow.Title.StartOfField False
	i = 0	' Notausgang
	Schleife = True
	Do
		Temp = Application.ActiveWindow.Title.GetTag
		If (Left(Temp,2) = "54") And (Mid(Temp,4,1) = "0") Then	' Anfang der DDC-Gruppe gefunden
			Schleife = False
			Temp = Trim(Application.ActiveWindow.Title.GetCurrentField)
			If Len(Temp) > 5 Then	' 54x0 mit Inhalt gefunden, also nur [DDC22ger] voranstellen
				Application.ActiveWindow.Title.StartOfField False
				Application.ActiveWindow.Title.WordRight 1, False
				Application.ActiveWindow.Title.InsertText "[DDC22ger]"
			Else	' ohne Inhalt, also [DDC22ger] + Inhalt der Kat 54x1 anfügen
				Application.ActiveWindow.Title.LineDown 1 , False	' zur Kat 54x1
				Application.ActiveWindow.Title.StartOfField False
				Application.ActiveWindow.Title.WordRight 1, False
				Application.ActiveWindow.Title.EndOfField True
				Temp = Trim(Application.ActiveWindow.Title.GetSelection)
				Application.ActiveWindow.Title.StartOfField False
				Application.ActiveWindow.Title.LineUp 1 , False
				Application.ActiveWindow.Title.EndOfField False
				Application.ActiveWindow.Title.InsertText "[DDC22ger]" & Temp
			End If
		Else
			i = i +1 
			Application.ActiveWindow.Title.LineUp 1, False
		End If
	Loop Until (Schleife = False) Or (i > 7)
	' löschen leere Kat54x3 - Zeilen (es steht nur -Tx-- da)
	Application.ActiveWindow.Title.StartOfField
	Application.ActiveWindow.Title.LineDown 3,False	' nach kat54x0 immer drei Zeilen nach unten
	Do
		Application.ActiveWindow.Title.WordRight 1, True
		Temp = Application.ActiveWindow.Title.GetSelection
		If (Left(Temp,2) = "54") And (Mid(Temp,4,1) ="3") Then
			Schleife = True
			Application.ActiveWindow.Title.EndOfField True
			Temp = Application.ActiveWindow.Title.GetSelection
			Application.ActiveWindow.Title.StartOfField
			If Right(Temp,2) = "--" Then 	' leere Zeile
				Application.ActiveWindow.Title.DeleteLine 1
			Else
				Application.ActiveWindow.Title.LineDown 1,False
			End If
		Else
			Schleife = False
		End If
	Loop Until Schleife = False
	Application.ActiveWindow.Title.EndOfBuffer False
End Sub

Seitenanfang

  • Keine Stichwörter