Benutzerdefinierte Funktion mit angegebenem Spaltennamen (JSL)Ich versuche, eine benutzerdefinierte Funktion zu erstellen, bei der Sie einen Spaltennamen als eine der Eingaben angeben können. Ich möchte zum Beispiel den folgenden Code verwenden, um eine Funktion zu erstellen, die Zeilen auswählt, bei denen der angegebene „ColumnName“ dem eingegebenen „Value“ entspricht:
TestFunction = Function( {TableName, ColumnName, Value}, {},
TableName << Select where(:ColumnName == Value);
);Wenn ich jedoch versuche, diese Funktion auszuführen, erhalte ich die folgende Fehlermeldung:
Name Unresolved: ColumnName{1} in access or evaluation of 'ColumnName' , :ColumnName/*###*/Was mache ich falsch?
Betreff: Benutzerdefinierte Funktion mit angegebenem Spaltennamen (JSL)Hier ist ein Skript, das das erreicht, was Sie brauchen.Im ersten Beispiel wird ein Zeiger auf die Datentabelle und im zweiten Beispiel ein tatsächlicher Tabellenname verwendet
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
TestFunction = Function( {TableName, ColumnName, Value}, {},
TableName << Select where(as column(ColumnName) == Value);
);
testfunction(dt,"age",13);
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
TestFunction = Function( {TableName, ColumnName, Value}, {},
data table(TableName) << Select where(as column(ColumnName) == Value);
);
testfunction("Big Class","age",13);