Scripting

<< Click to Display Table of Contents >>

Navigation:  Windows > Core System >

Scripting

 

Fragen und Antworten zum Thema OMNITRACKER Windows ↦ Core System ↦ Scripting:

 

Wie werden Fehlermeldungen behoben, wenn ein externes VB-Script auf einem 64-bit-System gestartet wird?

Fehlermeldung: ActiveX Komponente kann kein Objekt erstellen (OtAut.Application)

Wenn Sie eine VBS-Datei auf einem 64-bit-System starten, wird diese standardmäßig im 64-bit- Teilsystem ausgeführt. Wird dazu die 32-bit-OtAut.dll genutzt, so führt dies zu Fehlermeldungen.

Um das Skript im 32-bit-Teilsystem auszuführen, starten Sie es bitte wie folgt:

C:\WINDOWS\SysWOW64\wscript.exe "MeinScript.vbs"

 

Wie verwendet man ein "unattached" RequestList Control?

  1. Im OnOpen-Skript des Formulars nehmen Sie bitte folgende Zeile auf:

    myControl.object.Session = ActiveSession

  2. Im Tab-Control aktivieren Sie bitte folgendes OnChange Skript:

    'An Update is only necessary if the page "MeinTabname" is displayed

    If TabControl.CurrentPage.Name = "MeinTabname" Then
    Set objFolder = ActiveSession.RequestFolders("<FolderName>")
    Set objFilt = objFolder.MakeFilter
    Set objFilt.UserField("<Feld-ImRef-Folder>") = ActiveRequest
    myControl.object.Clear
    myControl.object.Filter = objFilt
    myControl.object.UpdateAllRequests
    End If

 

Wie erstellt man ein OnClick-Script für einen Print-Button, der das geöffnete Objekt drucken soll?

Das OnClick-Script für den Print-Button sollte die folgenden 3 Schritte durchführen:

  1. Erzeugung des .DOC bzw. .PDF Files in dem lokalen Dateisystem des Clients:

    Set WshShell = CreateObject("WScript.Shell")
    TempFileName = WshShell.ExpandEnvironmentStrings("%Temp%") & "\TempOtReport.doc"

    Set fs = CreateObject("Scripting.FileSystemObject")
    If fs.FileExists(TempFileName) Then fs.DeleteFile TempFileName, True

    Set objFld = ActiveSession.RequestFolders("MyFolder")
    Set objTask = objFld.Tasks("MyTask")
    Set objReqs = objFld.CreateRequestList
    objReqs.AddExisting ActiveRequest
    ErrStr = objTask.Execute (objReqs, TempFileName, 2) '1=Pdf, 2=Word
    1. Start des Drucks auf dem Standarddrucker (.DOC file):

      If ErrStr = "" Then
      Set msWord = CreateObject("Word.Application")
      msWord.Documents.Open(TempFileName)
      msWord.Application.PrintOut
      msWord.Quit
      set msWord = Nothing
      Else
      MsgBox "Error: " & ErrStr
      End If
    2. Start des Drucks auf dem Standarddrucker (.PDF file):

      strCommand = """%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe"" /t " & TempFileName
      WshShell.Run strCommand, 0, True
  2. Löschen der temporären Datei:

    If fs.FileExists(TempFileName) Then fs.DeleteFile TempFileName, True