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;
Return({percent_nok_ict, percent_nok_fct});
);
// Define the Do function
TOP5:Do = Function ({nb_date1, nb_date2},
//Ouverture de la table de données
dt = Open( "/D:/Project JMP/Tables Données/SVI/TableData SVI PY.jmp", invisible );
{percent_nok_ict, percent_nok_fct} = TOP5:calculate_nok_percentages(dt);
current_month = Format(Today(), "Format Pattern", "<Month>", << Use Locale(0));
date1 = Date Increment(Today(), "day", nb_date1, "start");
date2 = Date Increment(Today(), "day", nb_date2, "start");
dt_top5 = dt << Summary(
Group( :Date, :Nom de fichier, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :Result, :CodeError),
Freq( "Aucun(e)" ),
Weight( "Aucun(e)" ),
output table name( "Table Top 5" ),
invisible
);
/*
//
//
//
Here i have the logic of production repport.
it's fine it works
//
//
//
*/
//Création de la fenetre du top 5
window = new Window ("TOP5",
V List Box(
pb = Picture Box( Open( "D:\Project JMP\Images\logo.png", png ) ),
Border Box( Top(50),
V List Box(
tb1 = Text Box("Production results report of "||Format( date2, "yyyy-mm-dd" )),
tb1 << Set Base Font( "Title" ),
tb1 << Set Font Scale (3),
tb1 << Justify Text("Center"),
tb1 << Set Width(2770),
tb1 << Background Color(RGB Color(225, 225, 225)),
tb2 = Text Box ("SVI, PY"),
tb2 << Justify Text("Center") << Set Font Size(25),
tb2 << Set Width(2770),
tb2 << Background Color(RGB Color(240, 240, 240)),
)
),
V List Box (
Border Box (Top (100), Bottom(100), Left (25),
H List Box(
// TOP 5 ICT
V List Box(
tb3 = Text Box( "Top 5 NOK results for ICT"),
tb3 << Set Base Font( "Title" ),
tb3 << Set Font Scale (2),
H List Box(
// column bay
// column product ref
// column test number
//column %nok
// column product name
)
),
V List Box(
Border Box(Top(100), Bottom(100), Left(200), Right(25),
V List Box(
nokPercentTitle = Text Box("%Nok Percent for this month"),
nokPercentTitle << Set Base Font("Title"),
nokPercentTitle << Set Font Scale(2),
nokPercentTitle << Justify Text("Center"),
nokPercentTitle << Set Width(750),
Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
b1 = Border Box(Left(l), Right(r), Top(t), Bottom(b), Sides(s), t1 = Text Box("ICT Nok Percent for " || current_month || " is :" || Char(Round(percent_nok_ict)) || "%" )),
b1 << Set Background Color(RGB Color(93, 173, 226)),
t1 << Set Width(750) << Set Font Size(25) << Justify Text("Center")
),
Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
b2 = Border Box(Left(l), Right(r), Top(t), Bottom(b), Sides(s), t2 = Text Box("FCT Nok Percent for " || current_month || " is :" || Char(Round(percent_nok_fct)) || "%" )),
b2 << Set Background Color(RGB Color(245, 176, 65)),
t2 << Set Width(750) << Set Font Size(25) << Justify Text("Center")
)
)
)
),
)
),
Border Box(Left(25), Top(50), Bottom(200),
//TOP 5 FCT
V List Box(
tb4 = Text Box( "Top 5 NOK results for FCT"),
tb4 << Set Base Font( "Title" ),
tb4 << Set Font Scale (2),
H List Box(
// column bay
// column product ref
// column test number
//column %nok
// column product name
)
)
)
)
)
);
window << Maximize Window (1);
//Enregistrement du fichier image .png et du fichier texte .txt
window << Save Picture ("D:\Project JMP\Rapports de Production Quotidiens\Rapport du "||Format( date2, "yyyy-mm-dd" )||".png", "png");
window << Save Text ("D:\Project JMP\Rapports de Production Quotidiens\Rapport du "||Format( date2, "yyyy-mm-dd" )||".txt");
);