Hallo jthi,
Vielen Dank für Ihre Kontaktaufnahme. Unten ist das Skript und ich habe auch die Datei angehängt.
Protokoll löschen();
StandardStartzeit = (heute()-12*3600);
StandardEndzeit = Heute();
Benutzer = Umgebungsvariable abrufen ("Benutzername");
HourAlertRateDefault = 5;
SechsStundenAlarmRateDefault = 5;
start_week = Woche des Jahres (Heute());
list_weeks = {};
Für (i = 1, /*i<=10 &*/ i <= start_week, i++, //das i<=10 begrenzt die Combobox auf die letzten 10 Wochen
//iwwtodate(Startwoche - (i - 1), Jahr(heute()), 2 /*Montag*/ )
Einfügen in (Liste_Wochen, Eval ("WW" || Char(Start_Woche - (i - 1))))
);
Benutzer = Umgebungsvariable abrufen ("Benutzername");
// Zeitfunktion definieren.
iwwtodate = Funktion( {_ww_, _Jahr_, _Wochentag_},
//Lokale Variablen
{_ww01diesesjahr_ = 0, _sonntagww01_ = 0},
_ww01thisyear_ = Informat( "01Jan" || Char( _year_ ) );
_sundayww01_ = _ww01thisyear_ - (Wochentag( _ww01thisyear_ ) - 1) * 24 * 3600;
(_ww_ - 1) * 7 * 24 * 3600 + _Sonntagww01_ + (_Wochentag_ - 1) * 24 * 3600
;
);
date_box = Funktion( //erstellt Grahams Datebox, die schwer zu verfälschen ist
{timething = Heute()},
{newbox},
current_ver = Left( JMP-Version(), 2 );
Wenn( Num( current_ver ) >= 11,
neue Box = Eval(
Ersatz(
Name Ausdruck(
Nummernbearbeitungsfeld(
timething, //Eval(Sub()) wegen einer JMP-Eigenart
10, //brauche das nur, weil JMP keine Standardbreite vorgibt
<
Funktion( {self},
{},
Wenn( Fehlt( self << get ),
self << Set( Eval( DUMMY ) ) // setzt das Datum auf das Timething-Argument
)
)
),
<
)
),
Ausdruck (DUMMY), Zeitding
)
)
,
newbox = Textbearbeitungsfeld(Char(Format(Timething, "m/d/yh:m:s")))
);
//neue Box;
);
// Ende der Zeitfunktion definieren.
//Expr-Fenster-Popup erstellen + Zeitprüfung
Ausdrucksfenster = Ausdruck(
QueryOptionsChooser = Neues Fenster( "CHT PWL SPL CV Quick Monitoring " || Benutzer || "",
<
<
V-Listenfeld(
Textfeld( " " ),
Panel-Box ("Möchten Sie, dass der Bericht automatisch aktualisiert wird?",
H-Listenfeld(
V Listenfeld( Textfeld( "Methode" ), tautorefresh = Kombinationsfeld( {"Einmal ausführen", "Automatische Aktualisierung"}, Anzeigen( tautorefresh << Holen() ) ) ),
Textfeld( " " ),
V-Listenfeld(
Textfeld ("Option")
Option_select = Radio Box( {"Beide", "Nur SPEC-PL letzte 30 Min.","Nur PWL, SPL, CV " }, show( Option_select << get() ) )
),
V-Listenfeld(
Textfeld ("Aktualisieren alle "),
trefresh = Radio Box( {"5 Minuten", "20 Minuten", "60 Minuten", "2 Stunden"}, Show( trefresh << Get() ) )
),
/*
Textfeld( " " ),
V Listenfeld( Textfeld( "Aktualisierungsgeschwindigkeit " ), rspeed_cb = Kontrollkästchen( {"Schnell"} ), rspeed_cb << Set( 1, 1 ) ),
*/
Textfeld( " " ),
V Listenfeld( Textfeld( "Zeitbereichsdaten für automatische Aktualisierung" ), Tage = Optionsfeld( {"1 Tag", "0,5 Tag", "6 Stunden", "2 Stunden"} ) ),
Textfeld( " " ),
),
),
/*
Panel Box( "Bitte wählen Sie den Zeitraum aus",
H-Listenfeld(
V-Listenfeld(
//Textfeld ("Zeitmethode"),
//Methode=Radio Box( {"Vor Tagen", "Datumsbereich"}),
Textfeld ("Zeitmethode")
Methode = Kombinationsfeld ({"Vor Tagen", "Datumsbereich"}),
),
Textfeld( " " ),
V Listenfeld( Textfeld( "Vor Tagen" ), Tage = Optionsfeld( {"1,5", "3,5", "7", "2 Stunden"} ) ),
Textfeld( " " ),
V-Listenfeld(
Textfeld ("Datumsbereich")
V-Listenfeld(
startdatebox = date_box(Heute() - 3,5 * 24 * 60 * 60 );
enddatebox = date_box( Heute() );
Startdatum = Startdatumsfeld;,
Enddatum = Enddatumsfeld,
),
),
),
),
*/
Distanzbox (Größe (10, 10)),
H-Listenfeld(
Distanzbox (Größe (10, 10)),
Panel Box( "Pflanze auswählen:",
H-Listenfeld(
Abstandshalter (Größe (10, 0)),
V Listbox( "Anlage", Anlagenauswahl = Optionsfeld( {"DMT1", "DMT2", "KMT1", "PGT1", "PGT2"} ), Anlagenauswahl << set( 1 ) ),
Abstandshalter (Größe (10, 0)),
)
),
Distanzbox (Größe (20, 10)),
Panel Box( "Wählen Sie ein Zeitfenster für die Transaktion:",
Textfeld( " " ),
H-Listenfeld(
Textfeld ("Startzeit: "),
StartTimeBox = H-Listenfeld(
StartTimePickBox = date_box( Standardstartzeit );
StartTimePick = StartTimePickBox;
//RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 );
),
Textfeld( " " ),
Button Box( "Auf 0:00 Uhr einstellen.",
LetzteZeit = StartTimePickBox << Holen;
StartTimePickBox << Löschen;
StartTimeBox << Anhängen(
StartTimePickBox = date_box( 86400 * Floor( Letzte Zeit / 86400 ) );
StartTimePick = StartTimePickBox;
//RocoTimeStartPick = date_box( 86400 * Floor( (LetzteZeit - 3600) / 86400 ) );
//RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 );
);
),
),
//RocoTimeStartPick = date_box( (StartTimePickBox << Get) - 3600 );
Textfeld( " " ),
H-Listenfeld(
Textfeld ("Endzeit: "),
EndTimeBox = H-Listenfeld(
EndTimePickBox = date_box( Standard-Endzeit );
EndTimePick = EndTimePickBox;
),
Textfeld( " " ),
Button Box( "Auf 0:00 Uhr einstellen.",
LetzteZeit = EndTimePickBox << Holen;
EndTimePickBox << Löschen;
EndTimeBox << Anhängen(
EndTimePickBox = date_box( 86400 * Floor( Letzte Zeit / 86400 ) );
EndTimePick = EndTimePickBox;
);
),
),
),
Distanzbox (Größe (10, 10)),
),
Distanzbox (Größe (20, 20)),
//RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );
H Listbox( Ausrichten( Rechts ), Spacer Box(), Button Box( "OK" ), Button Box( "Abbrechen" ) )
) //Ende der gesamten VListBox()
);
Wenn( QueryOptionsChooser["Button"] == -1,
Hör auf, das Ding laufen zu lassen
);
// Deklaration Zeit zum Aktualisieren.
Tage = Tage << Holen;
dateoffset = Match(Tage, 1, "24", 2, "12", 3, "6", 4, "2" );
ar = tautorefresh << get;
ref = trefresh << get;
aktualisieren = Match(ref, 1, "5", 2, "20", 3, "60", 4, "120");
//rspeed = rspeed_cb << get;
//Prozessereignis Aktualisieren angekreuzt
Wenn (ar == 2,
StartTimePick = date_box(Heute() - Num(Datumsoffset) * 3600);
EndTimePick = date_box(Standard-Endzeit);
);
RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 ); // Roco-Zeit 1 Stunde vor CHT-Zeit abrufen
RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );// Roco-Zeit 1 Stunde später als CHT-Zeit abrufen
CHTTimeStartPick = date_box( (StartTimePick << Get) - 1800 );
CHTTimeEndPick = date_box( (EndTimePick << Get) + 1800 );
SPL_PL_start = date_box( (EndTimePick << Get) - 1800 );
SPL_PL_end = date_box(EndTimePick << Get);
//Benutzerauswahl sammeln
Pflanzenauswahl = Abfrageoptionsauswahl["Pflanzenauswahl"];
Anlagenname = Übereinstimmung(Anlagenauswahl, 1, "DMT1", 2, "DMT2", 3, "KMT1", 4, "PGT1", 5, "PGT2" );
//zeigen(Anlagenname);
StartTimeSelection = Format(StartTimePick << Get, "m/d/yh:m:s" );
EndTimeSelection = Format(EndTimePick << Get, "m/d/yh:m:s");
RocoTimeStart = Format(RocoTimeStartPick << Get, "m/d/yh:m:s");
RocoTimeEnd = Format(RocoTimeEndPick << Get, "m/d/yh:m:s");
CHTTimeStart = Format(CHTTimeStartPick << Get, "m/d/yh:m:s" );
CHTTimeEnd = Format(CHTTimeEndPick << Get, "m/d/yh:m:s" );
SPLPL_timestart = Format( SPL_PL_start << Get, "m/d/yh:m:s" );
SPLPL_timeend = Format( SPL_PL_end << Get, "m/d/yh:m:s" );
option_selection = QueryOptionsChooser["Option_select"];
Drucken(Optionsauswahl);
Drucken(Anlagenname);
Drucken( StartZeitAuswahl );
Drucken(EndTimeSelection);
Drucken( RocoTimeStart );
Drucken( RocoTimeEnd );
Drucken( CHTTimeStart );
Drucken( CHTTimeEnd );
Print( refresh || " Aktualisierungszeit" );
Ausdruck_TimeCheck = Ausdruck(
TimeFixWindow = Neues Fenster( "Fehler bei der Zeitauswahl!",
<
<
H-Listenfeld(
V-Listenfeld(
Textfeld( " " ),
Textfeld („Ihre Startzeit war später als Ihre Endzeit! Möchten Sie es noch einmal versuchen?“),
Textfeld( " " ),
Textfeld ("Sie haben gewählt:")
H-Listenfeld(
Textfeld( " " ),
V-Listenfeld(
H Listenfeld( Textfeld( "Startzeit: " || StartTimeSelection ), ),
H Listenfeld( Textfeld( "Endzeit: " || EndTimeSelection ) )
)
),
Textfeld( " " ),
H-Listenfeld(
Textfeld ("Startzeit: "),
StartTimePickBox = date_box( Standardstartzeit );
StartTimePick = StartTimePickBox;
),
Textfeld( " " ),
H-Listenfeld(
Textfeld ("Endzeit: "),
EndTimePickBox = date_box( Standard-Endzeit );
EndTimePick = EndTimePickBox;
),
Textfeld( " " ),
)
),
H Listbox(Ausrichten( Rechts ), Spacer Box(), OKButton = Button Box( "OK" ), Button Box( "Abbrechen" ) )
);
StartTimeSelection = Format(StartTimePick << Get, "m/d/yh:m:s" );
EndTimeSelection = Format(EndTimePick << Get, "m/d/yh:m:s");
Wenn( TimeFixWindow["Button"] == -1,
Hör auf, das Ding laufen zu lassen
);
//Rekursion nach Bedarf
Wenn(Informat(StartTimeSelection, "m/d/yh:m:s" ) > Informat(EndTimeSelection, "m/d/yh:m:s" ),
Eval( Ausdruck_TimeCheck ),
Eval( Ausdruck_Scrap_SQL )
);
); //Ende expr_TimeCheck
Wenn(Informat(StartTimeSelection, "m/d/yh:m:s" ) > Informat(EndTimeSelection, "m/d/yh:m:s" ),
Eval( Ausdruck_TimeCheck ),
VisionStartTime = Format(
Max(Informat(StartTimeSelection, "m/d/yh:m:s" ), 86400 * Floor( (Informat(EndTimeSelection, "m/d/yh:m:s" ) - 86400) / 86400 ) ),
"m/t/jh:m:s"
);
Wenn(Heute() - Informat(EndTimeSelection, "m/d/yh:m:s" ) > 86400,
VisionEndTime = Format(
Min(Informat(EndTimeSelection, "m/d/yh:m:s" ), 86400 * Decke( (Informat(EndTimeSelection, "m/d/yh:m:s" ) - 86400) / 86400 ) ),
"m/t/jh:m:s"
),
VisionEndTime = Format(
Min(Informat(VisionStartTime, "m/t/yh:m:s" ) + 86400, Informat(EndTimeSelection, "m/t/yh:m:s" ) ),
"m/t/jh:m:s"
)
);
);
);
SPL_Ausdruck = Ausdruck(
Abfrageinfo = "TREIBER=SQL Server;SERVER=" || Anlagenname || "MESSQLODS;APP=Microsoft Office XP;WSID=FS-1261;DATENBANK=ODS;Vertrauenswürdige_Verbindung=Ja";
//QueryInfo = "TREIBER=SQL Server;SERVER=" || Anlagenname ||
//"messqlods.fs.local;APP=Microsoft Office XP; WSID=FS-10967;DATABASE=ODS;Trusted_Connection=Ja";