Daten ausschließen, wenn Daten mit einem Skript geladen werden<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Community,
Wenn ich eine Tabelle mit einer Datenbank öffne, in der das folgende Skript in der Datentabelle gespeichert ist, funktioniert es. Wenn ich das Skript in einem Menüeintrag in einem Add-In speichere, werden nur die Daten abgerufen und nicht ausgeschlossen. Wie geht's?
Datenbank öffnen (
"DSN = PI SQL Connection Lab; Beschreibung = PI SQL Connection Lab; UID =; Trusted_Connection = Ja; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData".
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data",
"NSI_Discovered_Factors_Lab_Data",
"NSI-Datenbank"
);
dt = CurrentDataTable ();
dt << Select Where (Ausschließen == "Ausschließen") << Ausblenden << Ausschließen;
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenVielen Dank für den Hinweis, dass es funktioniert, wenn es von einem Skripteditor ausgeführt wird, aber nicht als Add-In.
Dies weist normalerweise auf ein Scoping-Problem für Variablenreferenzen in Ihrer JSL hin. Standardmäßig werden Add-Ins mit der Option "Names Default to Here (1)" ausgeführt, sodass Verweise ohne Bereichsbereich in den Namespace "Here" gehen.
Ihre Wo wählen () hat eine nicht definierte Variable in der Form von Ausschließen .
Wenn Sie ein: einschließen, bevor es auf eine Datentabellenspalte angewendet wird, funktioniert es in beiden Fällen (Skript-Editor und Add-In).
dt<<Select Where(:Exclude=="Exclude")<<hide<<Exclude;
-Jeff
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenHallo Byron,
Wenn ich die Abfrage kopiere und in ein Skript einfüge, ist dies genau das Folgende:
dt = CurrentDataTable ();
dt << Select Where (Ausschließen == "Ausschließen") << Ausblenden << Ausschließen;
Es klappt. Aber wenn ich das Skript in einem jsl-Addin speichere, tut es das seltsam nicht. Der Spaltenname, der Fall und die Leerzeichen stimmen überein. Das gilt auch für die Reihen. Es ist sehr seltsam, dass es in Nicht-Addin-Jsl funktioniert, aber nicht in Addin. Ich habe dieses JSL nicht aus dem Datenfilter generiert.
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenEs gibt vielleicht noch ein paar andere Kleinigkeiten, die ich überprüfen muss, und ich entschuldige mich im Voraus dafür, dass ich so einfach bin.
Die importierte Datentabelle hat eine Spalte mit dem Namen "Ausschließen".
-Hat der tatsächliche Spaltenname führende Leerzeichen?
- Stimmt der tatsächliche Spaltenname überein? zB Titel und Rechtschreibung.
Die Werte, nach denen in der Spalte "Ausschließen" gefiltert werden soll
- Haben die Werte in der Spalte führende oder nachgestellte Leerzeichen?
-ist die Rechtschreibung und der Titel bei der Stufe "Ausschließen" genau?
Das Skript in der Datentabelle funktioniert, kam es vom Datenfilter?
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenDies ist eine Option von PMroz, aber ich würde es vorziehen, alle Daten zu ziehen und den Leuten die Möglichkeit zu geben, sie auszuschließen.
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenHier ist ein Gedanke. Warum ziehen Sie die Zeilen in SQL nicht aus, da Sie die Daten mit SQL abrufen? Ich denke auch, dass Sie einen zusätzlichen Parameter für Open Database (NSI Database) haben.
dt = Datenbank öffnen (
"DSN = PI SQL Connection Lab; Beschreibung = PI SQL Connection Lab; UID =; Trusted_Connection = Ja; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData." .
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data WHERE ausschließen! = 'Ausschließen'" .
"NSI_Discovered_Factors_Lab_Data" .
"NSI-Datenbank" ) ;
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenGleiche Ausgabe PMroz. Seltsamerweise funktioniert es immer noch nicht.
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenVersuchen Sie es mit wait (0) anstelle von Laufformeln. Ich stimme mit Byron überein - entferne die Tabelle dt = current data und setze dt = auf die Ergebnisse der offenen Datenbank. So was:
dt = Datenbank öffnen (
"DSN = PI SQL Connection Lab; Beschreibung = PI SQL Connection Lab; UID =; Trusted_Connection = Ja; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData." .
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data" .
"NSI_Discovered_Factors_Lab_Data" .
"NSI-Datenbank" ) ;
warten ( 0 ) ;
dt << Wählen Sie wo ( Ausschließen == "Ausschließen" ) << verbergen << Ausschließen ;
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenHallo Byron,
Das hat es nicht behoben. Ich habe auch ein separates Add-In erstellt, das funktionieren sollte, wenn das, was Sie sagten, wahr ist, was ich nach dem Laden des Datensatzes ausführte, der nur der folgende ist.
dt = CurrentDataTable ();
dt << Select Where (Ausschließen == "Ausschließen") << Ausblenden << Ausschließen;
Das funktioniert seltsamerweise auch nicht.
Re: Schließt Daten aus, wenn Daten mit einem Skript geladen werdenIst es möglich, dass das Öffnen nicht abgeschlossen ist, wenn das Auswählen ausgeführt wird?
Ich habe dieses genaue Problem nicht gesehen, aber etwas ähnliches, wenn ich mit Tabellen arbeite, die viele Zeilen haben.
Zwei Vorschläge:
Weisen Sie die Datentabelle beim Öffnen zunächst einer Variablen zu. Auf diese Weise dt = aktuelle Datentabelle (); endet nicht versehentlich auf die aktuelle Tabelle, während die Datenbanktabelle geöffnet wird.
dt = offene Datenbank ("DNS ....
Lassen Sie die Tabelle dt = current datum () aus.
Zweitens erzwingen, dass dt ausgewertet wird, bevor Zeilen ausgewählt werden. Es kann nicht bewertet werden, bevor das Öffnen abgeschlossen ist
dt << Formeln ausführen; // erstmal einschließen
dt << Select Where (Ausschließen == "Ausschließen") << Ausblenden << Ausschließen;