你好呀,
感谢您关注此事,下面是脚本,我还附加了文件。
清除日志();
默认开始时间 = (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 << Get) - 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=” || PlantName || “MESSQLODS;APP=Microsoft Office XP;WSID=FS-1261;DATABASE=ODS;Trusted_Connection=Yes”;
//QueryInfo =“DRIVER = SQL Server; SERVER =”|| PlantName ||
//“messqlods.fs.local;APP=Microsoft Office XP;WSID=FS-10967;DATABASE=ODS;Trusted_Connection=是”;