Showing results 1 to 4 of 4

Thread: Time Filter in AML

  1. #1
    Join Date
    15.09.2016
    Posts
    61

    Default Time Filter in AML

    Hallo alle zusammen,
    Ich habe ein Bild vom Typ "Alarm Message List" und möchte den Zeitfilter, der auf dieses Bild angewendet wird an eine Funktion vom Typ "Report Viewer: export / print" beim Ausführen übergeben. Im Bild befindet sich ein dynamisches Text Element das über die bildspezifische Funktion "Set Filter" zur Runtime die aktuellen Filtereinstellungen anzeigt. Da das Text Element eine bildspezifische Funktion verlinkt hat, kann ich ihm keine Variable zuweisen.
    Ich kann das Element zwar über "thisProject.DynPictures.Item("AML").Elements.Item("Filter")" ansprechen, weiß aber nicht wie ich an den zur Runtime angezeigten Text komme.

    1.  Wie kann ich den Zeitfilter auslesen und ihn einem String zuweisen?
        Dabei ist es egal ob das Textelement oder das Bild direkt angesprochen wird.

    2. Wie kann ich den Zeitfilter an die Report Viewer Funktion übergeben wenn ich diese ausführe?


    Freundliche Grüße,
    Florian

  2. #2
    Join Date
    15.09.2016
    Posts
    61

    Default Re: Time Filter in AML

    Ich habe ein wenig in der Zenon Hilfe gesucht und habe ein Beispiel gefunden wie man von einem CEL Bild auf ein AML Bild umschalten kann und dabei den Zeitfilter des CEL Bildes nutzt.
    das ganze habe ich jetzt etwas umgebaut um es für mich nutzen zu können aber ich habe da noch einen Fehler drin.

    Sub PrintAML()Dim MyPic As DynPictureDim MyPicFilter As PictureFilterDim MyFuntion As RtFunction   Set MyPic = thisProject.DynPictures.Item("al_Historical")                                      'Bild vom Typ "Alarm Message List"Set MyPicFilter = MyPic.PictureFilterSet MyFunction = thisProject.RtFunctions.Item("fc_print_AML")                             'Funktion vom Typ "Report Viewer export / print"MsgBox ("1")MyFunction.DynProperties("TimeFilter") = MyPicFilter.DynProperties("TimeFilter")       'Hier muss sich der Fehler befindenMsgBox ("2")MyFunction.StartMsgBox ("3")End Sub


    Kann mir jemand helfen wie die Zuweisung des Zeitfilters richtig lautet?

  3. #3
    Join Date
    15.09.2016
    Posts
    61

    Default Re: Time Filter in AML

    Ich habe nun ein funktionierendes Makro.


    Sub PrintAML() 'Works only with Time filter type "absolute period of time"

    Dim MyPic As DynPicture
    Dim MyPicFilter As PictureFilter
    Dim MyFuntion As RtFunction

    Set MyPic = thisProject.DynPictures.Item("al_Report")
    Set MyPicFilter = MyPic.PictureFilter
    Set MyFunction = thisProject.RtFunctions.Item("fc_print_AML")

    MyFunction.DynProperties("Filter.TimeFilter.ARVTime1") = MyPicFilter.DynProperties("TimeFilter.ARVTime1")
    MyFunction.DynProperties("Filter.TimeFilter.ARVTime2") = MyPicFilter.DynProperties("TimeFilter.ARVTime2")
    MyFunction.Start

    End Sub

    Beim Aufruf des Bildes "al_Report" öffnet sich ein Zeitfilter Bild in dem ich die gewünschte Zeitspanne als "absolute period of time" einstellen kann. Danach öffnet sich der Report welcher nur Einträge innerhalb der gewählten Zeitgrenze anzeigt. Der eingestellte Zeitfilter ist Teil der Bildeigenschaft PictureFilter in VBA. Diesen Zeitfilter kann ich nun über VBA an meine "Report Viewer: export / print" Funktion übergeben und diese dann ausführen. Die Bildwechsel- und die Druckfunktion müssen beide den Absolutzeitfilter voreingestellt haben damit das Makro so funktioniert.

    Das einzige was mir jetzt noch Bauchschmerzen macht ist, dass das Makro den Zeitbereich nur dann richtig setzt, wenn der Absolutzeitfilter verwendet wird (Was wahrscheinlich auf die zwei Eigenschaften ARVTime1&2 zurück zu führen ist). Bei einem Relativzeitfilter wird der Zeitbereich nicht an die Funktion mit übergeben und es werden alle historischen Daten der AML gedruckt.

    Kann mir jemand mit einem Beispiel helfen welches erklärt wie alle Zeitfiltertypen verwendet werden können?
    Ich bin jetzt nämlich mit meinem Latein am Ende.


    Anmerkung: Es handelt sich nicht mehr speziell um ein Bild vom Typ "Alarm Message List" aus dem der Zeitfilter ausgelesen werden soll. Es ist mit jedem zeitgefilterten Bild möglich, da jedes Bild, welches zeitlich gefiltert werden kann, die Eigenschaft PictureFilter aufweist. In meinem Fall ist es ein Bild vom Typ "Report Viewer".
    Last edited by Florian L. : 7th November 2016 at 14:46

  4. #4
    Join Date
    15.09.2016
    Posts
    61

    Default Re: Time Filter in AML

    Hallo alle zusammen.
    Hier nochmal ein kleines Update.

    Ich weiß mittlerweile wie ich bei der Nutzung eines Absolut Zeit Filters sowohl den Bildfilter als auch eine String Variable übergeben kann.
    Die String Variablen beschreibe ich über die Funktion "Write Time to Variable".


    Dim MyPic As DynPicture
    Dim MyPicFilter As PictureFilter
    Dim MyFunction As RtFunction

    Set MyFunction = thisProject.RtFunctions.Item("Name der Funktion vom Typ druck/export Report Viewer" )
    Set MyPic = thisProject.DynPictures.Item("Name des aufgerufenen Bildes von dem der Zeitfilter übernommen werden soll" )

    'Variante 1
    MyFunction.DynProperties("Filter.TimeFilter.ARVTime1") = CDate(thisProject.Variables.Item("Name der Variable für die Anfangszeit").Value)
    MyFunction.DynProperties("Filter.TimeFilter.ARVTime2") = CDate(thisProject.Variables.Item("Name der Variable für die Endzeit").Value)

    'Variante 2
    ' Set MyPicFilter = MyPic.PictureFilter

    ' MyFunction.DynProperties("Filter.TimeFilter.ARVTime1") = MyPicFilter.DynProperties("TimeFilter.ARVTime1")
    ' MyFunction.DynProperties("Filter.TimeFilter.ARVTime2") = MyPicFilter.DynProperties("TimeFilter.ARVTime2")

    MyFunction.Start

    Da ich nun die "druck/export Report Viewer" Funktion nutzen kann ohne auf die Einstellung des Zeitbereichs verzichten zu müssen kann ich an mein erzeugtes PDF auch einen eigenen Namen mit Zeitstempel zuweisen.


    Da ich aber wie schon gesagt auch gerne andere Zeitfiltertypen als den Absolut Zeit Filter verwenden möchte, würde ich sehr gerne erfahren wie ich zum Beispiel ein Relativ Zeit Filter verwenden kann. Es muss ja noch andere Schlüsselwörter als nur ARVTime1 und 2 geben.
    Ich bin wirklich für jeden Ratschlag und Hinweis dankbar.

    Mit freundlichen Grüßen,
    Florian

Similar Threads

  1. time filter of report for following archive
    By roberto1978 in forum zenon Service Engine Supervisor
    Replies: 3
    Last Post: 22nd March 2017, 13:06
  2. Read Date & Time from Time Attribute on IEC61850
    By salmanhassan2 in forum zenon Energy Edition
    Replies: 4
    Last Post: 22nd February 2013, 07:34
  3. Setup a filter at design time
    By matholton in forum zenon Service Engine Supervisor
    Replies: 2
    Last Post: 3rd October 2008, 08:40

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •