DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Aus Script heraus Report bearbeiten

Hallo,

ich würde gerne aus einem laufenden Script heraus den Report bearbeiten z.B. die Achsenskalierung in einem Diagramm verändern oder bei einem Graph (Kurve) die Farbe verändern.

Es beseht ja die Möglichkeit im Interaktionsmodus " Ineractiv (on)/(off) " Modus aus dem Script heraus manuell den Report zu bearbeiten, besteht die Möglichkeit?

Und wenn ja, kann auch hier z.B. zum bearbeiten der Skalierung, oder ändern der Graph-Farbe ein Dialog geöffnet werden... Grund der Interaktiv Modus kann ja nur aus dem Script heraus gestartet werden?

MfG

SAMIOL





0 Kudos
Message 1 of 11
(8,921 Views)
Hallo Samiol,

es gibt innerhalb eines Scriptes 2 Möglichkeiten ein REPORT zu verändern: a) durch Script-Befehle und b) durch die Interaktion

Zu a)
Im Script kann ein REPORT-Objekt (z.B. ein 2D-Achsenlayout) geöffnet, verändert und wieder geschlossen werden. Hilfreich ist hier beim Erstellen die Tastekombination CTRL-A im geöffneten Dialog. Dabei werden alle Variablen des Objektes in die Zwischeablage kopiert und können in das Script eingefügt werden. Nicht relevante Variablen können entfernt werden.
Hierzu gibt es auch eine Reihe Beispiele wie "AutPeak0.VBS" und "ChnGroups.VBS".

Zu b)
Mit dem Befehl "InterActionOn" kann während des Ablaufens eines Scripts das Bedienen von DIAdem zugelassen werden. Damit das Script weiter läuft, muss der Anwender die Interaktion durch eine entsprechende Ikone beenden.
Beispiel: VIEW_FFT.VBS

Ich hoffe das hilft weiter.

Gruß
Walter
0 Kudos
Message 2 of 11
(8,907 Views)

Hallo Walter Ri....,

zur Lösung b) habe ich eine Schleife eingebaut, welche beim beenden der Interaktionsmodus wieder zurück in den Enddialog führt.
Dies funktioniert auch soweit das man den Report verändern kann.

Bei b) ist mir noch nicht ganz klar wie das funktioniert, ich öffne zum Beispiel einen Dialog mit dem ich die Achsen neu Skalieren möchte, wie kann der eingegeben Werte nun auf meine Achsen anwenden. So das die eingegeben Werte auch die Achsenskalierung ändern ?

Ich kann auch nicht im Aufzeichnungsmodus sehen was passiert wenn ich die Achsen mit neuen Werten skaliere! Ist das nicht möglich?

Noch eine Frage, ich öffne in der Endansicht einen Report mit Blatt 1, Blatt 2 und Blatt 3 ist es möglich per Script nur das aktuelle im Vordergrund liegende Blatt zu Exportieren?


MfG

Samiol

0 Kudos
Message 3 of 11
(8,894 Views)
Hallo Samiol,

wie schon gesagt (siehe weiter oben), der "Schlüssel" zum Manipulieren von REPORT-Objekten ist die Tastenkombination CTRL-A. Wenn der Aufzeichnungsmodus aktiviert ist, werden Syntax und Varialbelzuweisungen in das Script übertragen. Ist der Aufzeichnungsmodus nicht aktiviert werden die Informationen in die Zwischenablage kopiert. Von dort aus können sie in das Script übertragen werden. Die zum gewünschten Ändern nicht notwendigen Zuweisungen können entfernt werden. Beispiel: Ich möchte die darzustellenden Kanäle eintragen und die Y-Skalierung bestimmen. Notwendig ist dazu nur folgendes:

'------------------- Curve and axis definition ---------------------
Call GraphObjOpen("2D-Axis1")
  '------------------- Curve list -------------------------------
  Call GraphObjOpen("2DObj5_Curve1")
    D2CChnXName      ="[1]/Zeit"
    D2CChnYName      ="[1]/Geschwindigkeit"
  Call GraphObjClose("2DObj5_Curve1")
  '------------------- Y scala ----------------------------------
  Call GraphObjOpen("2DYAxis8_1")
    D2AxisYScaleType ="manual"
    D2AxisYBegin     =30
    D2AxisYEnd       =50
  Call GraphObjClose("2DYAxis8_1")
Call GraphObjClose("2D-Axis1")

