Bug durante l'esecuzione del componente aggiuntivo direttamente nella home page di JMPCiao comunità JMP:
Ho salvato 2 script nei componenti aggiuntivi e in determinate situazioni si verifica un bug. Gli script funzionano come segue:
- Il primo componente aggiuntivo creerà una nuova tabella e creerà diverse nuove colonne, chiamiamo questa nuova tabella "tabella di calcolo"
- Successivamente eseguirò il secondo componente aggiuntivo in "calcola tabella", che richiederà di aprire un altro file esistente (chiamiamolo "tabella dati grezzi"), quindi ottenere i dati da "tabella dati grezzi" e inserire qualcosa in "calcola tabella"
//This is the first script
Names Default To Here( 1 );
New Table( "Calculate table");
dt = current data table();
newcolumn = {"X", "Y"};
for each({colval},newcolumn,
dt << new column(colval);
);
//This is the starting lines of 2nd script
Names Default To Here( 1 );
dt = current data table();
file = Pick file( "Select raw data table" );
if(is empty(file),
show("No file selected");
stop();
);
Try(
dt2 = open(file);
,
show("No file selected");
stop();
);<BR /> // The following code are not shown here
Situazione senza bug:
- Se apro una tabella dati, eseguo il primo componente aggiuntivo, quindi eseguo il secondo componente aggiuntivo nella nuova tabella, funziona
Situazione con bug:
- Se eseguo il primo componente aggiuntivo direttamente nella home page di JMP, quindi eseguo il secondo componente aggiuntivo, il secondo componente aggiuntivo avrà un bug
In pratica, il secondo componente aggiuntivo ottiene i dati e la formula della colonna da "raw data table" e li inserisce in "calculate table", quindi crea una nuova finestra con la casella di scorrimento. La casella di scorrimento non funziona quando si verifica un bug, ma get data e formula funziona ancora
Automazione e scriptingRe: Bug durante l'esecuzione del componente aggiuntivo direttamente nella home page di JMPFaccio un'ipotesi: la tabella dati corrente non è quella che ti aspetti. Forse stampala nel log per verificarla. Penso che la tabella dati corrente sia in un contesto che spesso appartiene a una finestra e la finestra home sta aggiungendo un altro contesto. Eseguendo l'addin dalla tabella, probabilmente (1) ti assicuri che la tabella sia corrente toccandola e (2) ottieni il contesto che ha quella tabella come quella corrente.
Re: Bug durante l'esecuzione del componente aggiuntivo direttamente nella home page di JMPHo fatto come hai detto, ho stampato dt e dt2 e sono corretti.
Poi ho capito che quando chiamo le colonne nella casella di scorrimento, non ho specificato quale tabella dati, quindi ho messo dt: prima della colonna
Aggiungo anche un'altra tabella di dati correnti (dt) di nuovo nel mezzo del codice dopo aver chiuso dt2
Adesso funziona bene.
lubPP = Lineup box(NCol(1),
PPtb = Text Box( "PP: " || Char( PPmin ) ),
PPsb = Slider Box(
PPmin, PPmax, PPValue,
PPb << Set Text( "PP: " || Char( PPValue ) );
:PP << set each value(PPValue); // I should use dt:PP here
new = dt:NewPP << get values;