02-18-2010 08:16 AM
02-18-2010 09:44 AM
Hallo Luca88,
In DIAdem laesst sich die X-Achse relative leicht - entweder manuall oder per Script automatisch - auf einen bestimmten Zeitbereich einstellen.
Kannst Du einen Datensatz hochladen (oder per FTP an mich senden), mit dem ich Dir das zeigen kann?
Folgendes brauchst Du (grob), um Deine Aufgabe zu erfuellen:
1. Datensatz
2. REPORT Layout, das die Daten so darstellt wie von Dir gewuenscht.
3. Script, in dem die Parameter fuer die X-Achstenskalierung der oben genannten REPORT Layouts an den gewuenschten Bereich angepasst werden.
Das Script enthaelt eine Eingabeauffoerderung fuer den Bereich, und macht dann die benoetigten Aenderungen am Layout.
Das ganze sollte recht schnell und einfach zu machen sein.
Mit einem Datensatz kann ich ein kleines Beispiel machen. Ich kann auch einen der DIAdem Demo Datensaetze verwenden wenn das fuer DIch reicht.
Gruss,
Otmar
02-18-2010 09:57 AM
02-18-2010 04:48 PM
Hallo Luca88,
Hier ist ein - bewusst sehr einfach gehaltenes - Beispiel zum Eingeben der Achsenskalierung "per Hand". Das Script und das Layout sind in der ZIP Datei am Ende dieses Postings.
L1 = InputBox("Bitte den Anfangswert der X-Achse eingeben:") L2 = InputBox("Bitte den Endwert der X-Achse eingeben:") '------------------- Kurven- und Achsendefinition --------------------- Call GraphObjOpen("2DAxis1") 'Oeffnet das Achsenobjekt '------------------- X Skalierung -------------------------------- Call GraphObjOpen("2DXAxis1_1") 'Oeffnet das Kurvenobjekt D2AxisXScaleType = "begin/end manual" 'Setzt die skalierung von "automatisch" auf "manuell" D2AxisXBegin = L1 'Ubernimmt den oben eingegebenen Anfangswert fuer die X-Achse D2AxisXEnd = L2 'Ubernimmt den oben eingegebenen Endwert fuer die X-Achse Call GraphObjClose("2DXAxis1_1") Call GraphObjClose("2DAxis1") Call PicUpdate
Das Beispiel funktioniert mit einem beliebigen Beispieldatensatz von DIAdem der Serie "TR_*.TDM" (im Zweifelsfall im Navigator nach "TR_*" suchen).
Das Beispiel ist bewusst sehr einfach gehalten, Dinge wie eine Ueberpruefung ob die Anfangs- und Endwerte mit den Daten zusammenpassen (kann ja gut sein das jemand einen Wert eingibt der weit ueber dem Maximalwert der X-Achse liegt) oder ob jemand etwas anderes als Ziffern eingegeben hat, habe ich nicht eingebaut.
Die Eingabedialoge sind auch extrem haesslich (VBS Funktion InputBox) und lassen sich erheblich verbessern, aber hier geht es ja nur ums Prinzip, nicht um Schoenheit.
Ich hoffe das hilft erstmal weiter, ich bin am Freitag noch im Buero, dann fliege ich eine Woche nach Washington DC um dort Kunden zu besuchen und werde tagsueber keine Gelegenheit haben hier im Forum vorbeizugucken.
Besste Gruesse aus Austin,
Otmar
02-19-2010 03:36 AM
02-19-2010 03:46 AM
02-19-2010 05:34 AM
02-19-2010 09:44 AM
Hallo Luca88,
ich habe das Script und Layout leicht veraendert um der Datumsfrage gerecht zu werden.
Bitte probiere folgendes aus:
In der VBS Datei habe ich folgendes veraendert:
L1 (und L2, L3, ...) sind freie LongIntegervariablen in DIAdem (ist in dieser Scriptvariante nicht mehr benutzt)
R1 (und R2, R3, ...) sind freie Realvariablen in DIAdem
T1 (und T2, T3, ...) sind freie Textvariablen in DIAdem
"Frei" bedeutet hier das diese Variablen nicht von DIAdem benutzt wird (um z.B. die Achsenskalierung zu bestimmen), sondern dem Anwender frei zur Verfuegung steht um dort eigene Werte abzulegen.
T1 = InputBox("Bitte den Anfangswert der X-Achse eingeben:") T2 = InputBox("Bitte den Endwert der X-Achse eingeben:") R1 = ttr(T1) R2 = ttr(T2)
In der InputBox geben wir Textvariablen (T1, T2) ein. Das Format dort muss genau mit dem in DIAdem eingestellten Datums/Zeitvormat uebereinstimmen, also in Deutschland das Format (dd.mm.yyyy hh:nn:ss.ffff) - das entspricht Deinem Datum "19.02.2010 12.00.00.0000". Eingabe ist "19.02.2010 12.00.00.0000" ohne die Anfuehrungszeichen, jeweis korrekt fuer Anfangs- und Endwert!
Der Code R1 = TTR(T1) wandelt die Textvariable in einen Realwert um, den man dann als Achsenskalierung nutzen kann. Die Achsenskalierung erwartet Real oder Integerwert, daher muss das Datumsformat (String) in einen Realwert umgerechnet werden. TTR ist dioe Funktion TimeToReal, Details dazu sind in der DIAdem Hilfe zu finden.
Zuletzt habe ich die Variablen R1 und R2 den Anfangs- und Endwerten der X-Achsenskalierung zugewiesen (siehe Script im Anhang).
Das Ganze laesst sich erheblich verbessern (z.B. indem man im Eingabedialog prueft ob das Datumsformat korrekt eingegeben wurde - dazu muss man allerdings einen Scriptable User Dialog - SUD erstellen - das kann man in der Hilfe nachlesen), aber im Prinzip ist das Script eine lauffaehige Loesung.
Ich hoffe das hilft weiter.
Gruss,
Otmar
02-22-2010 07:51 AM
02-22-2010 08:03 AM
Call GraphSheetShow(GraphSheetName)
keine weiteren Fragen 🙂