come fare riferimento a una colonna di trasformazione?Quando genero una colonna di trasformazione inviando Trasforma colonna ad a tabella dati , ottengo un riferimento alla Colonna come valore restituito.
Quando genero una colonna di trasformazione inviando Trasforma colonna a un oggetto GraphBuilder, ottengo un riferimento a un Graph Builder come valore restituito - nessun riferimento alla colonna 
Quindi chiedere a questa "Colonna" col2 il suo nome non funziona.
Dove posso trovare ulteriori informazioni sul riferimento alle colonne di trasformazione?
ad esempio come ottenere un riferimento solido alla colonna (qualcosa come :col2).
Quanto è bello non dover fare riferimento alla colonna con un simbolo. Sembra che sia corretto utilizzare il nome della colonna, anche OK senza virgolette (!?)
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder();
col1 = dt << Transform Column ("col1Name", Formula(1/:height));
col2 = gb << Transform Column ("col2Name", Formula(1/:height));
Show(Name Expr(col1));
Show(Name Expr(col2));
gb << Variables(X(:height), Y (col1));
// doesnt work :(
gb << Variables(X(:height), Y (col2));
gb << Variables(X(:height), Y ("col2Name")); //works
gb << Variables(X(:height), Y (col2Name)); // works (!?)
Show(col1 << get name());
Show(col2 << get name());
Show(Column(dt, "col1Name"));
Try(Show(Column(dt, "col2Name")), "dt doesn't know the column");
Automazione e scriptingRi: come fare riferimento a una colonna di trasformazione?Supporto Jmp: TS-00056243
. non è possibile fare riferimento a una colonna di trasformazione creata nel contesto della piattaforma.Ciò significa che non è possibile rimuoverlo né sostituirlo.Se desideri avere un riferimento a una colonna di trasformazione, devi creare la colonna nel contesto della tabella dati.
Pertanto, se desideri modificare o rinominare una colonna di trasformazione (in una piattaforma), devi farlo tramite la GUI, non tramite JSL.
(# Cosa non è possibile tramite JSL?)
Desiderio aggiunto:
miglioramenti per Trasforma colonna
Ri: come fare riferimento a una colonna di trasformazione?Intanto ...
l'unica soluzione sembra essere quella di generare la colonna di trasformazione con portata da tavolo e di reinserirlo nella Trama ogni volta che viene aggiornato.
Per illustrare l'idea, ho generato un grafico GraphBuilder che conta le M e F selezionate.
Immagina quanto potente possa essere questo approccio...
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colName = "count_"||Char(Random Integer(100000));
Eval(Eval Expr(gb = dt << Graph Builder(
Transform Column(
Expr(colName),
"Table Scope", // essential because otherwise the replace(1) won't work
Formula( Col Number( 1,:sex ) )
),
Variables( X( :sex ), Y( Expr(colName) ) ),
Elements( Bar( X, Y ) ),
Local Data Filter(Add Filter(columns( :sex, :name )))
)));
ldf = (Current Report()["Local Data Filter"] << get scriptable object);
myRowsOld=[];
fch = Function( {x},
myRows = ldf << Get Filtered Rows;
If( not(nrows(myRows)==nrows(myRowsOld))| not(asList(myRows) == asList(myRowsOld)),
myRowsOld = myRows;
Eval(
Substitute(
Expr(
dt << Transform Column(
_colName_,
//"Table Scope", // gb doesn't understand replace(1) -> we have to talk to the table -> no Table Scope needed
Formula(
Col Number( 1, :sex, Contains( _myRows_, Row() ) > 0 )
),
Replace( 1 )
)
),
Expr( _myRows_ ), myRows, Expr(_colName_), colName
)
);
gb << add variable({ Column(colName), Role("Y") }); //replacing the transform column removes it automatically from the graph
dt << Show Transforms();
);
);
current report() << on close(dt << delete column(colname));
rs = ldf << Make Filter Change Handler( fch );
dt << Show Transforms();
Ri: come fare riferimento a una colonna di trasformazione?Vantaggio di questo approccio rispetto alla generazione di una colonna Formula:
- La colonna Trasforma è solo temporanea, non verrà salvata.
paragonabile:
- con la necessità di generare la colonna di trasformazione con ambito tabella, è visibile anche da altre piattaforme
peggio:
- il codice è diventato piuttosto lungo rispetto all'approccio con una colonna formula reale: Ri: Trasforma colonna: bug con righe escluse
Per una colonna formula reale, è sufficiente aggiornare l'elenco di input e quindi la formula verrà rivalutata.
Con la colonna di trasformazione è come eliminare la colonna e generarla di nuovo.
Perché?
Per le colonne Trasforma, è possibile utilizzare
<< reset transform()
per aggiornare i valori.
ma sorprendentemente, il report non nota l'aggiornamento e mostra i vecchi valori, anche dopo aver rimosso e aggiunto la variabile:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// transform column with table scope
global:a = 2;
dt << Transform Column(
"sqrt[height]",
Formula( global:a * Sqrt( :height ) ),
Replace(1);
);
Show( :"sqrt[height]"n[1] );
gb = Graph Builder(
Variables( X( :height ), Y( :"sqrt[height]"n ) )
);
global:a = 30;
// clear the cache
:"sqrt[height]"n << Reset Transform();
// new values
Show( :"sqrt[height]"n[1] );
wait(2);
// try to update the GraphBuilder
gb << remove variable(2);
wait(2);
// unfortunately, still the old values !?!?!
gb << add variable({:"sqrt[height]"n, Role("Y")});
// a new GraphBuilder starts with updated values !
gbnew = Graph Builder(
Variables( X( :height ), Y( :"sqrt[height]"n ) )
);
Un report del generatore di grafici appena generato ( gbnew ) mostra i nuovi valori.
-> Sembra che il primo costruttore di grafici utilizzi alcuni valori memorizzati che non vengono aggiornati quando la colonna di trasformazione viene aggiornata.
Re: come fare riferimento a una colonna di trasformazione?Conta come soluzione?
ehm...
Il supporto Jmp [TS-00056243] è molto chiaro:
La risposta breve è che non esiste un modo per modificare la colonna di trasformazione con una modifica al filtro dati locale
[uno di noi] ha collaborato con altri nel supporto tecnico e nello sviluppo del problema e non è disponibile alcuna soluzione.
R: come fare riferimento a una colonna di trasformazione?non è possibile far cambiare la colonna di trasformazione con una modifica al filtro dati locale
Non ancora ...