Seitenhistorie
Anker | ||||
---|---|---|---|---|
|
Inhalt |
---|
Beschreibung
Auszug |
---|
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 ANSrecn, jedoch Suche im Default-Index SW und ohne Trunkierung! |
Historie
Datum | geändert von | Beschreibung |
---|---|---|
2011-05-03 | Althaus | neu erstellt |
Code
dnb_inhaltserschliessung.js
Codeblock |
---|
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 ANS() { __Schlagwortsuche("f sw ","ANS"); } |
VB-Code
Codeblock |
---|
'******************************************************************** Sub ANS() '******************************************************************** Call Schlagwortsuche("f ","ANS") End Sub ' ANS '******************************************************************** 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