データテーブルを閉じるときに名前が認識されないこんにちは、
データテーブルを閉じるのに問題があります。
私は自分のコードを以下に置きます:
f_UI:details_top5_nok = Function({rank, ictFct, tab_top5, box, dt, date1, date2},
file_name = tab_top5[rank];
dt << Select Where (:Result == "NOK" & :ICT_FCT == ictFct & :Nom de fichier == file_name & Num(date1) <= Num(Char(:Date)) <= Num(date2));
dtSub = dt << Subset (
Selected Rows(1),
columns(:Date, :Nom de fichier, :Ref Produit, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError)
);
dtSum = dtSub << Summary(
Group(:Code Error, :Reason Error),
output table name("Détails "||file_name)
);
dtSum << On Close(
Close(dtSub, NoSave);
)
);この関数を呼び出すと、最後のブロックが閉じるまで、すべてが期待どおりに実行されます(サブセットと要約)。 動作に必要なのは、dtSumを閉じると、dtSubが自動的に終了することです。 ただし、dtSumを閉じると、次のエラーが発生します。
未解決の名前:「dtSub」にアクセスまたは評価するときのdtSub、dtSub / * ### * /
dtSumを閉じようとすると、dtSubに対応するテーブルがまだ開いているため、このエラーが発生する理由がわかりません...
よろしくお願いします!
スクリプティングRe:Nomnonreconnuàlafermetured'unetablededonnees問題を再現することはできましたが、回避策はありません。うまくいけば、別のコミュニティメンバーがそうします。
Re:Nomnonreconnuàlafermetured'unetablededonneesテーブル参照がスコープ内にない場合にも、同様のエラーが発生します。 私の解決策は次のとおりでした、
example = Function( {dt},
{dtSub, dtSum},
dt << select where( :height > 61 );
dtSub = dt << subset( Selected( rows( 1 ) ) );
dtSum = dt << summary( group( :age ) );
Eval(
Substitute(
Expr(
dtSum << OnClose( Close( Data Table( table_name ), no save ) )
),
Expr( table_name ), dtSub << get name
)
);
);
example( Data Table( "big class" ) );Re:データテーブルを閉じるときに名前が認識されませんこの解決策をありがとう、それは私のために働いた! 今回は、データテーブルを閉じるときに削除したいアウトラインボックスで同様の問題が発生しています。 残念ながら、以前の問題と同じエラーが発生します。 あなたはそれを修正する方法を知っていますか?
Re:Nomnonreconnuàlafermetured'unetablededonneesアイデアは、変数参照に依存しない方法でアウトラインボックスを参照することです。 これは、うまくいけばスクリプトに適応できる例です。
example = Function( {dt},
{dtSub, dist},
dt << select where( :height > 61 );
dtSub = dt << subset( Selected( rows( 1 ) ) );
dist = dtSub << Distribution( Continuous Distribution( Column( :weight ) ), Nominal Distribution( Column( :age ) ) );
Eval(
Substitute(
Expr(
dt << OnClose( Report( distribution[1] )[Outline Box( 3 )] << Visibility( "Collapse" ) )
),
Expr( table_name ), dtSub << get name
)
);
);
example( Data Table( "big class" ) );
また、アウトラインボックスを実際に削除するのではなく、折りたたむことをお勧めします。