SQL 데이터를 추출하기 위한 날짜 시간 패널 생성<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
나는 SQL 데이터 테이블을 추출하기 위해 jmp 스크립트를 사용했습니다. 오늘은 동일한 SQL 데이터 테이블 기능을 실행하기 위해 윈도우 패널 박스를 만들어 보았습니다.
간단한 아이디어는 일정 기간 내에 SQL 데이터 테이블을 추출하는 것입니다. 이는 패널 상자에 두 개의 입력 변수가 됩니다. "End_Time"은 Today() 구문을 쉽게 사용할 수 있습니다. 그러나 "Start_Time"의 경우 사용자가 데이터 테이블을 가져오려는 End_time 전 특정 "시간"을 입력할 수 있는 스크립트를 작성하려고 했습니다.
불행하게도 이 스크립트는 예상대로 작동하지 않습니다.
jmp 스크립트 전문가가 아래 내 스크립트를 수정하려고 시도할 수 있습니까? 수정을 위해 작성한 jmp 스크립트도 첨부했습니다.
많은 감사드립니다,
nw = new window("SQL Data Table Extraction", Vlistbox( tb1=textbox("Start_Time: "), dteb1 = numbereditbox(1), hlistbox( text box("Enter the number of hours: "), hours_teb = text edit box()), tb2=textbox("End_Time: "), dteb2 = numbereditbox(1), ), ok_button = button box("Get Data", << Open Database("DSN=;Description=;UID=;PWD=;APP=;WSID=", sql_statement, Test Data)),dteb1 << set format(format("m/d/y h:m:s", 23, 0)),dteb1 << set width(23),dteb1 << set(today()-EvalExpr((hours_tab)*60*60)),dteb2 << set format(format("m/d/y h:m:s", 23, 0)),dteb2 << set(Today())); sql_statement="SELECT * FROM dbo.TESTCOMPLETE WHERE (dCreated >= '"||Start Date/Time||"') AND (dCreated <='"||End_Date/Time||"')");
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기안녕 빈스,
안내와 인내심에 감사드립니다.마침내 나는 그것을 해결했습니다.
그 아래에는 정확하고 작동하는 버전이 있습니다.
- NamesDefaultToHere(1);
-
- // 작성됨 ~에 의해 빈스 폴러
- // 달력을 띄워준다 ~에 numeditbox(기본값 에게 지금)
- // 참고하세요. 오직 공장 ~에 JMP 11 또는 ~ 위에
- 날짜 상자 = 기능 (
- {timething = 오늘()},
- {새 상자},
- 새 상자 = 평가(
- 대리자(
- 이름 Expr(
- 숫자 편집 상자(
- timething, // Eval(Sub()) 왜냐하면 ~의 JMP의 특이한 점
- 10, // JMP에는 없기 때문에 이것이 필요합니다. 기본 폭
- << 세트 기능 (
- 기능 ( {자신},
- {},
- 만약에( ~이다 누락( self << get ),
- 자기 << 세트 ( Eval( DUMMY ) ) // 설정 날짜 에게 시간 계산 인수
- )
- )
- ),
- << 세트 형식( 형식( "m/d/yh:m:s" , 23, 0 ) ); // 날짜/시간 형식을 만듭니다. ~을 위한 상자 (달력 제공)
- )
- ),
- Expr( DUMMY ), 시간 계산
- )
- );
- 새박스;
- );
-
- 뉴 =
- 새창( "SQL 데이터 테이블 추출" ,
- LineUpBox(NCol(2),
- 텍스트 상자( "시작 날짜/시간" ), 시작 = dateBox(오늘() - InDays(12)),
- 텍스트 상자( "날짜/시간 종료" ), 끝 = 날짜박스(),
- 버튼박스( "취소" , 지금 << 닫다 창), ButtonBox( "데이터 가져오기" , 실행스크립트)
- )));
-
- RunScript= Expr(nw<< 닫다 창문;
- sql_statement=evalinsert( "SELECT * FROM dbo.TESTCOMPLETE WHERE dCreated >= '^ 시작DT ^' AND dCreated <= '^ 종료DT ^' dCreated로 주문하세요." );
- startDT=MDYHMS(시작 << 가져오기);
- endDT=MDYHMS( 끝 <<얻기);
- 열려 있는 데이터 베이스 (
- "DSN=;설명=;UID=;PWD=;APP=;WSID=" ,
- sql_statement, "검사 결과" )));
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기두가지
- sql_statement=evalinsert( "dCreated >= '^start_time^' AND dCreated <= '^end_time^' ORDER BY dCreated에서 * dbo.TESTCOMPLETE에서 선택" );
- 이는 startDT 및 EndDT와 동일한 변수가 아닙니다.
- sql_statement는 RunScript 내부에 있어야 합니다.
마지막 몇 줄을 이렇게 보이도록 만들면 잘 인쇄됩니다.
뉴 =
새 창("SQL 데이터 테이블 추출",
LineUpBox(NCol(2),
TextBox("시작 날짜/시간"), start = dateBox(Today() - InDays(12)),
TextBox("날짜/시간 종료"), end = dateBox(),
ButtonBox("취소", nw << 창 닫기), ButtonBox("데이터 가져오기", RunScript)
)));
RunScript= Expr(nw<<창 닫기;
startDT=MDYHMS(시작 << 가져오기);
endDT=MDYHMS(end<
sql_statement="SELECT * dbo.TESTCOMPLETE에서 dCreated >= '"||startDT||"' AND dCreated <= '"||endDT||"' ORDER BY dCreated";
인쇄(sql_statement);
);
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기공유해 주셔서 감사합니다.... 남자요세프
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기안녕 빈스,
나의 사각지대를 안내하고 더 가까워지게 해주셔서 감사합니다. 그러나 변경 후에도 startDT = MDYHMS(start<< get) format 여전히 이 SQL 스크립트를 작동시킬 수 없습니다. 그런 다음 여전히 동일한 jmp 경고 메시지 "Scces의 Name Unresolved:Runscript 또는 'RunScirpt, RunScript/*###*/ 평가"가 표시됩니다. 내 스크립트에 문제가 있나요?
확인을 위해 스크립트도 첨부했습니다.
당신의 도움을 주셔서 감사합니다!
NamesDefaultToHere(1);// Written by Vince Faller// Makes a calendar come up on a numeditbox (defaults to now)// Note, this only works on JMP 11 or abovedateBox = Function({timething = Today()},{newbox},newbox = Eval(Substitute(Name Expr(Number Edit Box(timething, // Eval(Sub()) because of JMP quirk10, // Just need this because JMP doesn't default a width<Function( {self},{},If( Is Missing( self << get ),self << Set( Eval( DUMMY ) ) // Sets the date to the timething argument))),<< Set Format( Format( "m/d/y h:m:s", 23, 0 ) ); // Makes datetime format for the box (gives calendar))),Expr( DUMMY ), timething));newbox;);nw =New Window( "SQL Data Table Extraction",LineUpBox(NCol(2),TextBox("Start DateTime"), start = dateBox(Today() - InDays(12)),TextBox("End DateTime"), end = dateBox(),ButtonBox("Cancel", nw << close window), ButtonBox("Get Data", RunScript)));sql_statement=evalinsert("SELECT * FROM dbo.TESTCOMPLETE WHERE dCreated >= '^start_time^' AND dCreated <= '^end_time^' ORDER BY dCreated");RunScript= Expr(nw< startDT=MDYHMS(start << get); endDT=MDYHMS(end< Open Database( "DSN=;Description=;UID=;PWD=;APP=;WSID=", sql_statement,"Test Result"));Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기start << Get을 실행하면(또는 startDT 위에 마우스를 올리면 됩니다).값은 실제로 "04/11/2016 7:00:00 AM"에 대한 숫자 3543202800임을 알 수 있습니다.따라서 SQL에 넣으려고 하면 실제로는 해당 숫자만 제공하게 됩니다(문자가 아니므로 연결할 수 없음).당신은 변화해야
startDT = 시작 << 가져오기;
endDT = 끝 << get;
에게
startDT = MDYHMS(시작 << 가져오기);
endDT = MDYHMS(end << get);
내 생각엔 이것이 당신을 달릴 수 있게 해줘야 할 것 같아요.
귀하의 오류는없는 것처럼 보입니다. 43번 라인 이후
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기나는 SQL 데이터 테이블을 추출하고 모달에서 시간을 제한하기 위해 다음 스크립트를 사용하고 있습니다.
::dbc = 다른 추가 기능에 삽입한 내 이름과 로그인, 대신 공개 데이터베이스를 사용할 수 있습니다.
2개의 다른 테이블에 대한 botton을 추가했습니다(결함 및 수율)
매개변수에 대한 또 다른 필터(결함 유형, 수율 매개변수 등)
내 SQL 시간 열은 'dayxxx'입니다.
이기다 = 새창 ( "데이터 선택"
<< 모달,
패널박스 ( "선택하다" ,
r박스 = 라디오박스 ( { "결함" , "생산하다" }
)
, 텍스트 상자 ( "매개변수" ) , 변수박스1 = 텍스트 편집 상자 ()
, 텍스트 상자 ( "요일 삽입" ) , 변수박스2 = 텍스트 편집 상자 ()
) ;
지역1 = r박스 << 얻다 ;
PARAM = 변수박스1 << 문자 받기 ;
날 = 변수박스2 << 문자 받기 ;
1 번 테이블 = 만약에 (
지역1 == 1 , "결함 테이블xxx" ,
지역1 == 2 , "수율표xxx"
)
;
/// SQL 데이터 선택 ///
dt = SQL 실행 ( :: DBC ,
"\!"pathxxx\!".\!"에서 * 선택 || 1 번 테이블 || "\!"
어디 \!"dayxxx\!" > (CURRENT_DATE - " || 날 || " 날)
AND \!"매개변수xxx\!" = '' || PARAM || "'
"
) ;
dt << 이름 설정 ( "" || PARAM || " " || 날 || "" ) ;
*회사 데이터베이스 이름을 숨기기 위해 많은 수정을 했기 때문에 스크립트 오류가 발생할 수 있습니다.
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기안녕 빈스,
답장을 보내 주셔서 감사합니다. 며칠 전에 철자 오류를 인식했지만 여전히 스크립트가 예상대로 작동하지 않습니다.
귀하의 답변에서 제가 다음을 사용할 수 없다는 뜻인가요? 날짜 상자()에 사용했던 숫자 편집 상자() 스크립트 함수는 무엇입니까?
"데이터 가져오기" 버튼을 클릭했을 때 다음과 같은 경고 메시지(아래 이미지 참조)가 나타나는 문제인가요?
그러나 아래 스크립트를 직접 실행하면 어떻게 jmp가 SQL Server에서 요청 데이터 테이블을 가져올 수 있습니까?
//This script is wrote to pull data within a certain time framestart_time="04/11/2016 7:00:00 AM";end_time="04/12/2016 7:00:00 PM";sql_statement=evalinsert("SELECT * FROM dbo.TESTCOMPLETEWHERE dCreated >= '^start_time^' AND dCreated <= '^end_time^' ORDER BY dCreated");Open Database( "DSN=;Description=;UID=;PWD=;APP=;WSID=",sql_statement, "Test Data");

Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기nw << 닫힌 창
스크립트가 충돌합니다.
당신은해야합니다
nw<<창 닫기
또한 취소 버튼에 또 다른 철자 오류가 있습니다.
또한 MDYHMS(startDT) 및 endDT를 사용하거나 SQL DateTime으로의 다른 변환을 사용해야 합니다. 왜냐하면 JMP는 숫자만 보고하고 SQL은 이를 날짜 시간으로 간주하지 않기 때문입니다.
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기쿼리 빌더 기능이 없는 JMP 11을 사용하고 있습니다. 우리 부서가 업그레이드에 동의하면 나중에 하나를 얻을 수 있기를 바랍니다. 어쨌든, 안내해주셔서 감사합니다.Vince가 게시한 Ian 스크립트를 시도했는데 날짜 시간 창 기능이 작동했습니다.그러나 SQL Server에서 데이터 테이블을 추출하기 위해 디자인한 버튼 상자를 연결하려고 시도했지만 응답이 없습니다. SQL 데이터 테이블을 추출하는 데 사용한 원래 jsl scipt로 sql 문을 검사했는데 제대로 작동합니다. SQL 데이터 테이블을 가져오기 위해 버튼 상자를 위해 설계된 스크립트에 어딘가 문제가 있는 것 같습니다. 누구든지 빨리 고칠 수 있나요?
많은 감사드립니다,
NamesDefaultToHere(1);
// 빈스 폴러가 작성함
// numeditbox에 달력을 표시합니다(기본값은 현재)
// 참고로 이는 JMP 11 이상에서만 작동합니다.
dateBox = 함수(
{timething = 오늘()},
{새 상자},
새 상자 = 평가(
대리자(
이름 Expr(
숫자 편집 상자(
timething, // JMP 특성 때문에 Eval(Sub())
10, // JMP에서는 너비를 기본값으로 지정하지 않기 때문에 이것이 필요합니다.
<<기능 설정(
함수({self},
{},
If( 누락됨( self << get ),
self << Set( Eval( DUMMY ) ) // 날짜를 timething 인수로 설정합니다.
)
)
),
<< 형식 설정( 형식( "m/d/yh:m:s", 23, 0 ) ); // 상자의 날짜/시간 형식을 만듭니다(달력 제공).
)
),
Expr( DUMMY ), 시간 계산
)
);
새박스;
);
뉴 =
새 창( "SQL 데이터 테이블 추출",<<모달,
LineUpBox(NCol(2),
TextBox("시작 날짜/시간"), start = dateBox(Today() - InHours(12)),
TextBox("날짜/시간 종료"), end = dateBox(),
ButtonBox("취소", nw << closeEindow), ButtonBox("데이터 가져오기", RunScript)
)));
sql_statement = evalinsert("SELECT * FROM dbo.TESTCOMPLETEWHERE dCreated >= '^startDT^' AND dCreated <= '^endDT^'ORDER BY dCreated");
RunScript= Expr(nw<<닫힌 창;
startDT = 시작 << 가져오기;
endDT = 끝 << get;
데이터베이스 열기(
"DSN=;설명=;UID=;PWD=;APP=;WSID=1",
sql_statement,
"검사 결과"));
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기훨씬 나아졌어, 에릭! JSL을 피하는 것은 결코 나쁜 전략이 아닙니다 . 이 옵션을 간과해서 죄송합니다.
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기안녕하세요, bernie426님,
JMP 12를 사용하고 있다면 이러한 종류의 작업을 위해 Query Builder를 사용하는 것을 고려해 보십시오. (아직 JMP 12를 사용하고 있지 않다면 JMP 12에 도달해 보십시오 ;-)쿼리 빌더를 사용하면 필터링된 SQL 쿼리를 대화형으로 생성하고 해당 필터를 프롬프트로 전환할 수 있습니다.Query Builder가 만들어진 주된 이유는 귀하와 같은 상황을 위해서였습니다.쿼리가 작성되는 동안의 모습은 다음과 같습니다.

자세히 보면 알 수 있다 (즉각적인) 필터 옆에그런 다음 쿼리가 실행되면 변수 형식에 따라 날짜 선택기 또는 날짜-시간 선택기를 자동으로 표시하는 프롬프트가 표시됩니다.

지금 당장은 아니더라도 미래를 위해 생각해 보아야 할 것입니다.
HTH,
에릭
Re: SQL 데이터를 추출하기 위한 날짜 시간 패널 만들기보고 싶은 날짜 시간 선택 측면에서 이 스레드 도. 그래서 코드를 사용하면 친절한 작성자 빈스 펠러 훨씬 더 많은 기능을 제공하므로 이런 종류의 접근 방식을 시도해 볼 수 있습니다.
이름DefaultTo여기 ( 1 ) ;
// 빈스 폴러가 작성함
// numeditbox에 달력을 표시합니다(기본값은 현재)
// 참고로 이는 JMP 11 이상에서만 작동합니다.
날짜 상자 = 기능 (
{ 시간 측정 = 오늘 ()} ,
{ 새 상자 } ,
새 상자 = 평가 (
대리자 (
이름 만료 (
번호 편집 상자 (
시간 측정 , // JMP 특성 때문에 Eval(Sub())
10 , // JMP는 너비를 기본값으로 지정하지 않기 때문에 이것이 필요합니다.
<< 기능 설정 (
기능 ( { 본인 } ,
{} ,
만약에 ( 누락 ( 본인 << 얻다 ) ,
본인 << 세트 ( 평가 ( 가짜의 ) ) // 날짜를 timething 인수로 설정합니다.
)
)
) ,
<< 형식 설정 ( 체재 ( "m/d/yh:m:s" , 23 , 0 ) ) ; // 상자의 날짜/시간 형식을 만듭니다(달력 제공).
)
) ,
만료 ( 가짜의 ) , 시간 측정
)
) ;
새 상자 ;
) ;
뉴 =
새창 ( "날짜 시간 범위" ,
라인업박스 ( NCol ( 2 ) ,
텍스트 상자 ( "시작 날짜/시간" ) , 시작 = 날짜 상자 ( 오늘 () - 시간 내 ( 12 )) ,
텍스트 상자 ( "날짜/시간 종료" ) , 끝 = 날짜 상자 () ,
버튼박스 ( "취소" , 뉴 << 닫기Eindow ) , 버튼박스 ( "좋아요" , 스크립트 실행 )
)
) ;
스크립트 실행 =
만료 (
뉴 << 창 닫기 ;
시작DT = 시작 << 얻다 ;
종료DT = 끝 << 얻다 ;
인쇄 ( 시작DT , 종료DT ) ;
) ;
나는하지 않았다 원본 코드를 자세히 확인하십시오. 그러나 'Name()'을 사용하지 않는 한 허용되지 않는 '/'가 포함된 변수 이름을 사용하려고 시도한 것으로 확인되었습니다. 수행할 수 있는 작업과 수행할 수 없는 작업에 대한 자세한 내용은 '도움말 > 도서 > 스크립팅 가이드'를 참조하세요.