DIAdem-Hilfe

Steuerung von DIAdem als ActiveX-Objekt

  • Aktualisiert2023-04-06
  • 3 Minute(n) Lesezeit

Dieses Beispiel zeigt, wie Sie DIAdem als ActiveX-Objekt verwenden und aus einer anderen Applikation fernsteuern.

Beispiel-Datensatz laden

Bitte wählen Sie ein Layout:

Ausgewähltes Layout laden

Hinweis  Je nach Sicherheitseinstellungen warnt das Betriebssystem Sie, dass ein ActiveX-Steuerelement möglicherweise nicht sicher ist. Zur Ausführung des Beispiels ist es notwendig, das Sie das Steuerelement zulassen. Diese Warnmeldung erscheint immer, wenn Sie über den Befehl CreateObject ein Automatisierungsobjekt in eine HTML-Seite einbinden.
Hinweis  Beim Start dieses Beispiels lädt DIAdem Beispieldateien und überschreibt dabei aktuelle Daten und Layouts.
Hinweis  Das folgende Script ist in den HTML-Code dieser Hilfe-Seite eingebettet. Das Script meldet DIAdem als ActiveX-Objekt an und schickt Befehle über die Befehlsschnittstelle von DIAdem. Alle weiteren eingebetteten Scripte dienen der Auswertung der HTML-Formulare.
Dim oMyDIAdem, ProgramDrv
Set oMyDIAdem = new DIAdemAutomation

Call oMyDIAdem.LoadDiademDataSet(ProgramDrv & "examples\data\report_expl.tdm", True)
Call oMyDIAdem.LoadDiademLayout(ProgramDrv & "examples\documents\Expl_Report_2DAxis.TDR")
Set oMyDIAdem = Nothing

Class DIAdemAutomation
Dim oDIAdem, DIAdemApp
  Private Sub Class_Initialize()
    Set oDIAdem = Nothing
    Call ConnectToDIAdem
    Call oDIAdem.VariantVarget("Application",DIAdemApp)
    Call oDIAdem.VariantVarget("ProgramDrv",ProgramDrv)
  End Sub

  '================================================================
  Private Sub Class_Terminate()
    Set oDIAdem = Nothing
  End Sub

  
  '================================================================ 
  Function DIAdem_Exec(DIAdemCommand)
      DIAdem_exec = False
      If ConnectToDIAdem Then
          If oDIAdem.CmdExecuteSync(DIAdemCommand) = 1 Then DIAdem_exec = True
      End If
  End Function
  '================================================================
  Sub LoadDiademLayout(LayOut)
     Call DIAdemApp.Report.LoadLayout(LayOut)
     Call DIAdem_exec("WndOpen(""Report"")")
     Call DIAdemApp.Report.Refresh
  End Sub

  '================================================================
  Sub ExportPDF(PDFName)
    Call DIAdemApp.Report.Sheets.ExportToPDF(PDFName)
  End Sub
  
  '================================================================
  Function LoadDiademDataSet(DataSet, clear)
    If clear Then
      Call DIAdemApp.Data.Root.Clear
    End if
    Dim MyCommand : MyCommand = "DataFileLoad(""" & DataSet & """)"
    LoadDiademDataSet = DIAdem_exec(MyCommand)
  End Function
  
  '================================================================
  Private Function ConnectToDIAdem
    Dim nValueT, iWait
    If NOT oDIAdem Is Nothing Then
      ConnectToDIAdem = True
      Exit Function
    End If  
    ConnectToDIAdem = False
      On Error Resume Next
      Set oDIAdem = CreateObject("DIAdem.TOCommand")
      If Err.Number > 0 then
        Set oDIAdem = Nothing
        Err.Clear
      Else
        iWait = 0 
        Do 
          iWait = iWait + 1
          If iWait >=1000 Then
            Exit Function
          End If
        Loop Until Not oDIAdem.bInterfaceLocked    
        ' Suppress all messages
        oDIAdem.bNoMsgDisplay = true
        oDIAdem.bNoInfoDisplay = true
        oDIAdem.bNoErrorDisplay = true
        oDIAdem.bNoWarningDisplay = true
        oDIAdem.bNoNoDialogDisplay = true
        ConnectToDIAdem = True
      End If
  End Function

End Class