안녕하세요,
접근해 주셔서 감사합니다. 아래에 스크립트가 있고 파일도 첨부했습니다.
로그 지우기();
기본시작시간 = (오늘()-12*3600);
기본종료시간 = 오늘();
사용자 = 환경 변수 가져오기( "사용자 이름" );
시간알림비율기본값 = 5;
6시간 알림율 기본값 = 5;
시작_주 = 올해의 주(오늘());
주 목록 = {};
For( i = 1, /*i<=10 &*/ i <= start_week, i++, //i<=10은 콤보 상자의 기간을 10주로 제한합니다.
//iwwtodate(시작_주 - (i - 1), 연도(오늘()), 2 /*월요일*/ )
Into( list_weeks, Eval( "WW" || Char( start_week - (i - 1) ) ) )에 삽입
);
사용자 = 환경 변수 가져오기( "사용자 이름" );
// 시간 함수를 정의합니다.
iwwtodate = 함수( {_ww_, _년_, _요일_},
//지역 변수
{_ww01올해_ = 0, _일요일ww01_ = 0},
_ww01thisyear_ = Informat( "01Jan" || Char( _year_ ) );
_sundayww01_ = _ww01thisyear_ - (요일( _ww01thisyear_ ) - 1) * 24 * 3600;
(_ww_ - 1) * 7 * 24 * 3600 + _sundayww01_ + (_요일_ - 1) * 24 * 3600
;
);
date_box = Function( // 엉망으로 만들기 어려운 Graham의 datebox를 만듭니다.
{시간 = 오늘()},
{새로운 상자},
current_ver = Left( JMP 버전(), 2 );
Num(현재_버전) >= 11인 경우,
newbox = Eval(
대리자(
이름 Expr(
숫자 편집 상자(
timething, //Eval(Sub()) JMP quirk 때문에
10, //JMP가 기본적으로 너비를 지정하지 않기 때문에 이것만 필요합니다.
<
함수( {self},
{},
만약( self << get )이 누락되었다면,
self << Set( Eval( DUMMY ) )// timething 인수에 날짜를 설정합니다.
)
)
),
<
)
),
Expr(DUMMY), 시간
)
)
,
newbox = 텍스트 편집 상자( Char( Format( Timething, "m/d/yh:m:s" ) ) )
);
//새로운 상자;
);
// 시간 함수 정의를 끝냅니다.
// expr 창 팝업 생성 + 시간 확인
expr_window = Expr(
QueryOptionsChooser = 새 창( "CHT PWL SPL CV 빠른 모니터링 " || 사용자 || "",
<
<
V 목록 상자(
텍스트 상자( " " ),
패널 상자( "보고서를 자동으로 새로 고침하시겠습니까?",
H 목록 상자(
V 목록 상자( 텍스트 상자( "메서드" ), tautorefresh = 콤보 상자( {"한 번 실행", "자동 새로 고침"}, Show( tautorefresh << Get() ) ) ),
텍스트 상자( " " ),
V 목록 상자(
텍스트 상자( "옵션"),
Option_select = Radio Box( {"둘 다", "최근 30분 동안의 SPEC-PL만", "PWL, SPL, CV만" }, show( Option_select << get() ) )
),
V 목록 상자(
텍스트 상자( "새로 고침 간격")
trefresh = Radio Box( {"5분", "20분", "60분", "2시간"}, Show(trefresh << Get() ) )
),
/*
텍스트 상자( " " ),
V 목록 상자( 텍스트 상자( "새로 고침 속도 " ), rspeed_cb = 체크 상자( {"빠름"} ), rspeed_cb << Set( 1, 1 ) ),
*/
텍스트 상자( " " ),
V 목록 상자( 텍스트 상자( "자동 새로 고침을 위한 시간 범위 데이터") ), 일 = 라디오 상자( {"1일", "0.5일", "6시간", "2시간"} ) ),
텍스트 상자( " " ),
),
),
/*
패널 상자( "기간을 선택해 주세요",
H 목록 상자(
V 목록 상자(
//텍스트 상자("시간 방법"),
//method=Radio Box( {"며칠 전", "날짜 범위"}),
텍스트 상자( "시간 방법"),
방법 = 콤보 상자( {"며칠 전", "날짜 범위"}),
),
텍스트 상자( " " ),
V 목록 상자( 텍스트 상자( "며칠 전"), 일 = 라디오 상자( {"1.5", "3.5", "7", "2시간"}) ),
텍스트 상자( " " ),
V 목록 상자(
텍스트 상자( "날짜 범위"),
V 목록 상자(
시작날짜상자 = date_box(오늘() - 3.5 * 24 * 60 * 60);
enddatebox = date_box(오늘());
시작날짜 = 시작날짜상자;,
종료일 = 종료일 상자,
),
),
),
),
*/
스페이서 박스(크기( 10, 10 ) ),
H 목록 상자(
스페이서 박스(크기( 10, 10 ) ),
패널 상자( "식물 선택:",
H 목록 상자(
스페이서 박스(크기( 10, 0 ) ),
V 리스트 박스( "식물", PlantSelect = 라디오 박스( {"DMT1", "DMT2", "KMT1", "PGT1", "PGT2"} ), PlantSelect << set( 1 ) ),
스페이서 박스(크기( 10, 0 ) ),
)
),
스페이서 박스(크기(20, 10)),
패널 상자( "거래 시간 창 선택:",
텍스트 상자( " " ),
H 목록 상자(
텍스트 상자( "시작 시간: " ),
StartTimeBox = H 목록 상자(
시작시간선택상자 = date_box(기본시작시간);
시작시간선택 = 시작시간선택상자;
//RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 );
),
텍스트 상자( " " ),
버튼 상자( "오전 12시로 설정",
마지막 시간 = 시작 시간 선택 상자 << 가져오기;
시작시간선택상자 << 삭제;
시작시간상자 << 추가(
시작시간선택상자 = date_box( 86400 * 층( 마지막시간 / 86400 ) );
시작시간선택 = 시작시간선택상자;
//RocoTimeStartPick = date_box( 86400 * Floor( (마지막 시간 - 3600) / 86400 ) );
//RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 );
);
),
),
//RocoTimeStartPick = date_box( (StartTimePickBox << Get) - 3600 );
텍스트 상자( " " ),
H 목록 상자(
텍스트 상자( "종료 시간: " ),
EndTimeBox = H 목록 상자(
EndTimePickBox = date_box(기본종료시간);
EndTimePick = EndTimePickBox;
),
텍스트 상자( " " ),
버튼 상자( "오전 12시로 설정",
마지막 시간 = 종료 시간 선택 상자 << 가져오기;
EndTimePickBox << 삭제;
EndTimeBox << Append(
EndTimePickBox = date_box( 86400 * Floor( LastTime / 86400 ) );
EndTimePick = EndTimePickBox;
);
),
),
),
스페이서 박스(크기( 10, 10 ) ),
),
스페이서 박스(크기(20, 20)),
//RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );
H 목록 상자(정렬(오른쪽), 스페이서 상자(), 버튼 상자("확인"), 버튼 상자("취소"))
) //VListBox() 전체 종료
);
If(QueryOptionsChooser["버튼"] == -1,
StopRunningTheThing
);
// 선언 새로 고침 시간입니다.
일 = 일 << Get;
dateoffset = Match(일, 1, "24", 2, "12", 3, "6", 4, "2");
ar = tautorefresh << get;
참조 = 새로 고침 << 가져오기;
새로고침 = Match(참조, 1, "5", 2, "20", 3, "60", 4, "120");
//rspeed = rspeed_cb << get;
//프로세스 이벤트 새로 고침 체크됨
만약( ar == 2,
시작시간선택 = date_box(오늘() - Num(날짜오프셋) * 3600);
종료시간선택 = date_box(기본종료시간);
);
RocoTimeStartPick = date_box( (StartTimePick << Get) - 3600 ); // CHT 시간보다 1시간 전의 roco 시간을 가져옵니다.
RocoTimeEndPick = date_box( (EndTimePick << Get) + 3600 );// CHT 시간에서 1시간 후의 로코 시간을 가져옵니다.
CHTTimeStartPick = date_box( (StartTimePick << Get) - 1800 );
CHTTimeEndPick = date_box( (EndTimePick << Get) + 1800 );
SPL_PL_시작 = 날짜_상자((종료 시간 선택 << 가져오기) - 1800);
SPL_PL_end = date_box( EndTimePick << Get );
//사용자 선택 수집
식물 선택 = QueryOptionsChooser["식물 선택"];
PlantName = Match( PlantSelection, 1, "DMT1", 2, "DMT2", 3, "KMT1", 4, "PGT1", 5, "PGT2" );
//식물이름 표시;
시작시간선택 = 포맷( 시작시간선택 << Get, "월/일/년:분:초" );
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" );
옵션 선택 = 쿼리옵션선택기["옵션 선택"];
인쇄(옵션_선택);
Print(식물이름);
인쇄(시작시간선택);
인쇄(종료시간선택);
인쇄( RocoTimeStart );
인쇄( RocoTimeEnd );
인쇄(CHTTimeStart);
인쇄(CHTTimeEnd);
Print( refresh || " 새로 고침 시간 " );
expr_TimeCheck = Expr(
TimeFixWindow = 새 창( "시간 선택 오류!",
<
<
H 목록 상자(
V 목록 상자(
텍스트 상자( " " ),
텍스트 상자( "시작 시간이 종료 시간보다 늦었습니다! 다시 시도하시겠습니까?"),
텍스트 상자( " " ),
텍스트 상자( "당신이 선택한 것:")
H 목록 상자(
텍스트 상자( " " ),
V 목록 상자(
H 목록 상자( 텍스트 상자( "시작 시간: " || 시작 시간 선택 ), ),
H 목록 상자( 텍스트 상자( "종료 시간: " || EndTimeSelection ) )
)
),
텍스트 상자( " " ),
H 목록 상자(
텍스트 상자( "시작 시간: " ),
시작시간선택상자 = date_box(기본시작시간);
시작시간선택 = 시작시간선택상자;
),
텍스트 상자( " " ),
H 목록 상자(
텍스트 상자( "종료 시간: " ),
EndTimePickBox = date_box(기본종료시간);
EndTimePick = EndTimePickBox;
),
텍스트 상자( " " ),
)
),
H 목록 상자(정렬(오른쪽), 스페이서 상자(), OKButton = 버튼 상자("확인"), 버튼 상자("취소"))
);
시작시간선택 = 포맷( 시작시간선택 << Get, "월/일/년:분:초" );
EndTimeSelection = Format( EndTimePick << Get, "m/d/yh:m:s" );
TimeFixWindow["버튼"] == -1인 경우,
StopRunningTheThing
);
//필요에 따라 재귀
시작시간선택정보( "월/일/년:분:초") > 종료시간선택정보( "월/일/년:분:초")
평가(expr_TimeCheck),
평가(expr_Scrap_SQL)
);
); //expr_TimeCheck 종료
시작시간선택정보( "월/일/년:분:초") > 종료시간선택정보( "월/일/년:분:초")
평가(expr_TimeCheck),
VisionStartTime = 형식(
Max(Informat( 시작시간선택, "월/일/년:분:초") ), 86400 * Floor((Informat( 종료시간선택, "월/일/년:분:초") - 86400) / 86400 ) ),
"월/일/년:월:일"
);
오늘() - 종료시간선택정보, "월/일/년:월:일" ) > 86400,
VisionEndTime = 형식(
Min(Informat(EndTimeSelection, "m/d/yh:m:s" ), 86400 * Ceiling((Informat(EndTimeSelection, "m/d/yh:m:s" ) - 86400) / 86400 ) ),
"월/일/년:월:일"
),
VisionEndTime = 형식(
최소(정보(비전시작시간, "월/일/년:분:초") + 86400, 종료시간선택, "월/일/년:분:초")),
"월/일/년:월:일"
)
);
);
);
SPL_식 = 식(
QueryInfo = "DRIVER=SQL Server;SERVER=" || PlantName || "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;신뢰할 수 있는 연결=예";