열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?저는 몇 가지 기준을 지정하고 사용자 입력을 기반으로 Amazon Redshift에서 데이터를 가져오는 사용자 인터페이스를 제공하는 jsl 스크립트를 만드는 데 시간을 보냈습니다. 스크립트는 잘 작동하지만 작은 문제가 있습니다.
사용자가 모달 창에서 쿼리 버튼을 클릭하면 isValid = 1 변수가 설정되고 자체적으로 닫혀 후속 스크립트가 실행됩니다. 그런 다음 "데이터를 가져오는 중입니다. 잠시만 기다려 주십시오..."와 같은 메시지를 표시하는 진행 창이 생성됩니다. 오픈 시 쿼리합니다. 쿼리가 완료되면 자체적으로 닫혀야 합니다.
문제는 이 진행률 창이 내 화면에 표시되지 않는다는 것입니다. JMP는 쿼리가 성공하더라도 창을 맨 앞으로 가져오기 전에 창이 생성된 직후 쿼리 스크립트를 실행하는 것처럼 보입니다.
쿼리 스크립트 전에 wait(0)을 삽입하거나 창을 앞으로 가져오려고 시도했지만 여전히 운이 없습니다. 쿼리 부분을 메모해야만 진행창을 볼 수 있습니다.
창을 표시하고 쿼리 스크립트를 동시에 실행하려면 어떻게 해야 합니까?
/*scripts before this line are not related to the issue, hence not included*/<BR /><BR /><BR />If(isValid == 1,
nwQuery = New Window( "Query", <<SHOW menu=""></SHOW> window show up if remark below lines */
mySQL = Eval Insert(tpSQL);
dbc = Create Database Connection("DSN=Amazon Redshift; UID=***; PSW=***");
dt = Execute SQL (dbc, mySQL, "Query");
close database connection(dbc);<BR /> // add wait(2); if remark above lines
bbOk << Close Window;
))),
bbOk << Click;
);
);자동화 및 스크립팅Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?모달창을 사용하는 이유는 화면 중앙에 표시되며 기본적으로 상단에 표시되도록 가정하기 때문입니다. 이전에 일반 창을 사용해 보았지만 표시되지 않았습니다.
어쨌든 가서 더 많은 정보를 수집하고 새로운 SQL 쿼리 방법을 살펴보겠습니다. 그 후에 다시 답변해 드리겠습니다.
귀하의 귀중한 의견과 제안에 진심으로 감사드립니다!Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?쿼리가 실행 중임을 표시하기 위해 모달 창을 사용할 필요는 없습니다. 일반 창을 사용하고 쿼리가 시작되기 전에 열고 쿼리가 끝나면 닫습니다.
Names Default To Here(1);
isValid = 1;
If(isValid == 1,
nw = New Window("Query",
<<SHOW menu=""></SHOW>
<P>또한 데이터베이스 연결 만들기, SQL 실행, 데이터베이스 연결 닫기에서 새 SQL 쿼리로 전환하는 것이 좋습니다. 이는 쿼리에 선호되는 방법입니다(사용하기가 더 짜증나고 문서가 부족하지만 여전히... 이것이 진행되는 방식입니다). 앞으로).</P>
<P> </P>
<P>편집하다:</P>
<P>New SQL Query()로 이동하기로 결정한 경우 쿼리가 완료될 때까지 스크립트를 기다리려면 << Run Foreground를 사용해야 합니다.</P>Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?몇 번의 시도와 오류 끝에 내가 원하는 방식으로 스크립트 동작을 수행하기 위한 몇 가지 코드를 알아냈습니다.
귀하의 제안에 따라 일반 창을 사용하여 쿼리가 실행 중임을 표시하고 새로운 SQL 쿼리 기능을 사용합니다. 일반 창이 화면 중앙에 팝업되지 않기 때문에 모니터 화면 크기를 캡처하는 함수를 만든 다음(외부 Power Shell 스크립트를 호출하고 싶지 않음) 표시되어야 하는 위치를 계산합니다.
그러나 작은 단점이 있습니다. 쿼리가 실행될 때 통화중 라이트 박스가 회전하지 않는다는 것입니다. 이에 대해 우리가 할 수 있는 일은 아무것도 없습니다. 그렇죠?
Names Default To Here(1);
GetWinConsoleSize = Function({},
nW = New Window("Get Win Console Size", << Window View("Invisible"), << Maximize Window(1));
theSize = nW << Get Window Size();
nW << Close Window();
Return(theSize);
);
drawWinProgress = Function({scrSize},
xSize = 250;
ySize = 50;
cpX = (scrSize[1]/2)-(xSize/2);
cpY = (scrSize[2]/2)-(ySize/2);
nW = New Window("Query Data", << Show Menu(0), << Show Toolbars(0), << Size(xSize,ySize), << Show Window (0),
Lineup Box(N Col(2), Busy Light(<< Automatic, size(40,40)), Text Box(" Pulling data, please wait ...")),
);
nW << Move Window(cpX, cpY);
nW << Show Window (1);
Return(nW);
);
nwMain = New Window("UI for user to input query criteria", << Modal, << Return Result,
// All display box goes here
H List Box(
Spacer Box(),
bbQuery = Button Box("Query",
isValid = 1;
bbQuery << Close Window;
,
isValid = 0;
bbCancel = Button Box("Cancel", Stop()),
),
);
If(isValid == 1,
wcSize = GetWinConsoleSize();
wProg = drawWinProgress(wcSize);
Wait(0);<BR /> // Generating SQL based on user criteria
dt = New SQL Query(Connection(strOdbcConnection), CustomSQL(mySQL)) << Run Foreground;
wProg << Close Window;
);
Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?<< Run Background를 사용할 수 있지만 해결해야 할 다양한 문제가 발생합니다.
Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?또한 데이터베이스 연결 생성, SQL 실행, 데이터베이스 연결 닫기에서 새 SQL 쿼리로 전환하는 것이 좋습니다. 이는 쿼리에 선호되는 방법입니다(사용하기가 더 짜증나고 문서가 부족하지만 여전히... 이것이 진행되는 방식입니다). 앞으로).
나는 종종 실행할 SQL 쿼리가 많기 때문에 데이터베이스 연결 생성/SQL 실행/데이터베이스 연결 닫기를 사용합니다. 데이터베이스 연결을 생성하는 데 관련된 오버헤드가 있습니다. 새 SQL 쿼리를 여러 번 호출하면 속도가 느려질 수 있습니다.
왜 New SQL Query가 앞으로 나아가야 한다고 생각하는지 궁금합니다.
Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?내 제안은 이 게시물을 기반으로 합니다 . 쿼리 데이터베이스를 사용하는 방법은 무엇입니까? 그리고 브라이언의 코멘트. 나는 많은 문제로 인해 New SQL Query()를 사용하는 것을 별로 좋아하지 않지만 여전히 미래에도 사용할 수 있는 스크립트를 사용하기 위해 점점 더 많은 스크립트를 이동하고 있습니다.
Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?저는 항상 new sql query()를 사용합니다. 기능이 대부분의 스크립트에 가장 적합하고 JMP에서 이를 "올바른 방법"으로 권장하기 때문입니다. 아마도 찬성과 반대의 목록을 작성하고 이를 향후 개발을 위한 힌트로 사용하는 것이 가치가 있을 것입니다(예: 위시리스트에 추가). 둘 이상의 명령문에 대해 새로운 SQL 쿼리()를 향상시키지 않는 이유는 무엇입니까?
아마도 Scripters Club에서 이야기를 나눌 수 있을 것 같습니다.
친애하는,
Re: 열린 후 실행 중인 스크립트를 모달 창에 표시하는 방법은 무엇입니까?"new sql query()"에 대한 문서를 개선하기 위한 희망 목록 항목이 하나 이상 있지만 확실히 더 필요한 항목이 몇 개 더 있습니다. 불만 사항과 이슈를 모아두는 것이 좋습니다. (이전에 관련 포스팅을 한 적이 있는 것 같습니다.)