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
Überblick
Inhalte