Ich habe ein Problem mit der Col List Box. Ich möchte die Liste der zur Auswahl verfügbaren Spalten einschränken.
Ich habe es bereits auf Numerisch und Kontinuierlich beschränkt, aber in meiner Anwendung bleibt die Liste sehr lang.
Wenn es übrigens einen anderen Weg gibt, der einfacher ist (Spaltendialog?), wäre das auch in Ordnung. Die Dokumentation scheint diesbezüglich begrenzt zu sein. Es zeigt beispielsweise, dass ein Skript zur Funktion „Col List Box()“ hinzugefügt werden kann, enthält jedoch kein Beispiel und beschreibt auch nicht, wie das gemacht werden würde.
Wie würde ich beispielsweise anhand eines modifizierten Beispiels aus dem Scripting Index alle Spaltennamen entfernen, die mit einem N beginnen?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all,
<< Set Data Type( "Numeric" ),
<< Set Analysis Type( "Continuous" )),
Button Box( "Add", ll2 << append( ll1 << get selected ) ),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
Schauen Sie sich den Filter col selector() an.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
new window("Test",
fcs = filter col selector(dt)
);
Es gibt Ihnen viele Möglichkeiten zur Reduzierung.
@mwechtal ,
Wie wäre es mit so etwas?
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
ColumnNames = dt << Get Column Names("String");
for(i = N Items(ColumnNames), i >= 1 , i--,
If(!IsMissing(Regex(Char(ColumnNames[i]),"PNP*")),
Remove From(ColumnNames,i);
);
);
ColumnNames;
New Window( "Example", b = Button Box( "Popup Menu", Print( b << Get Menu Choice ) ) );
b << set menu items(ColumnNames);