Beschreibung
Die Funktion öffnet eine Eingabebox, in der Kategorie und Schlagwort eingegeben werden. Danach sucht die Funktion nach dem Schlagwort und erstellt eine Kategorie mit der entsprechenden Verknüpfungs-ID. Wie Funktion ANS, jedoch Suche im Index AN und mit Trunkierung!
Historie
Datum |
geändert von |
Beschreibung |
|---|---|---|
2011-05-03 |
Althaus |
neu erstellt |
Code
dnb_inhaltserschliessung.js
function __Schlagwortsuche(strKommando,strTrunkierung) {
var intWinID1 = application.activeWindow.windowID;
var intWinID2;
var swPrompt = utility.newPrompter();
var strKategorie;
var strSchlagworte;
var strIDN = application.activeWindow.getVariable("P3GPP");
var strSWDIDN;
var msg;
var intLength;
var strText = "Eingabeform: Kategorie Schlagwort(e)\n" +
" z.B.: 5100 Magie\n" +
" oder 5101 feng shui\n";
var strEingabe = "";
if (application.activeWindow.getVariable("scr") != "MT") {
__dnbFehler("Fehler","Die Funktion kann nur im Korrekturmodus aufgerufen werden!");
} else {
msg = swPrompt.prompt(strTrunkierung,strText,strEingabe,null,null);
while (msg == true) {
strEingabe = swPrompt.getEditValue();
intLength = strEingabe.length;
if (intLength < 6) {
__dnbFehler(strTrunkierung,"Bitte Eingabeform beachten: " + strText);
msg = swPrompt.prompt(strTrunkierung,strText,strEingabe,null,null);
} else {
msg = false;
strKategorie = strEingabe.substring(0,4);
strSchlagworte = strEingabe.substring(5,intLength+1);
__geheZuKat(strKategorie,"",false);
application.activeWindow.title.insertText(strKategorie + " \n");
application.activeWindow.title.lineUp(1 , false);
application.activeWindow.title.endOfField(false);
if (strTrunkierung == "ANSrecn") {
application.activeWindow.command (strKommando + "\"\"" + strSchlagworte + "\"\"", true);
} else {
application.activeWindow.command (strKommando + strSchlagworte, true);
}
intWinID2 = application.activeWindow.windowID;
strSWDIDN = application.activeWindow.getVariable("P3GPP");
if ((strSWDIDN == strIDN) || (application.activeWindow.getVariable("scr") != "8A")) {
__dnbFehler("Schlagwortsuche","Schlagwort nicht eindeutig zu ermitteln.\n"
+ "Mehrere Treffer: Bitte wählen Sie manuell aus und rufen Sie dann die Funktion HoleIDN auf\n"
+ "Nichts gefunden: Bitte schließen Sie das Fenster und rufen Sie die Funktion ggf. erneut auf!");
} else {
application.closeWindow(intWinID2);
application.activateWindow(intWinID1);
__geheZuKat(strKategorie,"",true);
application.activeWindow.title.insertText("!" + strSWDIDN + "!");
}
}
}
}
}
function ANSrecn() {
__Schlagwortsuche("rec n;f an ","ANSrecn");
}
VB-Code
'********************************************************************
Sub ANSrecn()
'********************************************************************
Call Schlagwortsuche("rec n;f an ","ANSrecn")
End Sub ' ANSrecn
'********************************************************************
Private Sub Schlagwortsuche(Kommando,Trunkierung)
'********************************************************************
' Wird von ANSrecn und ANS aufgerufen
on error resume next
Dim Text, Schleife,Eingabe
Text = "Eingabeform: Kategorie Schlagwort(e) Operator" & vbCrLf & _
" z.B.: 5100 Magie +" & vbCrLf & _
" oder 5101 -feng shui ;" & vbCRLf & _
" Der Operator ist optional"
Schleife = vbYes
Eingabe = ""
Do
If Application.ActiveWindow.Variable("scr") <> "MT" Then
MsgBox "Diese Funktion kann nur im Korrekturmodus aufgerufen werden", _
vbOKOnly+vbCritical,Titel
Else
Eingabe = Trim(InputBox(Text,Titel,Eingabe))
If Len(Eingabe) = 0 Then
Schleife = vbAbort
Else
If Len(Eingabe) < 6 Then
MsgBox "Bitte Eingabeform beachten: " & vbCrLf & Text1, _
vbOKOnly+vbExclamation,Titel
Schleife = vbNo
Else
Call Teilung(Eingabe)
If Trunkierung = "ANSrecn" Then
Suchschlagwort = """" & Suchschlagwort & """"
End If
If Len(Kategorie) > 0 Then
Schleife = vbYes
WinID1 = Application.ActiveWindow.WindowID
Application.ActiveWindow.Command Kommando & Suchschlagwort, True
WinID2 = Application.ActiveWindow.WindowID
If WinID1 = WinID2 Then
MsgBox "Schlagwort nicht gefunden!",vbOKOnly+vbInformation,Titel
Schleife = vbNo
Else
If Application.ActiveWindow.Variable("scr") = "8A" Then ' Vollanzeige
WinID2 = Application.ActiveWindow.WindowID
IDN = Application.ActiveWindow.Variable("P3GPP")
Zeile = Kategorie & " " & Praefix & "!" & IDN & "! " & Suffix & vbCr
Application.CloseWindow(WinID2)
Application.ActivateWindow(WinID1)
Application.ActiveWindow.Title.EndOfBuffer False
' Sicherheitsabfrage wegen evtl falscher Cursorpositionierung
Application.ActiveWindow.Title.EndOfBuffer True
If Len(Application.ActiveWindow.Title.GetSelection) > 0 Then
MsgBox "Cursor war nicht am Ende!",vbOKOnly+vbInformation,Titel
Application.ActiveWindow.Title.EndOfBuffer False
End If
Application.ActiveWindow.Title.StartOfField True
If Len(Application.ActiveWindow.Title.GetSelection) > 0 Then
Application.ActiveWindow.Title.EndOfField False
Application.ActiveWindow.Title.InsertText vbCr
End If
Application.ActiveWindow.Title.InsertText Zeile
Schleife = vbYes
Else ' Kurzanzeige
If Len(Praefix) = 1 Then
Zeile = WinID1 & " " & Praefix & Kategorie & " " & Suffix
Else
Zeile = WinID1 & " " & Kategorie & " " & Suffix
End If
Application.ActiveWindow.ClipBoard = Zeile
Application.ActiveWindow.Command "s k", False
Schleife = vbYes
End If
End If
Else
Schleife = vbNo
End If
End If
End IF
End If
Loop Until (Schleife = vbYes) Or (Schleife = vbCancel) Or (Schleife = vbAbort)
End Sub ' Schlagwortsuche
'********************************************************************
Private Sub Teilung(Feld)
'********************************************************************
' wird von Schlagwortsuche aufgerufen
on error resume next
Dim Temp, Position
Kategorie = ""
Suchschlagwort = ""
Praefix = ""
Suffix = ""
Position = InStr(Feld," ")
If Position > 0 Then
Kategorie = Left(Feld,Position-1)
Temp = Right(Feld,Len(Feld)-Position)
If Left(Temp,1) = "-" Then
Praefix = "-"
Temp = Right(Temp,Len(Temp)-1)
End If
If (Right(Temp,1) = ";") Or (Right(Temp,1) = "+") Or (Right(Temp,1) = "#") Then
Suffix = Right(Temp,1)
Suchschlagwort = Left(Temp,Len(Temp)-1)
Else
Suchschlagwort = Temp
End If
Else
MsgBox "Die Eingabe muss mindestens eine Kategorie und ein Schlagwort enthalten", _
vbOKOnly+vbCritical,Titel
End If
End Sub 'Teilung
Überblick
Inhalte