So erstellen Sie ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiertHallo zusammen,
Ich hoffe, es geht dir gut.Ich habe ein Problem beim Erstellen eines Skripts zum Generieren eines Pareto-Diagramms aus einer Tabelle, die ich nach Daten (Datum1 und Datum2) filtern möchte.
Als ersten Schritt,Ich habe meine Tabelle wie folgt aufgerufen:
dt2 = Open( "/D:/Project JMP/Tables/Table NOK PY.jmp", invisible );
Nächste :
dt2_top5 = dt2 << Summary(
Group( :Date, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :CodeError),
Freq( "Aucun(e)" ),
Weight( "Aucun(e)" ),
output table name( "Table2 Top 5" ),
invisible
);
// Subset of data for Pareto plot filtered by Date
dt_pareto_subset = dt2_top5 << Select Where( Num( Char( :Date ) ) >= Num( date1 ) & Num( Char( :Date ) ) < Num( date2 ) );
dt_pareto_subset = dt2_top5 << Subset(
Selected Rows(1),
Columns(:CodeError),
output table name("Pareto Subset"),
invisible
);und ich habe das Pareto-Diagramm in meinem Fenster erstellt:
Border Box(Left(25), Top(50), Bottom(200),
V List Box(
// Add the Pareto plot here
paretoPlot = dt_pareto_subset << Pareto Plot(
Y( :CodeError ),
Freq( "Freq" ),
Show Percents( 1 ),
Show Cumulative Line( 1 )
),
)
)
aber nachdem ich mein Skript gestartet hatte, erhielt ich diesen Fehler:

