JSL 스크립트 표시 창 내의 HTML 유사 참조<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, 저는 주어진 데이터 세트에 대한 분석을 수행하고 보고서의 처음 몇 페이지에 대한 요약을 출력하는 스크립트가 있습니다(다양한 표시 객체와 함께 new window() 명령 사용). 선택된 N에 대한 N 페이지의 스크립트 분석이 뒤따릅니다. 매개변수. 이 모든 것이 동일한 보고서에 있으며 페이지 나누기 기능을 사용하여 각 매개변수를 구분합니다. N은 임의의 숫자일 수 있습니다... 단지 몇 개 또는 천 개 정도의 매개변수/페이지입니다.첫 번째 페이지의 요약에서 링크할 수 있고 이 보고서 내의 대상을 가리키는 하이퍼링크를 가질 수 있습니까? 코드화된 대상 또는 추적할 수 있는 페이지 번호를 가리킬 수 있습니다.코딩된 참조가 선호됩니다... 1000개의 매개변수를 사용하면 요약이 여러 페이지에 걸쳐 표시되며 실제로 페이지 번호를 추적할 수 있을지 확신이 서지 않습니다.
링크(예: 도움말 메뉴 -> 샘플 데이터 -> 모든 범주에 있음)를 보았지만 파일을 가리키거나 다른 프로토콜 주소도 작동한다고 가정합니다. open() 대 web() 명령입니다.그러나 동일한 보고서 창에서 위치를 연결하고 가리킬 수 있도록 코딩할 수 있습니까?
동적으로 제어/축소된 축 상자와 실시간 계산을 광범위하게 사용하기 때문에 HTML5 내보내기가 아닌 기본 'new window()' 출력에서 수행해야 합니다.
감사해요,
마이크
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조오늘 jmp 스크립팅 인덱스를 검색하다가 'scroll box()' 표시 상자 기능을 보고 의사 하이퍼링크로 사용할 수 있겠다는 생각이 들었습니다. 클릭하면 조치를 취하는 '클릭 가능한' 것이 필요했습니다.보고서 상단에 요약 테이블 box()가 이미 있으므로 테이블 상자의 행을 선택 가능하게 만들고 << set selectable rows() 및 << set row change function의 조합을 수행하기만 하면 됩니다. () 그렇게 합니다. 선택이 변경되면 함수가 실행되고 코드는 선택된 행을 결정하고 플롯 순서가 테이블 순서와 일치하는 한 i번째 컨텍스트 상자(또는 표시 상자)의 참조로 스크롤합니다. db[i] = distribution(param[i],.......)인 'db[i]'로 스크롤을 시도했지만 작동하지 않았지만 적절한 표시 상자가 작동했습니다.
이 코드 중 일부는 스크립팅 인덱스, 특히 << set row change function()입니다. 'this' 변수는 나를 혼란스럽게 했지만 행 선택이 변경될 때 함수에 전달되는 것처럼 보이는 테이블 상자 자체가 전부입니다. 예를 들어 vlb에 'this'를 추가하려고 하면 vlb의 맨 아래에 또 다른 테이블 box()가 추가됩니다.
한 가지 잘 처리되지 않는 것이 ctrl+클릭(Mac에서는 cmd 클릭)으로 여러 행을 선택하는 경우인데, 이건 크게 문제가 되지 않는다고 생각합니다. 다른 방법을 사용할 수 있습니다... 버튼 상자 또는 << on change()와 같은 것을 사용하여 대상으로 스크롤할 수 있습니다. 예를 들어 목록 상자.
이것은 이미 게시되었을 수 있지만 공유할 가치가 있다고 생각했습니다.그것을 깨닫는 데만 7년이 걸렸다. 유용하게 사용하시길 바랍니다.
Names Default To Here( 1 );
//dummy data table
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// get col list
colList = {};
for( i = 1, i<=20, i++,
colList[i] = as column(dt, 4 + i) << get name();
);
// new window, table box with selectable rows
nw = New Window( "Example",
vlb = vlistbox(
Outline Box( "Table",
tb = Table Box(
String Col Box( "names", colList ),
<<SET selectable="" rows=""> 0,
nw << scroll window(cb[itemNum[1]]);
);
)
);
</SET>
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조고마워 웬디. 다른 사용자와 함께 검토하고 이것이 괜찮은지 확인하겠습니다. 수백 개의 매개변수에 대해 여전히 약간의 스크롤이 있지만 그렇게 나쁘지는 않습니다.
-마이크
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조안녕 제프,
열 전환기를 확인하는 데 시간을 보냈습니다. Discovery Summit의 누군가가 언급했습니다(게임 쇼 진행자가 끝난 직후). ), 하지만 어떤 플랫폼에도 추가할 수 있다는 것을 몰랐습니다.재생/속도 변경 기능이 정말 마음에 듭니다. 그러나 내 스크립트에는 몇 가지 다른 내장 기능이 있으며 그 중 하나는 사용자가 라디오 버튼을 사용하여 배포판에서 창 크기를 조정할 수 있도록 하는 것입니다(애플리케이션은 프로덕션에서 반도체 전기 테스트임). 모든 매개변수의 축을 기존 제한(및 모든 데이터, 낮은 쪽 낙진, 높은 쪽 낙진, 중앙값 +/- N * IQR 등과 같은 다른 창 크기)으로 조정하는 버튼이 있습니다. 사용자가 설정한 대로 이러한 최소/최대 값을 유지하는 것이 중요합니다. 열 전환기가 이것을 재설정하는 것처럼 보입니다.다른 기능으로는 Anova와 GR&R을 동시에 사용하여 그룹화하는 기능이 있습니다.
그러나 내가 사용하는 이 특정 기능의 경우 모든 최소/최대 축을 해당 사양 제한으로 설정합니다. 이것은 표시된 분포의 유일한 부분이 최소 제한에서 최대 제한까지임을 의미합니다(테스트에서 최소/최대 사양). 이것은 모든 매개변수가 창의 최소/최대 = 최소/최대 사양 제한으로 시작하도록 시작점으로 사용됩니다.각각의 개별 매개변수에는 이러한 축 크기 조절 컨트롤이 있거나 사용자가 마우스를 사용하여 축 크기를 조절할 수 있습니다.사용자가 들어가서 관심 있는 매개변수의 크기를 조정하면 하단에 제한 테이블을 생성하는 버튼이 있습니다. 이는 모든 최소/최대 축 값을 가져오고 테스트 프로그램으로 가져올 수 있는 테이블로 출력합니다. 많은 제한을 조정하는 효율적인 방법인 것으로 밝혀졌습니다(특히 상위 N개의 수익률 위반자만 표시하는 GUI 옵션 사용).우리는 원하는 cpk 또는 어떤 수학을 통해 제한을 설정하는 다른 스크립트를 가지고 있지만 때로는 이상적이지 않은 너무 많은 분포가 있고 이것은 꽤 잘 작동합니다.
다음은 출력의 예입니다. 이 경우 하나의 매개변수만 플로팅되었으며 그룹화하지 않았습니다.라디오 버튼은 축의 크기를 조정하고 하단의 버튼 상자는 모든 최소/최대 값을 검색하고 테이블을 생성합니다.
이 스크립트는 몇 가지 다른 용도로 사용되기 때문에 완전히 다시 작성하기가 다소 꺼려집니다.그러나 가까운 장래에 어떤 방식으로든 해당 열 전환기를 사용할 수 있는지 확인하겠습니다.

