データセット内のセルを購読するこんにちは、みんな、
データセット内のセルをサブスクライブしようとしましたが、うまくいきませんでした。たとえば、特定のセルの値が変更されたというメッセージを受信したいと思います。これが一例です。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Example",
TB=Table Box(
Data Table Col Box( :height )
)
);
TB<<SET cell="" changed="" function=""></SET>"height"列の値を変更すると、データテーブルのcolボックス内の対応する値が変更されます。ただし、値が変更されても警告ウィンドウは表示されません。基本的に、Subscribe()が1つまたは複数のセルに対して行ったように、データテーブルからメッセージを受け取りたいと思います。どんなアイデアでも評価されます。
再:データセット内のセルを購読するこれら2つの解決策は素晴らしいもので、私にはうまくいきます。助けてくれてありがとう、それは本当に私に大いに役立ちます!再:データセット内のセルを購読する私はそれが好きです!
再:データセット内のセルを購読するScripting Indexに記載されているにもかかわらず、"Set Cell Changed Function"はData Table Col Box()では機能しないようです。
これが、データテーブル内の2つの(非表示の)列で回避策を講じるためのアイデアです。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("orig_height", values(:height << get values), hide(1));
dt << New Column("on_change",
Formula(
If(height != orig_height,
New Window("Warning", Text Box("The cell value has been changed"));
.;
)
),
hide(1)
);
New Window("Example", Table Box(dtcb = Data Table Col Box(:height)));再:データセット内のセルを購読するとにかく、データテーブルのデータ値の変更を直接トリガーしてから、それをテーブルボックス()の変更に影響を与えるようにすることは、私にはわかりません。 しかし、以下は少し奇妙な回避策ですが、仕事を終わらせることもできます.....................................................................................................................................................................................................................................................................................................................................そしてまた、JMPコミュニティのメンバーになること
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Setup a matrix of the current values
holdMatrix = dt:Height << Get Values;
// A Graphics Script will be triggered every time a
// graph changes.
// Therefore, it can be used to trigger a change in
// a data table
// Open a graph that will have a data point for every
// entry in the data table.
cc = Control Chart(
Sample Size( 1 ),
KSigma( 3 ),
Chart Col( :height, Run Chart( Show Center Line( 0 ) ) )
);
// The chart is not intended to be displayed, only used as
// a trigger. Therefore it needs to be hidden. If an
// "Invisible" element is added to the chart, the graphics
// trigger does not seem to work, however, if the "show window"
// message is sent, the Graphics Script continues to work
Report( cc ) << show window( 0 );
// Add a script to the Chart, to make the changes in
// the Table Box
Report( cc )[FrameBox( 1 )] << Add Graphics Script(
ncb << delete;
tb << append( ncb = Number Col Box( "string", dt:height << get values ) );
// If any value in the data tables Height column changes,
// this If statement will detect it
If( Min( holdMatrix == dt:height << get values ) == 0,
New Window( "Warning", Text Box( "The cell value has been changed" ), );
holdMatrix = dt:height << get values;
);
);
// Open the display window, with the desired table box
nw = New Window( "Example",
TB = Table Box(
ncb = Number Col Box( "string", dt:height << get values ),
)
);
// When the display window is closed, cleanup the
// environment by closing the trigger chart
nw << on close( Report( cc ) << close window );
再:データセット内のセルを購読するこんにちはジム、
あなたの素晴らしいアイデアをありがとう。 しかし、私はデータテーブルのcolボックスが行ったのと同じことをやろうとしていました - あるセルの値が変わったらデータテーブルから値をリンクしてください。そのため、ユーザーからのキー入力ではなく、データがデータテーブルに直接更新されます。混乱させて申し訳ありません。
津春
再:データセット内のセルを購読する問題は、テーブルに編集可能なCol Box()を使用していないことです。 私はあなたのData Table Col Box()をNumber Col Edit Box()に変更しました、そしてあなたが指定したfunctionallityは現在働きます。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Example",
TB=Table Box(
number Col Edit Box( "string",dt:height<<GET values=""></GET>