データテーブル内の色付きのセルをすべて選択するにはどうすればよいですか問題を示すために特定の行が赤色で示されているデータテーブルが渡されましたが、問題の背後にあるロジックがわかりません。 JSL で赤色の行をすべて選択するにはどうすればよいですか?
Re: データテーブル内の色付きのセルをすべて選択するにはどうすればよいですかdt = Open("C:/temp/Cars_modified.jmp");
//______________________________________________________________________________________
//A function to find the colored cells in a specific column.
//-15341335 = reddish color, 73 = yellowish, 36=greenish
get_colored_cells = Function( {col}, {_s,i, xp, clr_aa=0 },
// If IsMissing(clr) then get all colors
_s = col << get script ;
for(i=1, i<=narg(_s) , i++,
xp = Arg(_s, i);
if(Head Name(xp) =="Color Cells",
//this only works if the color is an integer might need a for loop to change the
//key to the RGB value
clr_aa = Associative Array(Arg(xp,1));
clr_aa << set default value(0);
Break()
);
);
clr_aa
);
//_______________________________________________________________________________________
// Usage examples:
model_aa = get_colored_cells( Column("Model"));
dt<< select rows (model_aa[73]);上記の例を変更して黄色がかったセルを選択したところ、「モデル」列に複数の色がある場合に機能しました。 列に 1 色しかない場合は機能しません。 列で使用されている色が 1 つだけの場合に、モデル列内の色付きセルを選択できるようにスクリプトを変更するにはどうすればよいですか?
Re: データテーブル内の色付きのセルをすべて選択するにはどうすればよいですか次に、次のコードを使用したいとします(から変更) @gzmorgan0コード)
//get and table row with a specified color
_colorRows = dt << get rows where (Color Of( Row State( Row() ) ) != 0) ;
dt<<SELECT rows=""></SELECT>
Re: データテーブル内の色付きのセルをすべて選択するにはどうすればよいですかこの場合、個々のセルではなく、行に色が付けられます。
Re: データテーブル内の色付きのセルをすべて選択するにはどうすればよいですかJim が述べたように、セルの色は行の色に関連付けることも、行の色とは独立させることもできます。特定の列のセルの色を取得する方法を知る唯一の方法は、列スクリプトを取得して式 (スクリプト) 引数を「解凍」することです。
列に色付きのセルが含まれる場合、引数 Color Cells( {... } ) があり、リストには 1 つ以上のリストが含まれます。各リストの最初の項目は色番号で、リストの 2 番目の項目は別のリストです。その色のセル(行)のリスト。2項目リスト形式は、名前と値のペア。 添付されたスクリプトは、セルの色が整数ではない場合を処理しません。
JMP がカラーセルを列プロパティにして、col << get Column Property("Cell Colors") が引数を検索せずにリストを返すようにしたいと思います。
ジムならもっと簡単な解決策があるかもしれない。 表を添付しますCars_modified.jmpおよびそれを使用するスクリプト。このスクリプトは c:/temp からテーブルを参照するため、正しいテーブル パスが含まれるようにスクリプトを変更します。
Re: データテーブル内の色付きのセルをすべて選択するにはどうすればよいですかこれを直接取得する方法はありません。問題の 1 つは、行に色が付いているか、セルに色が付いているかということです。これを判断するには、行番号が含まれる列、つまり行状態列を調べ、行に色が付けられている行にマーカーがあり、それが同じ色であるかどうかを確認します。行として指定すると、行に色が付けられます。色付きの行の行状態列に色付きのマーカーがない場合、各セルが色付きになります。
あなたは次のうちどれに当てはまりますか?
Re: データ テーブル内の色付きセルをすべて選択するにはどうすればいいですか?素晴らしいトリックです - 列スクリプト経由です!:)
:folded_hands: 表現のインデックス作成: 読み取りと書き込みのアクセスにより、
if(Head Name(xp) =="Color Cells",
一部 ...
それが利用可能になるまで、式をリストに変換し、リストのインデックスを使用することができます。
dt = Open("C:/temp/Cars_modified.jmp");
myScript = dt:Model << Get Script;
SubstituteInto(myScript, Expr(New Column()), {});
colorsettings = Associative Array(Try(myScript["Color Cells"],{}));