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