<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Ich versuche, ein Skript zu schreiben, das eine Teilmenge basierend auf zwei Auswahlmöglichkeiten in einem dynamischen Kombinationsfeld erstellt. Es scheint, als ob der Dialogteil gut ist, da meine Variablen gespeichert werden, wenn ich sie auswähle, aber die eigentliche Generierung der Teilmenge funktioniert nicht.
/* offenen Datenbankteil temporär entfernen */
clearGlobals():
ER_Temp = Open( "C:\Benutzer\Kilik\Desktop\Tbl_RIE_ERS.jmp" );
/* Extrahiere eine Liste einzigartiger Filme in Set „a“ und einzigartiger Werkzeuge in Set „b“*/
Zusammenfassen( a = By( :Film ) );
Einfügen in ( a, "", 1 );
Zusammenfassen( b = By( :Tool ) );
Einfügen in ( b, "", 1 );
/* Dialog erstellen*/
Neues Fenster ("Beispiel",
<
H Listenfeld (
/*Erzeugt eine Box, aus der der Film ausgewählt werden kann*/
Panel Box( "Film auswählen:",
cb1 = Kombinationsfeld (
a,
<
Funktion( {dies},
myFilm = this << Get Selected();
)
)
)
),
/*Erzeugt eine Box, aus der das Werkzeug ausgewählt werden kann*/
Panel Box( "Werkzeug auswählen:",
cb2 = Kombinationsfeld (
b,
<
Funktion( {dies},
myTool = this << Get Selected();
)
)
)
),
)
);
//erstellt eine Teilmenge basierend auf beiden Auswahlen
ER_Temp << clearRowStates;
ER_Temp << selectWhere((:Film == myFilm)&(:Tool==myTool));
Selection = ER_Temp << Subset(Ausgabetabellenname("selection")));
Vielen Dank,
David
Hallo David.
In diesem Beispiel sind sowohl myFilm als auch myTool Strings.Wenn „Select Where“ geschrieben ist, werden keine Zeilen ausgewählt, wenn „:Film“ oder „:Tool“ numerische Spalten sind, da es nicht möglich ist, dass eine numerische Spalte einen Zeichenfolgenwert enthält.Die Num()-Funktion konvertiert eine als Zeichenfolge dargestellte Zahl (z. B. „12“) in einen numerischen Wert.
Eine andere zu berücksichtigende Sache ist, dass die Daten möglicherweise keine übereinstimmenden Werte für die in Ihrem neuen Fenster getroffenen Auswahlen enthalten.Dem Benutzer werden alle eindeutigen Werte von :Film und die eindeutigen Werte von :Tool präsentiert, aber das bedeutet nicht, dass für jeden Wert von :Film jeder Wert von :Tool in den Daten vertreten ist.Die Select Where()-Anweisung wählt nur Zeilen aus, bei denen beide Bedingungen wahr sind.
Ich hoffe, das hilft.
Wendy
Sie haben eine zusätzliche Klammer in Ihrer Subset-Anweisung.Außerdem würde ich vermeiden, dass eine Variable und eine Tabelle denselben Namen haben.Ändern Sie es in:
Select_dt = ER_Temp << Teilmenge ( Name der Ausgabetabelle ( "Auswahl" ) , ausgewählte Zeilen ( 1 )) ;