Beim Zugriff bzw. bei der Auswertung von "Send" wird das Scriptobjekt erwartet, dt_pareto_subset << /*###*/
Pareto-Diagramm(
Y(:CodeFehler),
Häufigkeit("Häufigkeit"),
Prozente anzeigen(1),
Kumulative Linie anzeigen(1)
)/*###*/
Ich habe einen kleinen Codeausschnitt, der ein Pareto-Diagramm generiert. Derzeit muss ich die Datentabelle jedes Mal manuell auswählen und kann keinen Datumsfilter anwenden:
Pareto Plot(
Cause( :CodeError ),
SendToReport(
Dispatch( {"Plots"}, "Pareto Report", FrameBox, {Frame Size( 1555, 725 )} )
)
);
Vielen Dank an alle für Ihre Hilfe,
Beste grüße,
Jass
WindowsBetreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Haben Sie die erwartete Teilmenge in dt_pareto_subset?
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?ja, und ich erwarte, dass dt_pareto_subset nur die Zeilen aus dt2_top5 enthält, bei denen der Wert in der Spalte :Date zwischen date1 und date2 liegt
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Die Fehlermeldung besagt, dass die Variable dt_pareto_subset kein skriptfähiges Objekt (in diesem Fall eine Datentabelle) hat. Dafür kann es viele verschiedene Ursachen geben und es ist reine Vermutung, ohne Ihre Daten oder das vollständige Skript zu sehen.
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?
Names Default To Here( 1 );
TOP5 = New Namespace(
"TOP5"
);
TOP5:get_dates = Function({},
////
);
TOP5:calculate_nok_percentages = Function({dt},
/////
);
// Define the Do function
TOP5:Do = Function ({nb_date1, nb_date2},
//Ouverture de la table de données
dt = Open( "/D:/Project JMP/Tables/TableData PY.jmp", invisible );
dt2 = Open( "/D:/Project JMP/Tables/Table NOK 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
);
dt2_top5 = dt2 << Summary(
Group( :Date, :Ref Produit, :ProductName, :Baie, :ICT_FCT, :CodeError),
Freq( "Aucun(e)" ),
Weight( "Aucun(e)" ),
output table name( "Table2 Top 5" ),
invisible
);
// Subset of data for Pareto plot filtered by Date
dt_pareto_subset = dt2_top5 << Select Where( Num( Char( :Date ) ) >= Num( date1 ) & Num( Char( :Date ) ) < Num( date2 ) );
dt_pareto_subset = dt2_top5 << Subset(
Selected Rows(1),
Columns(:CodeError),
output table name("Pareto Subset"),
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(
//nok percent for this month
),
)
),
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
)
)
V List Box(
//nok percent for this month
),
)
),
Border Box(Left(25), Top(50), Bottom(200),
V List Box(
// Add the Pareto plot here
paretoPlot = dt_pareto_subset << Pareto Plot(
Y( :CodeError ),
Freq( "Freq" ),
Show Percents( 1 ),
Show Cumulative Line( 1 )
),
)
)
)
)
);
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");
);</MONTH>
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Funktioniert es wie vorgesehen, wenn Sie das Diagramm erstellen, nachdem Sie die Teilmenge erstellt haben? Platzieren Sie es also nicht in dem neuen Fenster
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Time Series/Steel Shipments.jmp");
dt << New Column("Errors", Character, Nominal, Formula(
Match(Floor(:Steel Shipments / 1000),
4, "1000",
5, "2000",
6, "3000",
7, "4000",
8, "5000"
)
));
rows_of_interest = dt << Get Rows Where(02Feb1985<= :Date <= 09Jan1990);
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Output Table("Subset"));
paretoplot = dt_subset << Pareto Plot(Cause(:Errors));Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Hallo,
ich habe die Methode in Ihrem Skript ausprobiert, sie gibt mir das Pareto-Diagramm, aber ohne Datenfilter. Beispielsweise muss das Pareto für heute 29.07.2024 <= :Datum < 30.07.2024 sein.
Also habe ich diese Funktionen verwendet:
// Function to get today's and yesterday's date
GetTodayAndYesterday = Function({},
today = Today();
yesterday = Date Increment(today, "day", -1, "start");
evallist({Format(yesterday, "yyyy-mm-dd"), Format(today, "yyyy-mm-dd")});
); dt = Open( "/D:/Project JMP/Tables/DB.jmp", invisible );
{yesterday, today} = GetTodayAndYesterday();
dt_top5 = dt << Summary(
Group( :Date, :Ref Produit, :Baie, :ICT_FCT, :Result, :CodeError),
Freq( "Aucun(e)" ),
Weight( "Aucun(e)" ),
output table name( "Table Top 5" ),
invisible
); // Create a subset of data for the Pareto Plot filtered by the date range
rows_of_interest = dt_top5 << Get Rows Where( Num( Char( :Date ) ) >= Num( yesterday ) & Num( Char( :Date ) ) <= Num( today ) );
dt_pareto_subset = dt_top5 << Subset(Rows(rows_of_interest), Selected Columns(0), Output Table("Pareto Subset"), invisible);
// Generate the Pareto Plot
paretoplot = dt_pareto_subset << Pareto Plot(Cause(:CodeError)); Ich habe als Referenz ein Beispiel meiner Datenbank angehängt.
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Möchten Sie einen Datenfilter in Ihrem Pareto-Diagramm haben oder möchten Sie nur die Daten filtern? Es scheint, als ob Sie nur eine Teilmenge Ihrer Daten erstellen und KEINEN Filter haben möchten.
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Ich muss die Daten mit Datum unter Verwendung einer Teilmenge filtern, um ein Pareto-Diagramm für die Produktionsergebnisse von gestern zu erstellen, da ich jeden Morgen einen täglichen Produktionsergebnisbericht erstelle
Betreff: Wie erstelle ich ein Skript, das ein Pareto-Diagramm mit Datumsfiltern generiert?Die Konvertierungen von Num und Char in Num sollten nicht erforderlich sein.
Vielleicht so etwas?
Names Default To Here(1);
dt = Open("$DOWNLOADS/DB.jmp");
yday = Date Increment(Today(), "day", -1, "start");
tday = Date Increment(Today(), "day", 0, "start");
dt_top5 = dt << Summary(
Group(:Date, :Ref Produit, :Baie, :ICT_FCT, :Result, :CodeError),
Freq("Aucun(e)"),
Weight("Aucun(e)"),
output table name("Table Top 5")
);
rows_of_interest = dt_top5 << Get Rows Where(yday <= :Date <= tday);
show(rows_of_interest);
dt_pareto_subset = dt_top5 << Subset(
Rows(rows_of_interest),
Selected Columns(0),
Output Table("Pareto Subset")
);
pp = dt_pareto_subset << Pareto Plot(Cause(:CodeError), Freq(:N Rows));

Sie können auch ein Paretoplot aus Ihrer ursprünglichen Tabelle erstellen (das Filtern kann etwas Arbeit erfordern).

dt << Pareto Plot(
Cause(:CodeError),
Local Data Filter(
Add Filter(
columns(:Date),
Where(:Date == 3805056000),
Display(:Date, N Items(4))
)
)
);