Ho un problema con Col List Box. Vorrei restringere l'elenco delle colonne disponibili per essere selezionate.
L'ho già limitato a Numerico e Continuo, ma nella mia applicazione questo lascia un elenco molto lungo.
Del resto, se esiste un altro modo più semplice (finestra di dialogo colonna?), andrebbe bene anche quello. La documentazione sembra limitata su questo. Ad esempio, mostra che uno script può essere aggiunto alla funzione Col List Box(), ma non ha un esempio o descrive come ciò sarebbe fatto.
Utilizzando un esempio modificato dall'indice di scripting, come rimuoverei, ad esempio, tutti i nomi di colonna che iniziano con una N?
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 )
)
);
Dai un'occhiata a filter col selector().
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
new window("Test",
fcs = filter col selector(dt)
);
Ti dà un sacco di opzioni per la riduzione.
@mwechtal ,
Che ne dici di questo ?
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);