Hello everyone,
I have a problem with my script, i want to do a study :
It's about filtering the IDs, avoiding IDs that are empty, equal to "-" or equal to "NOK". Then, these filtered IDs should be placed in a new table called dt_id_tri
with the following columns: Ref Produit
, Baie
, and ID
. After that, take a Ref Produit
from the dataset and calculate the total number of duplicates (nb_total_doubl
) for that Ref Produit
, and include it in a JMP report with the message: 'The total number of duplicates for Ref Produit: ' || Ref Produit
|| ' is: ' || ...
For the second part, do the same for all Ref Produit
and generate a report that contains all Ref Produit
with a message for each one: 'The total number of duplicates for Ref Produit: ' || Ref Produit
|| ' is: ' || ...""
Names Default To Here( 1 );
// Open the data table
dt = Open( "D:/Project JMP/Tables Données/SVI/TableData SVI.jmp", invisible );
// Filter valid IDs: not empty, not equal to "-" or "NOK"
dt_id_tri = dt << Select Where(
(:ID != "") &
(:ID != "-") &
(:ID != "NOK")
);
// Create a new table with the columns Ref Produit, Baie, ID
dt_id_tri = dt << Subset(
All rows,
columns( :Ref Produit, :Baie, :ID )
);
// Calculate duplicates for a single Ref Produit
one_ref_produit = "22055";
dt_summary_one_ref = dt_id_tri << Summary(
Group( :ID ),
Freq( "N" ),
Where( :Ref Produit == one_ref_produit )
);
// Filter duplicates where the frequency (Freq) is greater than 1
nb_total_doubl_one_ref = N Row( dt_summary_one_ref << Select Where( :N Rows > 1 ) );
report_single_ref = "The total number of duplicates for Ref Produit: " || one_ref_produit || " is: " || nb_total_doubl_one_ref;
Show( report_single_ref );
// Calculate duplicates for all Ref Produit
refs = dt_id_tri << Get As Matrix( :Ref Produit );
refs = Remove Duplicates( refs );
// Loop through all Ref Produit
For( i = 1, i <= N Items( refs ), i++,
dt_summary_ref = dt_id_tri << Summary(
Group( :ID ),
Freq( "N" ),
Where( :Ref Produit == refs[i] )
);
// Filter duplicates where the frequency is greater than 1
nb_total_doubl = N Row( dt_summary_ref << Select Where( :N Rows > 1 ) );
report_all_ref = "The total number of duplicates for Ref Produit: " || refs[i] || " is: " || nb_total_doubl;
Show( report_all_ref );
);
I did get this error :
/*:
NRow or NCol argument must be a Matrix or Data Table at row 1 in access or evaluation of 'N Row' , Bad Argument( Scriptable[] ), N Row/*###*/(dt_summary_one_ref << Select Where( :N Rows > 1 ))
at line 28 in C:\Users\Script.jsl
Thank you.