Hallo zusammen,
Ich bin ein JMP-Skript-Neuling und habe eine Frage, von der ich wette, dass sie für die meisten Leute in diesem Forum ziemlich trivial zu beantworten ist. Hier ist das Skript, das ich ausführe:
-------------------------------------------------- --------------------
// Open the raw base data table
raw_data_tbl=open("..\Tables\WA_VS_EXPORT_BASE_VIEW_MKT_1_SAMPLED.jmp");
// Make raw data table the current data table
Current Data Table(raw_data_tbl);
Current Data Table() << Select Where(:Total_interactions >= 1 & :Total_interactions <=40);
raw_data_tbl_sub = Current Data Table() << Subset(columns(
:B_ts,
:B_month,
:B_year,
:C_cd,
:Total_interactions,
:Product,
:T_id,
:Num_interactions,
));
Current Data Table() << Clear Select;
Current Data Table(raw_data_tbl_sub);
// Join the subset table with summary table
chnnl_in_summary = Current Data Table() <<
Join(
With(
Current Data Table() << Summary( Group( :T_id, :C_cd ), N( :Trip_id ) )
),
Select( :B_ts, :B_month, :B_year ),
SelectWith( :T_id, :C_cd ),
Select(
:Total_interactions,
:Product,
:Num_interactions
),
SelectWith( :N Rows ),
By Matching Columns( :T_id = :T_id, :Channel_cd = :Channel_cd ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 0)
);
Current Data Table(chnnl_in_summary);
chnnl_in_summary_transp = Current Data Table() << Transpose(
columns( :N Rows ),
By(
:T_id,
:B_ts,
:B_month,
:B_year,
:Total_interactions,
:Product
),
Label( :C_cd )
);
close(raw_data_tbl);
close(raw_data_tbl_sub);
close(chnnl_in_summary);
chnnl_in_summary_transp << save("..\Tables\WA_PATTR.jmp");
close(chnnl_in_summary_transp);
-------------------------------------------------- -------------------------------------------
Das Skript funktioniert gut, wenn es darum geht, die Daten so zu verarbeiten, wie ich es möchte, aber ich bekomme eine Menge (eigentlich insgesamt drei) Tabellenfenster für Zwischentabellen geöffnet, die ich im Prozess erstelle, was ärgerlich ist. Außerdem erhalte ich ein Dateidialogfeld, in dem ich gefragt werde, ob ich eine der Tabellen speichern möchte, deren Name mit „Unbenannt“ beginnt. Hier ist der untere Rand des Skriptprotokollfensters:
Für die Datentabellen-Teilmenge von WA_VS_EXPORT_BASE_VIEW_MKT_1_SAMPLED sind andere Fenster geöffnet. Sie können alle Fenster für diese Datentabelle schließen oder sie stattdessen einfach ausblenden.
Änderungen an der JMP-Datentabelle ohne Titel 42 speichern?
Meine Frage ist: Wie steuere ich diese Fenster richtig vom Skript aus, sodass ich die Ausführung des Skripts nicht unterbreche (dh nicht die gesamte Tabelle schließe, wenn es nötig ist), und dennoch alles, einschließlich der Tabellenfenster, stelle ist geschlossen, wenn das Skript endet? Anscheinend reicht die von einem Tisch gesendete Abschlussnachricht nicht aus. Ich schätze die Antwort wirklich.
Milorad
Wie oben erwähnt,
Die Verwendung des Befehls „Schließen“ ist korrekt. Um den Dialog zu entfernen, können Sie innerhalb der Schließfunktion festlegen, dass nicht gespeichert wird. Für Ihre ursprüngliche Tabelle würden Sie also Folgendes verwenden:
close(raw_data_tbl,nosave);
Und:
Innerhalb von JSL gibt es das Schlüsselwort INVISIBLE. Es kann in verschiedenen Kontexten verwendet werden. Um sich damit vertraut zu machen, öffnen Sie am besten den JMP Scripting Guide (Help.Books) und suchen Sie nach „invisible“.
In Bezug auf Ihren Code können Sie beispielsweise Folgendes tun:
Current Data Table() << Select Where( ... );
subsetTable = Current Data Table << Subset( invisible );