你好,jthi,
感謝您關注此事,以下是腳本,我還附加了文件。
清除日誌();
預設開始時間 = (today()-12*3600);
預設結束時間 = 今天();
使用者 = 取得環境變數( “使用者名稱” ) ;
小時警報率預設值=5;
六小時警報率預設值=5;
start_week = 一年中的第幾週(今天());
列表週數 = {};
For( i = 1, /*i<=10 &*/ i <= start_week, i++, //i<=10 限制組合框持續 10 週
//iwwtodate(start_week - (i - 1), year(today()), 2 /*星期一*/ )
插入(list_weeks,Eval(“WW”|| Char(start_week - (i - 1))))
(此處似有缺失,請提供更正的文字)。
使用者 = 取得環境變數( “使用者名稱” ) ;
// 定義時間函數。
iwwtodate = 函數({_ww_,_year_,_dayofweek_},
//局部變數
{_ww01thisyear_ = 0, _sundayww01_ = 0},
_ww01thisyear_ = Informat( "01Jan" || Char( _year_ ) );
_sundayww01_ = _ww01thisyear_ - (星期幾( _ww01thisyear_ ) - 1) * 24 * 3600;
(_ww_ - 1) * 7 * 24 * 3600 + _sundayww01_ + (_dayofweek_ - 1) * 24 * 3600
;
(此處似有缺失,請提供更正的文字)。
date_box = Function( //使 Graham 的日期方塊難以混亂
{timething = 今天()},
{newbox},
current_ver = Left( JMP Version(), 2 );
如果(Num(current_ver)> = 11,
新框= Eval(
代替(
名稱表達式(
數字編輯框(
timething,//Eval(Sub()) 因為 JMP 怪癖
10, //只需要這個,因為 JMP 沒有預設寬度
<
函數({self},
{},
如果(缺少(self<
self << Set( Eval( DUMMY ) )//將日期設為 timething 參數
)
)
),
<
)
),
Expr(DUMMY),時間
)
)
,
newbox = 文字編輯框(Char(格式(時間,“m/d/yh:m:s”)))
(此處似有缺失,請提供更正的文字)。
//新框;
(此處似有缺失,請提供更正的文字)。
//結束定義時間函數。
// 建立 expr 視窗彈出 + 時間檢查
expr_window = Expr(
QueryOptionsChooser = New Window( "CHT PWL SPL CV 快速監控 " || 使用者 || "",
<
<
V 列錶框(
文字方塊(“”)
面板框(“您希望報告自動刷新嗎?”,
H 列錶框(
V 列錶框(文字方塊( “方法”),tautorefresh = 組合方塊( { “執行一次”, “自動刷新”},顯示(tautorefresh << Get() ))),
文字方塊(“”)
V 列錶框(
文字方塊(“選項”)
Option_select = 單選框({“兩者”,“僅 SPEC-PL 最後 30 分鐘”,“僅 PWL、SPL、CV”},顯示(Option_select << get()))
),
V 列錶框(
文字方塊(“刷新間隔”)
trefresh = Radio Box( {"5 分鐘", "20 分鐘", "60 分鐘", "2 小時"}, Show( trefresh << Get() ) )
),
/*
文字方塊(“”)
V 列錶框(文字方塊(「刷新速度」),rspeed_cb = 複選框(「快速」),rspeed_cb << 設定(1, 1 )),
*/
文字方塊(“”)
V 列錶框(文字方塊(“自動刷新的時間範圍資料”),天數 = 單選框({“1 天”,“0.5 天”,“6 小時”,“2 小時”})),
文字方塊(“”)
),
),
/*
面板框(“請選擇時間範圍”,
H 列錶框(
V 列錶框(
//文字方塊(「時間方法」),
//method=Radio Box( {"天前", "日期範圍"}),
文字方塊(“時間方法”)
方法 = 組合框({“天前”,“日期範圍”}),
),
文字方塊(“”)
V 列錶框(文字方塊(“天前”),天數 = 單選框({“1.5”,“3.5”,“7”,“2 小時”})),
文字方塊(“”)
V 列錶框(
文字方塊(“日期範圍”),
V 列錶框(
startdatebox = date_box(今天() - 3.5 * 24 * 60 * 60 );
enddatebox = date_box( 今天() );
開始日期 = 開始日期框;,
結束日期 = 結束日期框,
),
),
),
),
*/
間隔盒(尺寸(10, 10)),
H 列錶框(
間隔盒(尺寸(10, 10)),
面板框(“選擇植物:”,
H 列錶框(
間隔框( 尺寸( 10, 0 ) ),
V 列錶框( "Plant", PlantSelect = 單選框( {"DMT1", "DMT2", "KMT1", "PGT1", "PGT2"} ), PlantSelect << set( 1 ) ),
間隔框( 尺寸( 10, 0 ) ),
)
),
墊片盒(尺寸( 20, 10 )),
面板框(“選擇交易時間視窗:”,
文字方塊(“”)
H 列錶框(
文字方塊(“開始時間:”)
StartTimeBox = H 列錶框(
StartTimePickBox = date_box( 預設開始時間 );
開始時間選擇 = 開始時間選擇框;
//RocoTimeStartPick = date_box( (StartTimePick << 取得) - 3600 );
),
文字方塊(“”)
按鈕框(“設定為凌晨 12:00”,
最後時間 = 開始時間選擇框 << 取得;
開始時間選擇框<<刪除;
開始時間框 << 附加(
StartTimePickBox = date_box( 86400 * Floor( LastTime / 86400 ) );
開始時間選擇 = 開始時間選擇框;
//RocoTimeStartPick = date_box( 86400 * Floor( (LastTime - 3600) / 86400 ) );
//RocoTimeStartPick = date_box( (StartTimePick << 取得) - 3600 );
(此處似有缺失,請提供更正的文字)。
),
),
//RocoTimeStartPick = date_box( (StartTimePickBox << 取得) - 3600 );
文字方塊(“”)
H 列錶框(
文字方塊(“結束時間:”)
EndTimeBox = H 列錶框(
EndTimePickBox = date_box( 預設結束時間 );
結束時間選擇 = 結束時間選擇框;
),
文字方塊(“”)
按鈕框(“設定為凌晨 12:00”,
最後時間 = EndTimePickBox << 取得;
EndTimePickBox << 刪除;
EndTimeBox << 附加(
EndTimePickBox = date_box( 86400 * Floor( 上次時間 / 86400 ) );
結束時間選擇 = 結束時間選擇框;
(此處似有缺失,請提供更正的文字)。
),
),
),
間隔盒(尺寸(10, 10)),
),
間隔盒(尺寸( 20, 20 ) ),
//RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );
H 列錶框(對齊(右)、間隔框()、按鈕框(「確定」)、按鈕框(「取消」))
) //結束整體 VListBox()
(此處似有缺失,請提供更正的文字)。
如果(QueryOptionsChooser["按鈕"] == -1,
停止運行
(此處似有缺失,請提供更正的文字)。
// 刷新的減速時間。
天數 = 天數 << 取得;
dateoffset = Match( days, 1, "24", 2, "12", 3, "6", 4, "2" );
ar = tautorefresh << 取得;
ref = trefresh << 取得;
刷新 = Match( ref, 1, "5", 2, "20", 3, "60", 4, "120" );
//rspeed = rspeed_cb << 取得;
//處理事件刷新已勾選
如果(ar == 2,
StartTimePick = date_box(Today()-Num(dateoffset)*3600);
EndTimePick = date_box( 預設結束時間 );
(此處似有缺失,請提供更正的文字)。
RocoTimeStartPick = date_box( (StartTimePick << 取得) - 3600 ); // 取得 CHT 時間前 1 小時的 roco 時間
RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );// 取得 roco 時間 1 小時後的 CHT 時間
CHTTimeStartPick = date_box( (StartTimePick << 取得) - 1800 );
CHTTimeEndPick = date_box( (EndTimePick << 取得) + 1800 );
SPL_PL_start = date_box( (EndTimePick << Get) - 1800 );
SPL_PL_end = date_box(EndTimePick<<取得);
//收集使用者選擇
植物選擇 = QueryOptionsChooser["植物選擇"];
植物名稱 = Match(植物選擇,1,"DMT1",2,"DMT2",3,"KMT1",4,"PGT1",5,"PGT2" );
//顯示(植物名稱);
StartTimeSelection = 格式(StartTimePick << Get,「m/d/yh:m:s」);
EndTimeSelection = 格式(EndTimePick << Get,「m/d/yh:m:s」);
RocoTimeStart = 格式(RocoTimeStartPick << 獲取,「m/d/yh:m:s」);
RocoTimeEnd = 格式( RocoTimeEndPick << 獲取,「m/d/yh:m:s」 );
CHTTimeStart = 格式( CHTTimeStartPick << 獲取,「m/d/yh:m:s」 );
CHTTimeEnd = 格式( CHTTimeEndPick << 獲取,「m/d/yh:m:s」 );
SPLPL_timestart = 格式(SPL_PL_start << 獲取,“m/d/yh:m:s”);
SPLPL_timeend = 格式(SPL_PL_end << 獲取,「m/d/yh:m:s」);
選項選擇 = QueryOptionsChooser["選項選擇"];
列印(選項選擇);
印刷(植物名稱);
列印(開始時間選擇);
列印(結束時間選擇);
列印(RocoTimeStart);
印刷(RocoTimeEnd);
列印(CHTTimeStart);
列印(CHTTimeEnd);
Print( refresh || " 刷新時間" );
expr_TimeCheck = Expr(
TimeFixWindow = New Window( "時間選擇錯誤!",
<
<
H 列錶框(
V 列錶框(
文字方塊(“”)
文字方塊(「您的開始時間晚於結束時間!要再試一次嗎?」),
文字方塊(“”)
文字方塊(“您選擇了:”)
H 列錶框(
文字方塊(“”)
V 列錶框(
H 列錶框(文字方塊("開始時間:" || StartTimeSelection ),),
H 列錶框(文字方塊("結束時間:" || EndTimeSelection ))
)
),
文字方塊(“”)
H 列錶框(
文字方塊(“開始時間:”)
StartTimePickBox = date_box( 預設開始時間 );
開始時間選擇 = 開始時間選擇框;
),
文字方塊(“”)
H 列錶框(
文字方塊(“結束時間:”)
EndTimePickBox = date_box( 預設結束時間 );
結束時間選擇 = 結束時間選擇框;
),
文字方塊(“”)
)
),
H 列錶框(對齊(右),間隔框(),OKButton = 按鈕框(「確定」),按鈕框(「取消」))
(此處似有缺失,請提供更正的文字)。
StartTimeSelection = 格式(StartTimePick << Get,「m/d/yh:m:s」);
EndTimeSelection = 格式(EndTimePick << Get,「m/d/yh:m:s」);
如果(TimeFixWindow["按鈕"] == -1,
停止運行
(此處似有缺失,請提供更正的文字)。
//根據需要遞迴
如果(Informat(StartTimeSelection,"m/d/yh:m:s" )> Informat(EndTimeSelection,"m/d/yh:m:s" ),
Eval( expr_TimeCheck ),
Eval(expr_Scrap_SQL)
(此處似有缺失,請提供更正的文字)。
(此處似有缺失,請提供更正的文字)。 //結束 expr_TimeCheck
如果(Informat(StartTimeSelection,"m/d/yh:m:s" )> Informat(EndTimeSelection,"m/d/yh:m:s" ),
Eval( expr_TimeCheck ),
VisionStartTime = 格式(
Max( Informat( StartTimeSelection, "m/d/yh:m:s" ), 86400 * Floor( (Informat( EndTimeSelection, "m/d/yh:m:s" ) - 86400) / 86400 ) ),
“月/日/年時:分:秒”
(此處似有缺失,請提供更正的文字)。
如果(Today()-Informat(EndTimeSelection,「m/d/yh:m:s」)> 86400,
VisionEndTime = 格式(
最小值(Informat(EndTimeSelection,“m/d/yh:m:s”),86400 * 上限((Informat(EndTimeSelection,“m/d/yh:m:s”)-86400)/86400)),
“月/日/年時:分:秒”
),
VisionEndTime = 格式(
Min( Informat( VisionStartTime, "m/d/yh:m:s" ) + 86400, Informat( EndTimeSelection, "m/d/yh:m:s" ) ),
“月/日/年時:分:秒”
)
(此處似有缺失,請提供更正的文字)。
(此處似有缺失,請提供更正的文字)。
(此處似有缺失,請提供更正的文字)。
SPL_expr = Expr(
QueryInfo =“DRIVER = SQL Server; SERVER =”||植物名稱 || "MESSQLODS;APP=Microsoft Office XP;WSID=FS-1261;DATABASE=ODS;Trusted_Connection=是";
//QueryInfo =“DRIVER=SQL Server;SERVER=”||植物名稱 ||
//「messqlods.fs.local;APP=Microsoft Office XP;WSID=FS-10967;DATABASE=ODS;Trusted_Connection=是」;