ユーザーが選択したファイルを自動的に開いて連結するスクリプトがあります。基本的に、各ファイルは個別の製造バッチに対応しています。ユーザーがスクリプトを実行すると、ダイアログ ボックスが表示され、ユーザーは連結したいすべてのファイルを選択します。元々、使用可能な実行のリストは、ソース フォルダー内の使用可能なファイルのリストから取得されました。ただし、デフォルトでは、これはファイルを英数字の名前に基づいて並べ替えます。これは決して年代順ではありません。私がやろうと決めたのは、代わりに、時系列で入力されたバッチ ID を使用して別のテーブルからリストを作成することです。文字列はまだ英数字順に出てくるので、これは役に立ちませんでした。 リスト ボックスでソース テーブルの順序を保持して、最新の実行のみをすばやく取得できるようにしたい。たとえば、
if(
File Exists("M:\Data\prod_data.csv"),
Open("M:\Data\prod_data.csv"),
New Window("File Path Not Valid",
<< Modal,
V List Box(
Text Box ("File Not Found!")
)
)
);
Data Table( "prod_data" ) << Subset(
All rows,
columns( :Production ID ),
Output Table ("Batch List"),
);
Close (Data Table ("prod_data"), No Save);
////////////////////
Clear Symbols( UniqueRuns );
Summarize(UniqueRuns = by(:Name("Production ID")));
For( i = 1, i <= N Items( UniqueRuns ), i++,
UniqueRuns[i] = Regex( UniqueRuns[i], "offline_|.csv", "", GLOBALREPLACE )
New Window( "Select Runs", //creates a window from which users can select the runs they want to analyze by holding Ctrl or Shift
<<MODAL></MODAL>Value Order column プロパティを Row Order Levels に設定すると、Summarize はデータ テーブルにある順序でリストを返します。
:Production ID << set property("Value Order", {Common Order( 0 ), Row Order Levels( 1 )} );