재실행은 <<보고 조치를 취소합니다안녕하세요,
스크립트에서 일부 보고서 변경 사항을 실행 한 다음 Autorecalc가 설정된 일부 행 제외를 실행하면,
모든 보고서 변경 사항이 사라집니다.
배포 본문에 모든 보고서 변경 내용을 삽입하여 사라지지 않도록하려면 어떻게합니까?
감사.
dt = 열기 ( "$ SAMPLE_DATA / Big Class.jmp");
dist = 분포 (
자동 재 계산 (1),
연속 분포 (
사 분위수 (0),
요약 통계 (1),
열 (: weight),
가로 레이아웃 (1),
Ppk 기능 라벨링 (1),
공정 능력 분석 (LSL (80), USL (140))
));
PpkValue = (dist << report) [OutlineBox ( "장기 시그마")] [NumberColBox (1)] [2];
PPKtb = 테이블 박스 (
문자열 열 상자 ( "Parameter", { "Ppk"}),
번호 열 상자 ( "값", {PpkValue})
);
(dist << report) [OutlineBox ( "요약 통계")] << 추가 (PPKtb);
(dist << report) [OutlineBox ( "장기 시그마")] << 삭제;
다시 : 다시 실행은 <<보고 작업을 취소합니다나는 당신의 구문이 약간 벗어났다고 생각합니다. 참조를 다음으로 변경하면 정상적으로 작동합니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
PpkValue = (dist << report)[Outline Box( "Long Term Sigma" )][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;다시 : 다시 실행은 <<보고 작업을 취소합니다고맙습니다.
제대로 작동하지만 한 행을 제외하면 모든 보고서 변경 사항이 사라집니다.
"참조를 다음으로 변경"은 무슨 뜻입니까?
첨부 된 그림을 참조하십시오.
다시 : 다시 실행은 <<보고 작업을 취소합니다Recalc을 수행하면 플랫폼이 효과적으로 다시 실행되므로 모든 사후 수정 사항도 다시 실행해야합니다. 이를 수행하는 한 가지 방법은 필터 또는 행 상태의 변경이 감지 될 때 코드를 실행하는 필터 변경 핸들러 또는 행 상태 핸들러를 사용하는 것입니다. 분포 그래픽의 프레임 박스 ()에 그래픽 스크립트를 추가하여 그래프가 변경 될 때 코드 실행을 트리거 할 수도 있습니다. 아래 코드는 Make Filter Change Handler ()를 사용하여 작업을 완료합니다.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
filter = dist << Local Data Filter(
Add Filter( columns( :age ) )
);
f = Function( {a}, addit() );
rs = filter << Make Filter Change Handler( f );
addit();
다시 : 다시 실행은 <<보고 작업을 취소합니다고마워요
불행히도이 솔루션은 나에게 좋지 않습니다.
1. 로컬 데이터 필터를 추가하고 싶지 않습니다
2. 스크립트를 실행하고 로컬 데이터 필터에서 선택을 변경하면 사용자 지정 보고서 변경없이 배포가 다시 실행됩니다.
두 번째 솔루션의 구문은 무엇입니까 ( 프레임 상자에 그래픽 스크립트 () )?
다시 감사합니다.
다시 : 다시 실행은 <<보고 작업을 취소합니다고맙습니다!
"그래픽 추가"는 저에게 잘 작동합니다!다시 : 다시 실행은 <<보고 작업을 취소합니다필자의 스크립트는 충분한 통찰력을 제공 할 수 있기를 희망하며 사용할 수있는 가능한 방법에 대한 포인터를 제공하기위한 것입니다. 다음을 통해 입력을 향상시킬 수 있기를 바랍니다.
이전 응답에서 2 가지 방법을 언급하지 않았습니다. 필자는 필터 변경 처리기, RowState 처리기 및 그래픽 추가 스크립트의 3 가지 방법을 언급했습니다. 필요한 사항을 감안할 때 다른 옵션 중 하나를 사용하도록 선택할 수 있습니다. 아래에는 RowState Handler를 사용하는 스크립트와 그래픽 추가 스크립트를 사용하는 2 개의 스크립트가 있습니다.
RowState 핸들러는 필터 변경 핸들러의 구현과 매우 유사합니다. 이를 사용하여 데이터 테이블의 RowState 열을 변경하면 변경이 트리거됩니다.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
f = Function( {a}, addit() );
rs = dt << Make RowState Handler( f );
addit();
그래픽 추가 예제는 더 복잡합니다. 이는 주로 스크립트 작성기가 비교할 항목을 결정한 다음 코드 실행을 트리거해야하기 때문입니다. 아래의 경우 평균 또는 표준 편차가 변경되는지 확인하면 코드 실행이 트리거됩니다. 사용자가 변경하는 종류의 종류에 대해서는 충분하지 않을 수 있으므로 확장하거나 완전히 변경해야합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function( {},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
(dist << report)[framebox( 2 )] << add graphics script(
If(
theMean != ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1] | theSTD != ((dist
<< report)["Summary Statistics"][Number Col Box( 1 )] << get)[2],
addit()
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
);
addit();
스크립팅 가이드를 읽고 스크립팅 인덱스에 익숙해지는 것이 좋습니다. 스크립팅 안내서의 JSL 개요는 숙련 된 JSL 프로그래머가되어야하는 기초를 제공하며, 스크립팅 색인의 모든 객체와 함수에 대한 예제는 코드 작성에 매우 중요합니다