창이 추가된 상자 위치로 스크롤되는 것을 방지하는 방법이 있습니까?다음 예제 스크립트에서 "스플라인 추가" 버튼을 누르면 이전 값의 람다 값이 절반인 새 스플라인이 추가되고, 버튼을 6번 정도 누르면 창이 그래프에서 해당 위치로 스크롤됩니다. 새로 추가된 제어 스플라인.
이것은 한 예입니다. 단순히 디스플레이에서 다른 관리 차트를 제거하는 것이 해결책이 아닙니다.실제 코드에서는 biv << (Curve[1] << Report( 0 )) 명령을 사용하여 관리도를 제거했지만 그럼에도 불구하고 스크롤됩니다.
어떤 도움이라도 대단히 감사하겠습니다.
감사해요!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);선택기가 있는 탭 보고서 사용을 고려해 보셨나요?아래 그림을 참조하세요.아니면 각 보기에 대해 여러 그래프가 나란히 있는 페이지를 만들고 있습니까?
또한 다른 대안은 다음과 같습니다.
- 축소된(숨겨진) 상자가 있는 두 개의 스플라인을 사용하여 이변량을 만듭니다. 사용자가 값이나 버튼을 선택할 때까지 두 번째 스플라인의 선 너비를 0으로 설정하여 표시되지 않도록 합니다. 사용자가 두 번째 스플라인의 값을 선택할 수 있도록 허용합니다. 즉, 수많은 스플라인을 추가하는 것이 아니라 평활화 요소를 변경하라는 메시지를 보내기만 하면 됩니다. 그러면 점프하는 일이 없어질 것입니다.
- UI 메시지 Fit Spline을 사용하는 대신 그래픽 스크립트 추가를 사용하여 곡선을 추가하도록 스플라인 추가 버튼의 동작을 변경하세요.여기에는 추가 스크립팅이 필요합니다. 함수를 사용하여 계수를 얻고, 평가하고, 색상을 선택하고, 그래픽 스크립트를 추가하고,
옵션 #1이 가장 쉬울 것입니다
JMP UI 슬라이더는 에뮬레이션하려는 대상을 예상하며 사용자는 평활화 요소를 조정할 수 있습니다.

도와 주셔서 감사합니다!이 방법을 사용할 수 있는지 알아보겠습니다. 하지만 결국에는 이 방법이 저에게 적합하지 않을 것 같습니다. 그래프를 생성하기 위해 다양한 보고서에서 호출하는 함수를 수정하고 있습니다. 보고서.제가 생각하기에 저에게 효과적이라고 생각되는 유일한 해결책은 새 콘텐츠가 스크롤 메커니즘을 실행하지 못하도록 막는 것입니다.
어떤 버전의 JMP를 사용하고 있나요?
첨부된 스크립트는 2개입니다. 스크롤러_ob.jsl 그리고 스크롤러.jsl
스크롤 작업을 제외하면 둘 다 본질적으로 동일한 스크립트입니다.
스크롤러_ob.jsl
- 사용자가 방금 누른 버튼이 포함된 개요 상자에 VListBox(), vlb 및 Scroll Window()를 사용합니다. 그러나 사용자가 6번째 디스플레이로 스크롤하면 디스플레이 5의 일부가 디스플레이 6을 맨 위로 팝업하는 것으로 표시됩니다. 사용자는 여전히 관심 있는 그래프를 보고 있으며 스크롤 동작은 원활합니다.
스크롤러0.jsl
- vlb에 대해 ScrollBox() 래퍼인 sb를 사용합니다.ScrollBox에는 << 스크롤 위치를 가져오는 멋진 기능이 있습니다. 해당 기능을 사용하여 스크롤 위치를 설정하면 사용자는 정확히 동일한 위치를 볼 수 있지만 디스플레이가 매끄럽지 않고 불안정합니다.
두 스크립트 모두 표현식을 사용하여 읽고 유지하기 어려울 수 있는 "쿠키 커터" 코드를 제거합니다. 각 버튼 상자, 각 이변량 및 각 "표시" 개요 상자에 대한 핸들/참조를 생성합니다.아무 버튼이나 마우스 오른쪽 버튼으로 클릭하고 편집을 선택하고 스크립트 설정을 선택하면 이변량 등에 대한 참조를 볼 수 있습니다.
JSL 마스터에 대한 참고로 저는 ButtonBox()에 대해 Set Function()을 사용하고 그 부모와 형제를 사용해 보았습니다. 그런데 vlb << Scroll Window(this)가 작동하지 않아서 놀랐습니다.코딩 오류였을 수도 있습니다. 코드가 너무 둔해서 정보를 제공할 수 없을 것이라고 생각했기 때문에 많은 시간을 투자하지 않았습니다.
당신의 도움을 주셔서 감사합니다!그러나 내 문제는 요약의 어떤 부분도 표시되는 것을 원하지 않고 단순히 스플라인이 그려지기를 원한다는 것입니다.이를 위해 Visibility( "Collapse" ) 및 (Curve[x] << Report(0)) 명령을 사용하여 보고서가 표시되지 않도록 성공적으로 유지했습니다.그러나 화면은 여전히 표시된 것처럼 움직입니다.
여기에 더 완전한 예를 포함시켰습니다.스플라인을 추가하기 위해 버튼을 클릭하면 (결국) 새 콘텐츠가 표시되지 않더라도 그래프가 더 이상 표시되지 않는 지점으로 즉시 스크롤됩니다.
이 예와 같이 한 페이지에 많은 그래프가 있는 회사에서 사용하는 보고서가 있는데 대화형으로 스플라인을 추가하는 기능이 있으면 매우 유용하지만 결과적으로 관심 있는 그래프가 화면 밖으로 이동하면 너무 유용합니다. 처리해야 할 많은 성가심.
어떤 도움이라도 대단히 감사하겠습니다!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);대화형 UI 관점에서 맞춤 요약으로 스크롤하는 것이 합리적입니다.이 스크립트는 Visibility() 및 Scroll Window()라는 두 가지 유용한 JMP 표시 상자 함수/메서드를 사용합니다. Scroll Window()는 항상 디스플레이의 맨 위로 돌아가는 데 사용되며 가시성은 스플라인과 관련된 윤곽선 상자를 "접는 데" 사용됩니다.
단순함을 위해 이 스크립트에서는 개요 상자 수를 사용합니다.그러나 Bivar Spline으로 시작하는 helpKey를 사용하여 k번째 개요 상자를 찾는 Xpath가 더 직접적입니다.
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>