selezionare la tabella dati correnteCiao,
Sto usando un piccolo jmp_addin per aggiungere informazioni sui limiti delle specifiche alle colonne selezionate.Ad ogni modo, il problema che incontro è che ogni volta che lo eseguo, acquisisce sempre l'ultima tabella di dati aperta, anche se eseguo l'addin da una finestra diversa ... c'è un modo per evidenziare jmp_addin che io sto cercando di eseguire lo script dalla tabella di dati selezionata?Pensavo che currentdatatable lo avrebbe fatto, ma ancora una volta sembra che funzioni sempre sull'ultima tabella di dati aperta, ea volte ho bisogno di cambiare/aggiungere specifiche a una tabella già aperta ...
Grazie in anticipo!
dt = currentdatatable();
table=list("Spec1", "Spec2", "Spec3" );
r = Column Dialog(
Spec = Col List( "Columns to add Spec" ),
v list ("Select Product Spec Table", rb = Combo Box( table()))
);
dtedc = open("C:\myData\ADDIN\Spec Limit\"||table[r["rb"]]||".jmp",invisible);
for ( i=1, i<=N Items(r["Spec"]),i++,
for (j=1, j<= nrows(dtedc), j++,
if(as Name(r["Spec"]) == as Name(dtedc:Parameter),
Eval(
Substitute(
Expr(
Column(dt, r["Spec"]) << set property("spec limits",
{LSL( l), Target( t ), USL( u ), Show Limits(1)}
)
),
Expr( l ), dtedc:LSL,
Expr( t ), dtedc:Target,
Expr( u ), dtedc:USL
)
);
);
);
);
close(dtedc, nosave);
Ri: seleziona la tabella dei dati correnteSe metti la definizione della funzione choose_data_table all'inizio del tuo codice, funzionerà.
Ri: seleziona la tabella dei dati correnteSì, funziona. Speravo solo in un metodo che spingesse gli utenti a selezionare un tavolo poiché spesso ne abbiamo molti aperti contemporaneamente. E fare affidamento sulla consapevolezza dei vari utenti per la loro attuale tabella di dati non ha funzionato bene in passato. sperava solo di avere un metodo per chiedere agli utenti di specificare. Ma questo dovrà fare.
Ri: seleziona la tabella dei dati correnteQuando ho visto la linea
dt = choose_data_table();
Presumevo che tu avessi una funzione da qualche parte in precedenza nel tuo codice che ti permetteva di scegliere la tabella di dati su cui eseguire.Ma se non lo fai, allora ti suggerisco di cambiare la riga in:
dt = current data table();
e prova a eseguire il tuo codice
Ri: seleziona la tabella dei dati corrente@txnelson
Grazie per avermelo chiesto. Non avevo pensato di controllare il registro. Dice:
Nome irrisolto: choose_data_table nell'accesso o nella valutazione di 'choose_data_table' , choose_data_table() /*###*/
Nello script seguente, errore contrassegnato da /*###*/
dt = choose_data_table() /**###*/;
Mostra( dt );
dt << Select Where( :Pad Summary == "Sovraccarico" );
dt << Colori( 22 );
dt << Marcatori( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << Colori( 27 );
dt << Marcatori( 2 );
dt << Select Where( :Pad Summary == "Rilevato" );
dt << Colori( 4 );
dt << Marcatori( 12 );
dt << Select Where( :Pad Summary == "Position Disalign" );
dt << Colori( 3 );
dt << Marcatori( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colori( 1 );
dt << Marcatori( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colori( 1 );
dt << Marcatori( 0 );
dt << Select Where( :Pad Summary == "Disconnect" );
dt << Colori( 0 );
dt << Marcatori( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << Colori( 56 );
dt << Marcatori( 24 );
dt << Select Where( :Run Status == "Invalid" );
dt << Marcatori( 4 );Ri: seleziona la tabella dei dati correnteche errori riscontri nel log?
Ri: seleziona la tabella dei dati correnteSì, ci proverò. Mi dispiace di essere abbastanza nuovo e non formalmente addestrato in nessuno scripting, il che è probabilmente ovvio. Ho aggiunto il selettore della tabella dati in questo script anziché utilizzare:
dt = Tabella dati corrente();
e assicurando che la tabella dei dati corrente fosse la tabella che volevo riformattare. Quando ho implementato per la prima volta la funzione Scegli tabella dati, ha funzionato a meraviglia e ha creato un prompt da cui selezionare la tabella desiderata. L'ho inviato anche a un collega da usare e non ha funzionato per lui, nonostante abbia verificato che lo script fosse invariato. Ho aperto lo script salvato e non ha funzionato neanche per me. Quindi ho alternato i metodi di formattazione precedenti e sono tornato al metodo di scelta della tabella dati e ha funzionato di nuovo. Successivamente non lo fece più.
Non ho davvero una buona spiegazione tecnica per l'incoerenza o cosa è cambiato tra tentativi riusciti e falliti. Per quanto ne so, non è successo niente di specifico. Metto insieme queste cose, quindi ci sono sicuramente alcuni principi fondamentali che mi mancano, come cancellare o designare preferenze o simboli. Forse il problema non rientra nell'ambito di un breve post sul forum?
Grazie in ogni caso
Ri: seleziona la tabella dati correntePenso che avremo bisogno di maggiori informazioni su cosa significhi "funzionare in modo incoerente". Puoi fornire maggiori dettagli?
Ri: seleziona la tabella dati correnteCIAO @Jeff_Perkinson ,
Sto cercando di impiegarlo in un modulo abbastanza semplice che formatta i marcatori di dati. Ha funzionato alla grande quando inizialmente ho impostato la sceneggiatura, ma da allora ha funzionato in modo incoerente. Ci sono idee sul perché sarebbe così? I titoli e i valori delle colonne sono affidabili.
dt=choose_data_table();
show(dt);
dt << Select Where( :Pad Summary == "Overload" );
dt << Colors( 22 );
dt << Markers( 11 );
dt << Select Where( :Pad Summary == "Curve Error" );
dt << Colors( 27 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Detected" );
dt << Colors( 4 );
dt << Markers( 12 );
dt << Select Where( :Pad Summary == "Position Misalign" );
dt << Colors( 3 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative (w/ Misalign)" );
dt << Colors( 1 );
dt << Markers( 2 );
dt << Select Where( :Pad Summary == "Negative" );
dt << Colors( 1 );
dt << Markers( 0 );
dt << Select Where( :Pad Summary == "Disconnect" );
dt << Colors( 0 );
dt << Markers( 9 );
dt << Select Where( :Pad Summary == "High CP Current" );
dt << Colors( 56 );
dt << Markers( 24 );
Grazie
Ri: seleziona la tabella dati correnteMi sono appena imbattuto in questa vecchia domanda che, sfortunatamente, non ha mai avuto risposta.
Tabella dati corrente() dovrebbe restituire un riferimento alla finestra della tabella dati attiva. Non so perché non è nel tuo caso.
Tuttavia, un metodo più affidabile consiste nel richiedere all'utente di scegliere tra le tabelle di dati aperte.
Ecco una piccola funzione che richiede un elenco di tabelle di dati e restituisce la scelta effettuata dall'utente.
choose_data_table=function({},
list = {};
For( i = 1, i <= N Table(), i++,
list[i] = Data Table( i ) << get name
);
win = New Window( "Select a data table", << Modal,
hb = H List Box(
Panel Box( "Choose a data table",
dt = List Box(
list,
max selected( 1 ),
chosen = Data Table( (dt << get selected)[1] );
show (chosen);
)
),
)
);
chosen);
Usalo così:
dt=choose_data_table();
show(dt);