Suppress EvalおよびEval Formulaのサポートが必要ここには、理解できないいくつかの質問があります。
- 数式の作成時にSuppress Evalが自動的にオンになることがあるのはなぜですか?
- (誤ってまたは他の方法で)オンにした後、列ごとに手動で抑制をオフにせずに(または属性を標準化して)数式を再評価するにはどうすればよいですか?
- データテーブルのホットスポットで[式の評価を抑制]および[式の再実行]を見つけましたが、手動で[抑制]をオンにすると、これらは機能しないようです。
- JSLでは、この作業をどのように行うのですか?(dt << Suppress Eval(0)およびdt << Rerun Formulasを使用するか、特定の列を指定することにより、成功が制限されます)。
2つの非表示列を持つ非常に単純なデータテーブルを添付しています。 私は何を間違えていますか??
再:評価と評価式の抑制に関するヘルプが必要Tables-> SortにはSupress Evalオプションもあります。
再:評価と評価式の抑制に関するヘルプが必要ジェフありがとう!これは、実際にはクライアントの「偶発的な抑制」問題の根本原因である可能性があります。 一緒に渡します。
再:評価と評価式の抑制に関するヘルプが必要評価を抑制するプロンプトを表示する可能性のある式を作成するときの間違いは別として、おそらく列を評価を抑制するように設定する最も一般的な方法は、[テーブル]メニューを使用することです。
Tables-> Subsetには、evalを抑制するためにデフォルトでオンになっているオプションがあります。

スタックと結合には同様のオプションがあります。
再:評価と評価式の抑制に関するヘルプが必要ありがとうジェリー!
再:評価と評価式の抑制に関するヘルプが必要ブレイディありがとう!いつものように、悪魔は詳細にあります。 私が取り上げなかった微妙な違い。
したがって、正しく理解できれば、個々の列の抑制を個別にクリアする必要があります。 データテーブルの抑制は別のものであり、データテーブルレベルからクリアされます。
参考までに、これは顧客からのリクエストによるものです。 彼は、(なんとかして)Suppress Evalに設定され、その後更新されない個別の列を持っていました。 彼はシンプルな「すべて再計算」ボタンを探していました。 それはいつか追加するのに便利な機能だと思いますか?
再:評価と評価式の抑制に関するヘルプが必要dt = current data table()についてもっと明確にすべきでした。
スクリプトを作成する場合
dt =現在のデータテーブル。
の代わりに
dt =現在のデータtable();
dtはデータテーブルハンドルにバインドされません... 「現在のデータテーブル」という名前の変数の値にバインドされます。ほぼ確実に、この変数は未定義になります。
したがって、dtに送信されたデータテーブルメッセージは、この場合は耳が聞こえません。これだけで、元のスクリプトが失敗するのに十分です。
再:評価と評価式の抑制に関するヘルプが必要私が追加することは、列がSuppress Eval(0 | 1)またはSuppress Formula Eval(0 | 1)のいずれかを受け入れるように見えることですが、テーブルはSuppress Formula Eval(0 | 1)にのみ応答します。これは、「限られた成功」またはあなたが見ていた矛盾を説明するかもしれません。また、列の設定はテーブルの設定よりも優先されます。
再:評価と評価式の抑制に関するヘルプが必要私は1)と2)に対処しませんでした。
1)列式によってエラーがスローされると、ユーザーにプロンプトが表示されます。1つのオプションは、評価を抑制することです。
2)質問で言及した方法を除いて、抑制をオフにする方法がわかりません... これらは私が使用している方法です。私は抑制にあまり遭遇しません。基本的に、数式にエラーがあり、トラブルシューティングを行いたい場合にのみ。
再:評価と評価式の抑制に関するヘルプが必要こんにちはジェリー、
関数であるため、Current Data Table()の後に括弧が必要です。引数は0で、現在のテーブルへのハンドルを返します。
私はこれらをあまり使用しませんが、私が知ることができることから、表レベルと列レベルの2つの抑制レベルがあるようです。列レベルの抑制をクリアするには、以下を使用します。
メッセージが異なることに注意してください... 列は<< suppress eval(0 | 1)を使用し、テーブルは<< suppress formula eval(0 | 1)を使用します
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Col( dt ), i++,
Column( dt, i ) << suppress eval( 0 )
);
テーブルレベルの抑制をクリアするには、次を使用します。
dt << Suppress Formula Eval(0);
dt << Rerun Formulas;
これらはあなたが提供したテーブル上で私のために働いていますが、私はこれらを他の方法でテストしていません。
乾杯、
ブレイディ