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 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

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
'********************************************************************
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

Seitenanfang

  • Keine Stichwörter