Ablaufschema: Objekt öffnen, ggf. Unterobjekt öffnen, Variablen setzen und die Objekte in umgekehrter Reihenfolge wieder schließen.
Bitte schau dir hierzu auch die Hilfe und die Beispiele in der Hilfe an.
In deinem Fall müssen die Informationen aus dem SUD-Dialog - die ja in Variablen gespeichert sind - wie oben beschrieben den entsprechenden Variablen zugewiesen werden.

Wenn mit Exportiern das Layout gemeint ist und z.B. nur die letzte Seite als einzelne Layout-Seite gespeichert werden soll, so ist die Vorgehensweise wie folgt:
Komplettes Layout speichern, in der Layout-Verwaltung alle nicht gewünschten Layout-Seiten entfernen, übrig gebliebene Layout-Seite unter neuem Namen speichern, altes Layout wieder laden.
Wenn mit Exportieren das Erstellen eines JPG oder ähnliches gemeint ist, so wird immer nur die aktuelle Seite exportiert.

Gruß
Walter

0 Kudos
Message 4 of 11
(8,890 Views)
Hallo Walter Ri...,

klappt nicht ....  Öffnen eines Reports -> Ansicht aktuallisieren -> Strg A (CTRL-A) -> ändern der Achse -> ins leere Script
Strg V nichts in der Zwischenablage.

Beispiele hab ich mir angesehen die helfen mir nicht wirklich, was läuft verkehrt.

Danke

Samiol
0 Kudos
Message 5 of 11
(8,883 Views)
Hallo Samiol,

du hast noch nicht das Reportobjekt geöffnet. Vorgehensweise:

DIAdem-REPORT
Doppelklick auf Objekt z.B. 2D-Achsensystem (Dialog ist jetzt offen)
STRG-A (CTRL-A) (Infos werden in die Zwischenablage kopiert)
Dialog schließen
DIAdem-SCRIPT
STRG-V (Infos in das Script einfügen)

Gruß
Walter

0 Kudos
Message 6 of 11
(8,880 Views)
Hallo Walter Ri...,

danke jetzt hab auch ich es verstanden ... Smiley Sad

Gruss

Samiol
0 Kudos
Message 7 of 11
(8,876 Views)
Hallo Walter Ri...,

der Ablauf bei mir müsste ja so sein das ich als erstes den Dialog z.B. Achsenskalierung öffne und hier die Werte ändere, dann beim schliessen der Dialoges die geänderten Werte ins Datenportalschreibe und von dort aus die Skalierung ändere.

Bis zum schreiben ins Datenportal funktioniert auch alles aber wie ändere ich die Skalierung ?

Ich hab mir das so vorgestellt... Beispiel zur y-Achse Begin und Ende:

Meine Variablen für "Beginn / Ende" sind "XBeginn_ /XEnde_"

Hier wollte ich nun in der EditBox (Beginn), das gleiche für EditBox7 ... End

Sub EditBox6_EventInitialize()
Dim This : Set This = EditBox6

Call GraphObjOpen("2DYAxis1_1")
    Call GraphObjOpen("2DYAxis1_1")
        D2AxisYBegin     =   XBeginn_
    Call GraphObjClose("2DYAxis1_1")
Call GraphObjClose("2DYAxis1_1")

End Sub

Funktioniert so aber leider nicht, wie sollte ich hier vorgehen ?

Danke

Samiol


0 Kudos
Message 8 of 11
(8,863 Views)
Hallo Samiol,

ich verstehe nicht was du ins Datanportal schreiben musst, um die Skalierung in REPORT zu verändern.

Um eine genauere Antwort zu geben währe es hilfreich zu wissen was genau nicht geht und gibt es eine Fehlermeldung und wenn wie heißt sie?
Ich bin mir auch nicht sicher, ob du wirklich bei der Initialisierung der Editbox die Skalierung verändern möchtest. Ich würde wie folgt vorgehen:

Dialog öffnen
Einträge duch Anwender abwarten
Erst wenn OK-Button gedrückt die Eingabe auf Gültigkeit prüfen und dann die Skalierung durchführen (entweden im Dialog oder im Script)

Gültige Werte für Beginn und Ende etc sind numerische mit Dezimalstellen (Double)

Gruß
Walter
0 Kudos
Message 9 of 11
(8,858 Views)
Hallo Walter Ri...,
so hat jetzt funktioniert bin dort wo ich hin wollte d.h. ich kann den Report bearbeiten, vielen Danke für die Hilfe. Jetzt geht es an das Speichern der Blätter einzeln.
 
Ich hab das ja schon oben angesprochen, wie erkenne ich beim Exportieren oder Drucken welche Grafik aktuell im Vordergrund ist.
 
Gruß
 
SAMIOLS
0 Kudos
Message 10 of 11
(8,798 Views)