감사해요,
마이크
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조마이크,
이전 TabBox() 예제는 원하는 대로 PDF로 저장해야 하지만 원하는 긴 보고서를 제공하지 않습니다.그래서 여기 당신을 위한 또 다른 옵션이 있습니다.자세한 내용은 포함된 주석을 참조하십시오.
웬디
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* New Window with a Summary OutlineBox and a separate Analyses OutlineBox */
nw = New Window( "Example 2", ob = Outline Box( "Summary" ), Outline Box( "Analyses", vl = V List Box() ) );
/* Initialize a list for storing references to the Distributions */
dist = {};
/* Loop through each column
- append each Distribution to the Analyses Outline Box
- append a button link to expand the specified Distribution OutlineBox */
For( i = 1, i <= N Items( colList ), i++,
vl << Append( dist = Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) ) );
var = colList || " Distribution";
Report( dist )[Outline Box( 1 )] << Set Title( var );
Eval(
Eval Expr(
ob << Append(
bb = Button Box( var,
Current Window()[Expr( var )] << Close All Like This;
Current Window()[Expr( var )] << Set Open( 1 );
)
)
)
);
bb << UnderlineStyle( 1 );
);
/* Add a button to open all the OutlineBoxes and save the output as PDF */
ob << Append(
Button Box( "Save All to PDF",
Current Window()["Analyses"] << Open All Below;
Current Window() << Set Page Setup( Scale(.75));
path = Pick File( "Select PDF File", "E:\Trash", {"PDF|pdf"}, 1, 1, "Example 2.pdf" );
Current Window() << SavePDF( path );
Open( path );
)
);
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조나는 내가 사용할 것이라고 생각한다 열 전환기 이런 경우.
사용자가 원하는 분석을 선택할 수 있으며 다른 창을 업데이트하기 위해 추가 스크립팅을 할 필요가 없습니다.
PDF 옵션을 원하는 경우 새 보이지 않는 창에서 모든 매개변수를 실행하고 PDF로 저장하는 버튼을 창에 배치할 수 있습니다.
-제프
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조안녕 웬디,
해결 방법으로 이러한 라인을 생각해 왔지만 보고서 보관을 위해 하나의 매우 긴 보고서에 전체 매개 변수 집합을 유지한다는 아이디어가 마음에 듭니다. 나중에 볼 수 있도록 누군가(또는 아무도 없을 가능성이 매우 높음)를 위해 PDF로 인쇄할 수 있습니다. 또한, 1000개 이상의 매개변수를 사용하면 때로는 빠르게 페이지를 내려보고 잘못된 분포(비뚤어짐, 이중 모달, 이상치)를 시각적으로 스캔할 수 있는 것이 좋습니다.
내 생각은 지금 가지고 있는 것과 같은 창을 만들면서 요약의 링크(매개 변수 이름)를 처음 클릭할 때 별도의 창을 여는 것이었습니다. 이 창에는 메인 창에 있는 것과 본질적으로 동일한 분석 및 출력 세트가 있을 것입니다. 단, 보조 창에서는 1개의 매개변수일 뿐이고 메인 창에서는 전체 세트가 될 것입니다. 많은 매개변수. 기본 창에서 후속 링크를 클릭하면 보조 창에서 이전 매개변수가 삭제되고 새 매개변수가 생성됩니다.여러 라디오 버튼과 기타 컨트롤 및 축 크기 조정이 완료되었으므로 이 정보를 가져와서 기본 창의 해당 매개변수로 다시 전달해야 하지만 아마도 작동할 것입니다.내가 생각하는 유일한 예외는 마우스로 축의 크기를 수동으로 조정하는 것입니다.이것과 관련된 이벤트 함수(예: OnAxisChange())가 있다고 생각하지 않지만 '완료' 버튼을 구현하여 새 최소/최대 값을 잡고 이를 기본 창의 매개변수로 다시 던질 수 있다고 가정합니다. 중심선.
감사해요,
마이크
Re: JSL 스크립트 표시 창 내에서 HTML과 유사한 참조안녕, 마이크.
TabBox() 사용을 고려해 보셨습니까?사용자가 해당 탭을 선택하고 직접 이동할 수 있도록 각 탭 이름의 드롭다운 메뉴를 생성하는 "콤보"라는 탭 스타일이 있습니다.다음은 간단한 예입니다.
/* Open sample data and obtain a list of column names */
dt = Open( "$SAMPLE_DATA\Fitness.jmp" );
colList = dt << Get Column Names( Continuous, String );
/* Store the number of desired tabs in a variable */
nTabs = N Items( colList );
/* Create a New Window containing an empty TabBox */
New Window( "Example", tb = Tab Box() );
/* Use a For loop to add the desired number of tabs to the TabBox */
For( i = 1, i <= nTabs, i++,
tb << Add( colList || " Distribution",
V List Box(
Distribution( Continuous Distribution( Column( Column( colList ) ), Horizontal Layout( 1 ), Vertical( 0 ) ) )
)
)
);
tb << Set Selected( 1 );
tb << Set Style( "combo" );