選択したデータテーブルの内容をクリアするための JSL コード非常に簡単に達成できると思われることを実行しようとしていますが、それを実行できる JSL 命令が見つかりません。基本的に、さまざまな列と行を選択した後、列または行全体ではなく、選択したセルの内容を削除したいと考えています。これを手動で行うことはできますが、そのための JSL コマンドが見つかりません。ご提案をお待ちしております。
例えば、
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
次に、選択したセルの内容を削除します。
ありがとう。
Re: 選択したデータテーブルの内容をクリアするための JSL コード<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ここにはオペレーティング システムの標準の違いがあります。Windows が使用する編集 -> クリアそしてMacは使用します編集 -> 削除。
したがって、どちらに対しても堅牢なスクリプトを作成するには、以下を使用する必要があります。
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-ジェフ
Re: 選択したデータテーブルの内容をクリアするための JSL コードご提案いただきありがとうございます。
いくつかのオプションが表示されてうれしいです。MSが提案したように、呼び出すことができる典型的なコマンドがあるはずだと考えていました(注:実際のコマンドは次のとおりです)メインメニュー( "クリア" ) ;、 いいえメインメニュー( "消去" ))
Re: 選択したデータテーブルの内容をクリアするための JSL コードどうもありがとう! 特に私の入力では文字数が少ない方が良いです。 。 。
Re: 選択したデータテーブルの内容をクリアするための JSL コード素敵な機能イアン! さらに簡素化するには、Empty() を使用して、異なるデータ型を個別に扱うことを避けることができます。 これは、数値列と文字列の両方で機能します。
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
Re: 選択したデータテーブルの内容をクリアするための JSL コードシンプルですが潜在的に危険な方法は、MainMenu() を使用して消去のコマンド編集メニュー。 アクティブなウィンドウで選択されているものはすべて削除されるため、危険です。 したがって、複雑なスクリプトでは、コマンドの実行時にどのウィンドウが最前面に表示されるかを必ず追跡してください。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows([5, 7, 8, 10]);
Column("name") << Set Selected(1);
Column("height") << Set Selected(1);
dt << Bring Window To Front;
Main Menu("Delete");
Re: 選択したデータテーブルの内容をクリアするための JSL コードこのようなもの:
NamesDefaultToHere(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Set up a selection of cells
dt << Select Rows( [5, 7, 8, 10] );
Column (dt, "name" ) << Set Selected ( 1 );
Column (dt, "sex" ) << Set Selected ( 1 );
// Function to set currently selected cells to '.' or ""
clearSelectedCells =
Function({dt}, {Default Local},
selCols = dt << getSelectedColumns;
selRows = dt << getSelectedRows;
for(c=1, c<=NItems(selCols), c++,
dType = Column(dt, selCols[c]) << getDataType;
if (dType == "Numeric",
Column(dt, selCols[c])[selRows] = .
,
Column(dt, selCols[c])[selRows] = ""
);
);
);
// Use the function
clearSelectedCells(dt);