定義された日付範囲にわたる分布追跡チャートのプロットやあみんな、
皆さんお元気でいらっしゃることを願っています。質問がありますので、ご協力いただければ幸いです。
私は、特定の日付範囲の NOK パーセンテージを表示する NOK 追跡チャートを作成する関数に取り組んでいます。関数で実行したいことの簡単な概要は次のとおりです。
- 現在の月の開始日と終了日を取得します。
- 次に、各日付の NOK パーセンテージを保存するための新しいテーブルを作成します。これは、月初めから今日までの各日に適用されます。
- 次に、日付と対応する NOK パーセンテージを新しいテーブルに挿入します。
- 最後に、日付範囲にわたる NOK の割合を示す折れ線グラフを作成します。
機能はほぼ動作していますが、少し問題が発生しています。
TOP5:get_dates = Function({},
today_date = Format(Today(), "yyyy-mm-dd");
start_of_month = Format(Date Increment(Today(), "Month", 0, "Start"), "yyyy-mm-dd");
evallist({start_of_month, today_date});
);
TOP5:calculate_nok_percentages = Function({dt},
{start_of_month, today_date} = TOP5:get_dates();
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
nameFilesNok = Associative Array(Column(dt_top5, "Nom de fichier") << Get Values) << Get Keys;
total_nb_total_ict = 0;
total_nb_total_fct = 0;
total_nb_nok_ict = 0;
total_nb_nok_fct = 0;
For(k = 1, k <= N Items(nameFilesNok), k++,
FileRows = dt_top5 << get rows where(
:File Name == nameFilesNok[k] & Num(Char(:Date)) >= Num(start_of_month) & Num(Char(:Date)) <= Num(today_date) & Contains(:File Name, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
total_nb_total_ict += nb_total_ict;
total_nb_total_fct += nb_total_fct;
total_nb_nok_ict += nb_nok_ict;
total_nb_nok_fct += nb_nok_fct;
);
percent_nok_ict = (total_nb_nok_ict / total_nb_total_ict) * 100;
percent_nok_fct = (total_nb_nok_fct / total_nb_total_fct) * 100;
Eval List({percent_nok_ict, percent_nok_fct});
);
TOP5:create_nok_tracking_chart = Function({dt},
{start_of_month, today_date} = TOP5:get_dates();
dt_nok = New Table("NOK Percentages",
Add Rows(0),
New Column("Date", Character),
New Column("Percent NOK ICT", Numeric),
New Column("Percent NOK FCT", Numeric)
);
For(i = Num(start_of_month), i <= Num(today_date), i++,
// Correct date formatting
today_str = Format(Date(i), "yyyy-mm-dd");
Eval List({start_of_month, today_date}) = Eval List({today_str, today_str});
result = TOP5:calculate_nok_percentages(dt);
Insert Into(dt_nok,
today_str,
result[1],
result[2]
);
);
Graph Builder(
Size( 700, 500 ),
Show Control Panel( 0 ),
Variables( X( :Date ), Y( :Percent NOK ICT ), Y( :Percent NOK FCT ) ),
Elements(
Line(
X,
Y( 1 ),
Legend( 6 ),
Line Color( "Red" )
),
Line(
X,
Y( 2 ),
Legend( 8 ),
Line Color( "Blue" )
)
),
Legend Position( "Top" )
);
);
このエラーメッセージが表示されました:
/*:
Unresolved name: Date JSL when accessing or evaluating "Date JSL". Date JSL( i ) /*###*/

これを改善するためのガイダンスやヒントを提供してくれる人はいますか?
どうもありがとう!
自動化とスクリプトウィンドウズRe: 定義された日付範囲にわたる分布追跡チャートのプロット問題はcreate_nok_tracking_chart関数にあります
For ループを簡素化するためにいくつか変更を加えましたが、残念ながら機能しません。
current_date = Date(start_of_month);
While(current_date <= Date(today_date),
// Correct date formatting
today_str = Format(current_date, "yyyy-MM-dd");
result = TOP5:calculate_nok_percentages(dt);
Insert Into(dt_nok,
today_str,
result[1],
result[2]
);
// Increment date by 1 day
current_date = Date Increment(current_date, "Day", 1);
);
Re: 定義された日付範囲にわたる分布追跡チャートのプロットDate() 関数は何をするのですか?
Re: 定義された日付範囲にわたる分布追跡チャートのプロットDate()を使用して、日付のリストから日付オブジェクトを作成しました。私の場合、月初めから今日までのすべての日付を取得し、Date() 関数によって日付が日付の算術演算と比較をサポートする日付形式になっていることを確認します。
Re: 定義された日付範囲にわたる分布追跡チャートのプロット私の知る限り、JMP には Date() 関数はありません (カレンダー ボックスに送信できる << Date() はありますが、これはまったく別のものです)。
Re: 定義された日付範囲にわたる分布追跡チャートのプロットわかりました。その場合、以下を使用できますか?
current_date = Format(start_of_month, "yyyy-MM-dd");
While ( current_date <= today_date,
today_str = Format(current_date, "yyyy-MM-dd");
result = TOP5:calculate_nok_percentages(dt);
Insert Into (dt_nok,
today_str
result[1],
result[2]
);
current_date = Date Increment(current_date, "Day", 1);
);Re: 定義された日付範囲にわたる分布追跡チャートのプロット数値 (datenums) と文字列が混在しています。日付を文字列に変換するため、get_dates 関数よりも日付を処理するより堅牢な方法を使用します。日付のままにしておく必要があります。
TOP5:get_dates = Function({},
today_date = Format(Today(), "yyyy-mm-dd");
start_of_month = Format(Date Increment(Today(), "Month", 0, "Start"), "yyyy-mm-dd");
evallist({start_of_month, today_date});
);
(これらのより堅牢な方法は、私の例でも何度か紹介しました)。
Re: 定義された日付範囲にわたる分布追跡チャートのプロットはい、今まさにそれをやろうとしています。日付形式はそのままにして、ロジックを修正して、それが機能するかどうかを確認します。
ありがとうございます。私の質問が重複していたり、馬鹿げているように思われるかもしれませんが、それは私がインターンシップのために 2 か月前に JMP と JSL 言語を使い始めたからなのです。
Re: 定義された日付範囲にわたる分布追跡チャートのプロット本当に困惑しています。この方法を試しました:
" ),
Format( "Date Abbrev", 20 )
) << Set Field Width(10);
date = today_date;
While(Num(Char(date)) >= Num(start_of_month),
{percent_nok_ict, percent_nok_fct} = TOP5:calculate_nok_percentages_for_date(dt, date);
dt_results << Add Rows(
{Format(date, "yyyy-mm-dd"), percent_nok_ict, percent_nok_fct}
);
date = Date Increment(date, "day", -1);
);
dt_results;
);
TOP5:calculate_nok_percentages_for_date = Function({dt, specific_date},
{start_of_month, today_date} = TOP5:get_dates();
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
nameFilesNok = Associative Array(Column(dt_top5, "Nom de fichier") << Get Values) << Get Keys;
total_nb_total_ict = 0;
total_nb_total_fct = 0;
total_nb_nok_ict = 0;
total_nb_nok_fct = 0;
For(k = 1, k <= N Items(nameFilesNok), k++,
FileRows = dt_top5 << get rows where(
:File Name == nameFilesNok[k] & Num(Char(:Date)) >= Num(start_of_month) & Num(Char(:Date)) <= Num(specific_date) & Contains(:File Name, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
total_nb_total_ict += nb_total_ict;
total_nb_total_fct += nb_total_fct;
total_nb_nok_ict += nb_nok_ict;
total_nb_nok_fct += nb_nok_fct;
);
percent_nok_ict = (total_nb_nok_ict / total_nb_total_ict) * 100;
percent_nok_fct = (total_nb_nok_fct / total_nb_total_fct) * 100;
Eval List({percent_nok_ict, percent_nok_fct});
);
そして私が機能できるとき:TOP5:Do = Function ({nb_date1, nb_date2},
//Ouverture de la table de données
dt = Open( "/D:/Project JMP/Tables/TableData PY.jmp", invisible );
// Calculate NOK percentages
{percent_nok_ict, percent_nok_fct} = TOP5:calculate_nok_percentages(dt);
// Call the new function to get NOK percentages over time
dt_results = TOP5:calculate_nok_percentages_over_time(dt);
// Display the results table
dt_results << Show Window;Names Default To Here( 1 );
TOP5 = New Namespace(
"TOP5"
);
TOP5:get_dates = Function({},
today_date = Format(Today(), "yyyy-mm-dd");
start_of_month = Format(Date Increment(Today(), "Month", 0, "Start"), "yyyy-mm-dd");
evallist({start_of_month, today_date});
);
TOP5:calculate_nok_percentages = Function({dt},
{start_of_month, today_date} = TOP5:get_dates();
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
nameFilesNok = Associative Array(Column(dt_top5, "Nom de fichier") << Get Values) << Get Keys;
total_nb_total_ict = 0;
total_nb_total_fct = 0;
total_nb_nok_ict = 0;
total_nb_nok_fct = 0;
For(k = 1, k <= N Items(nameFilesNok), k++,
FileRows = dt_top5 << get rows where(
:File Name == nameFilesNok[k] & Num(Char(:Date)) >= Num(start_of_month) & Num(Char(:Date)) <= Num(today_date) & Contains(:File Name, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
total_nb_total_ict += nb_total_ict;
total_nb_total_fct += nb_total_fct;
total_nb_nok_ict += nb_nok_ict;
total_nb_nok_fct += nb_nok_fct;
);
percent_nok_ict = (total_nb_nok_ict / total_nb_total_ict) * 100;
percent_nok_fct = (total_nb_nok_fct / total_nb_total_fct) * 100;
Eval List({percent_nok_ict, percent_nok_fct});
);
TOP5:calculate_nok_percentages_over_time = Function({dt},
{start_of_month, today_date} = TOP5:get_dates();
dt_results = New Table("NOK Percentages Over Time",
New Column("Date", Numeric),
New Column("Percent_NOK_ICT", Numeric),
New Column("Percent_NOK_FCT", Numeric)
);
// Set the format for the Date column
Column(dt_results, "Date") << Data Type(
Numeric,
Format( "Format Pattern", "<YYYY>-<MM>-<DL><DD>", 10 ),
Input Format( "Format Pattern", "<YYYY>-<MM>-</MM></YYYY></DD></DL></MM></YYYY>
毎回エラーが発生し続けます。
私がやりたいのは、2 番目の関数 TOP5:calculate_nok_percentages_over_time のような NOK パーセンテージを計算する関数を作成することです。違いは、この関数は今日の日付から月初までの NOK パーセンテージを計算し、次に昨日から月初までの NOK パーセンテージを計算し、月初に達するまで計算することです。結果は新しいテーブルに保存して、グラフの作成に使用できるようにします。
Re: 定義された日付範囲にわたる分布追跡チャートのプロットどのようなエラーが発生していますか?
Re: 定義された日付範囲にわたる分布追跡チャートのプロット/*:
'Format' にアクセスまたは評価する場合、引数は 1 行目で数値である必要があります (Format/*###*/(date, "yyyy-mm-dd"))。
Re: 定義された日付範囲にわたる分布追跡チャートのプロットおそらく、日付変数が文字列で、 Format()では数値変数が必要なため、このエラーが発生していると思われます。このエラーは、

date は today_date と同じです。today_date は文字列を返す TOP5:get_dates() から取得されます。日付を数値のままにしておくと、これらの問題をすべて回避できます (特に数値である Today() から開始する場合は、Num(Char()) 変換を使用する必要はありません)。
ここから始めて、スクリプト ガイドの日付と時刻の部分を読むことをお勧めしますhttps://www.jmp.com/support/help/en/18.0/#page/jmp/datetime-functions-and-formats.shtml#
Re: 定義された日付範囲にわたる分布追跡チャートのプロットあなたの提案を考慮して、この方法を試しました。しかし、まだ問題があります。私の関数は、行にポイントがあるテーブルを返します。

そして私は続けたdate = today_date;スクリプトを実行するとtoday_dateパラメータとして直接、JMP が応答しません。なぜ割り当てるのか理解できないdate = today_date実行をより効率的に処理します。
"),
Format("Date Abbrev", 20)
) << Set Field Width(10);
date = today_date;
While(date >= start_of_month,
{percent_nok_ict, percent_nok_fct} = TOP5:calculate_nok_percentages_for_date(dt, date);
dt_results << Add Rows(
{Format(date, "yyyy-mm-dd"), percent_nok_ict, percent_nok_fct}
);
date = Date Increment(date, "day", -1);
);
dt_results;
);
TOP5:calculate_nok_percentages_for_date = Function({dt, specific_date},
{start_of_month, today_date} = TOP5:get_dates_percent();
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
nameFilesNok = Associative Array(Column(dt_top5, "Nom de fichier") << Get Values) << Get Keys;
total_nb_total_ict = 0;
total_nb_total_fct = 0;
total_nb_nok_ict = 0;
total_nb_nok_fct = 0;
For(k = 1, k <= N Items(nameFilesNok), k++,
FileRows = dt_top5 << get rows where(
:File Name == nameFilesNok[k] & :Date >= start_of_month & :Date <= specific_date & Contains(:File Name, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
total_nb_total_ict += nb_total_ict;
total_nb_total_fct += nb_total_fct;
total_nb_nok_ict += nb_nok_ict;
total_nb_nok_fct += nb_nok_fct;
);
percent_nok_ict = (total_nb_nok_ict / total_nb_total_ict) * 100;
percent_nok_fct = (total_nb_nok_fct / total_nb_total_fct) * 100;
Eval List({percent_nok_ict, percent_nok_fct});
);
よろしくお願いします。 TOP5:get_dates_percent = Function({},
today_date = Today();
start_of_month = Date Increment(Today(), "Month", 0, "Start");
evallist({start_of_month, today_date});
);
TOP5:calculate_nok_percentages_over_time = Function({dt},
{start_of_month, today_date} = TOP5:get_dates_percent();
dt_results = New Table("NOK Percentages Over Time",
New Column("Date", Numeric),
New Column("Percent_NOK_ICT", Numeric),
New Column("Percent_NOK_FCT", Numeric)
);
// Set the format for the Date column
Column(dt_results, "Date") << Data Type(
Numeric,
Format("Format Pattern", "<YYYY>-<MM>-<DL><DD>", 10),
Input Format("Format Pattern", "<YYYY>-<MM>-</MM></YYYY></DD></DL></MM></YYYY>
Re: 定義された日付範囲にわたる分布追跡チャートのプロットセル内の点は、数値データ型の列があるためデータが欠落していることを意味します。
Re: 定義された日付範囲にわたる分布追跡チャートのプロット問題がコードとデータセットの互換性に関するものかどうかはわかりません。
参考までにデータ テーブルのサンプルを添付しました。
Re: 定義された日付範囲にわたる分布追跡チャートのプロット日付は数値です。
Names Default To Here(1);
dt = Open("$DOWNLOADS/TableData SVI PY.jmp");
vals = Column(dt, "Date") << get values;
show(vals);


Re: 定義された日付範囲にわたる分布追跡チャートのプロットはい、私の日付は数値です
Re: 定義された日付範囲にわたる分布追跡チャートのプロットアップデート:)
この方法で関数を使用しようとしましたが、すべての日付を数値形式に設定しました。しかし、いつものようにこのエラーが発生しました。日付列にあると思います。
/*:
"Cannot set the value of column 'Percent_NOK_ICT' because the row number (0) is not valid."
// Ouvrir le fichier de données
dt = Open("$DOWNLOADS/TableData SVI PY.jmp", invisible);
// Créer un résumé des données
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
// Créer la table de résultats
dt_results = New Table("NOK Percentages Over Time",
New Column("Date", Numeric),
New Column("Percent_NOK_ICT", Numeric),
New Column("Percent_NOK_FCT", Numeric)
);
// Obtenir les noms de fichiers NOK
nameFilesNok = Associative Array(Column(dt_top5, "Nom de fichier") << Get Values) << Get Keys;
// Boucle sur chaque jour depuis aujourd'hui jusqu'au début du mois
For(i = Today(), i >= Num(Date Increment(Today(), "Month", 0, "Start")), i -= 1,
current_date = i;
total_nb_total_ict = 0;
total_nb_total_fct = 0;
total_nb_nok_ict = 0;
total_nb_nok_fct = 0;
// Calcul des pourcentages NOK pour chaque jour
For(k = 1, k <= N Items(nameFilesNok), k++,
FileRows = dt_top5 << get rows where(
:Nom de fichier == nameFilesNok[k] & Num(Date(:Date)) >= current_date & Num(Date(:Date)) <= Num(Today()) & Contains(:Nom de fichier, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
total_nb_total_ict += nb_total_ict;
total_nb_total_fct += nb_total_fct;
total_nb_nok_ict += nb_nok_ict;
total_nb_nok_fct += nb_nok_fct;
);
// Assurez-vous que les totaux ne sont pas zéro avant de calculer les pourcentages
If(total_nb_total_ict > 0,
percent_nok_ict = (total_nb_nok_ict / total_nb_total_ict) * 100;
,
percent_nok_ict = 0;
);
If(total_nb_total_fct > 0,
percent_nok_fct = (total_nb_nok_fct / total_nb_total_fct) * 100;
,
percent_nok_fct = 0;
);
// Ajouter une nouvelle ligne et définir les valeurs
dt_results << Add Rows(1);
last_row_index = N Rows(dt_results);
dt_results:Date[last_row_index] = current_date;
dt_results:Percent_NOK_ICT[last_row_index] = percent_nok_ict;
dt_results:Percent_NOK_FCT[last_row_index] = percent_nok_fct;
);
// Affichage des résultats
dt_results;
Re: 定義された日付範囲にわたる分布追跡チャートのプロット
問題を引き起こしているのは Date() 関数である可能性があります (どのように定義したかがわからないため、よくわかりません)。
Re: 定義された日付範囲にわたる分布追跡チャートのプロットこのテーマに興味のある人のために、更新されたバージョンのコードが添付されています。
// Ouvrir le fichier de données
dt = Open( "/D:/Project JMP/Tables/TableDataPY.jmp", invisible );
today_date = Format(Today(), "yyyy-mm-dd");
start_of_month = Format(Date Increment(Today(), "Month", 0, "Start"), "yyyy-mm-dd");
evallist({start_of_month, today_date});
dt_top5 = dt << Summary(
Group(:Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
invisible
);
results_table = New Table( "Results",
New Column( "Date", Character ),
New Column( "Percent NOK ICT", Numeric ),
New Column( "Percent NOK FCT", Numeric ),
New Column( "Total ICT", Numeric ),
New Column( "NOK ICT", Numeric ),
New Column( "Total FCT", Numeric ),
New Column( "NOK FCT", Numeric )
);
For(day = Num(start_of_month), day <= Num(today_date), day = Date Increment(day, "Day", 1),
current_date = Format(day, "yyyy-mm-dd");
FileRows = dt_top5 << get rows where(
Num(Char(:Date)) == Num(current_date) & Contains(:Nom de fichier, "GOLDEN") == 0
);
nb_total_ict = 0;
nb_total_fct = 0;
nb_nok_ict = 0;
nb_nok_fct = 0;
total_rows = N Items(FileRows);
For(j = 1, j <= total_rows, j++,
If(dt_top5:ICT_FCT[FileRows[j]] == "ICT",
nb_total_ict = nb_total_ict + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_ict = nb_nok_ict + dt_top5:Nb. de lignes[FileRows[j]]
);
, dt_top5:ICT_FCT[FileRows[j]] == "FCT",
nb_total_fct = nb_total_fct + dt_top5:Nb. de lignes[FileRows[j]];
If(dt_top5:Result[FileRows[j]] == "NOK",
nb_nok_fct = nb_nok_fct + dt_top5:Nb. de lignes[FileRows[j]]
);
)
);
If(nb_total_ict > 0,
percent_nok_ict = (nb_nok_ict / nb_total_ict) * 100,
percent_nok_ict = 0
);
If(nb_total_fct > 0,
percent_nok_fct = (nb_nok_fct / nb_total_fct) * 100,
percent_nok_fct = 0
);
results_table << Add Rows(1);
row_index = N Rows(results_table);
results_table:Date[row_index] = current_date;
results_table:Percent NOK ICT[row_index] = percent_nok_ict;
results_table:Percent NOK FCT[row_index] = percent_nok_fct;
results_table:Total ICT[row_index] = nb_total_ict;
results_table:NOK ICT[row_index] = nb_nok_ict;
results_table:Total FCT[row_index] = nb_total_fct;
results_table:NOK FCT[row_index] = nb_nok_fct;
);
results_table << Save( "D:/Project JMP/Tables Resultats NOK percentages/Results.jmp" );
// Fermer toutes les tables ouvertes
Close( dt, "No Save" );
Close( dt_top5, "No Save" );
<BR />