concatenare / salvare e valutare le formuleQuando si concatenano manualmente due tabelle, è disponibile un'opzione per "salvare e valutare le formule" in modo che le formule nella data nuova o aggiunta vengano valutate.
In JSL questa opzione non è disponibile solo “keep formula” che sopprime la valutazione.
dt_1 << Concatenate(dt_2,Append to first table,save and evaluate formulas(1)); // this is not possible
So che puoi usare:
dt_1:mycol << Suppress Eval( 0 );
dt_1:mycol << Eval Formula(1);
Per ottenere lo stesso risultato dell'opzione manuale, ma devo cercare e farlo per ogni colonna con una formula.
Esiste una funzione nascosta o prevede di includerla in Concatenate come opzione?
Re: concatenare/salvare e valutare le formuleHo potuto seguire la manipolazione dei dati e ho trovato il "problema"
Creo un sottoinsieme di una tabella di dati esistente e cancello tutti i dati che bloccano la colonna della formula e sopprimono la valutazione.
Quindi riempire la tabella con i dati, ma la formula rimane vuota.
Concateno più delle stesse tabelle (aggiungo alla prima tabella). Se la tabella principale ha una valutazione soppressa, anche le tabelle concat non vengono valutate.
Consentire la valutazione del sottoinsieme ha risolto il problema.
dt_2 = dt << Subset(Output Table( "temp" ),Selected Rows( 0 ),Rows( [1] ),Selected columns only( 0 ),copy formula(1),link to original data table(0),Suppress formula evaluation( 0 ));
Concat dt_2 ha quindi la valutazione della formula abilitata.
Re: concatenare/salvare e valutare le formuleTHX per la tua rapida risposta, il tuo esempio funziona bene, ho persino preimpostato la colonna su "sopprimere eval" e la valuta dopo il concat.
Quindi la mia tabella ha una formula, ma non viene eseguita ed è ancora soppressa dopo il concat. Ho trovato prima una menzione che potrebbe essere un problema di tempo che la tabella non ha il tempo di valutare la colonna ed è in qualche modo bloccata. Indagherò ulteriormente.
Re: concatenare/salvare e valutare le formuleKeep Formulas non sopprime la valutazione per quanto ne so.
Prova questo script e vedi che la formula in Riga n viene valutato nella tabella risultante.
dt1 = New Table( "One Table",
Add Rows( 10 ),
New Column( "Row no",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Row() )
)
);
dt2 = New Table( "Another Table",
Add Rows( 10 ),
New Column( "Row no",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Row() )
)
);
Data Table( "One Table" ) <<
Concatenate(
Data Table( "Another Table" ),
Keep Formulas,
Create source column
);
