L'impostazione dell'ID collegamento in jsl sembra non funzionare: cosa c'è che non va?Sto cercando di impostare un ID collegamento in JSL, ma quando lo si imposta in JSL, l'ID collegamento sembra essere impostato nella tabella come dovrebbe, ma il riferimento al collegamento nell'altra tabella che dovrebbe fare riferimento non funziona.
Se rimuovo l'ID del collegamento e lo imposto facendo clic con il pulsante destro del mouse sull'ID del collegamento, tutto funziona correttamente.
io uso questo:
dfps:name( "Country" ) << Set Property( "Link ID", 1 );
Non riesco a vedere cosa c'è di sbagliato in questo. Mi sto perdendo qualche operazione di aggiornamento per farlo funzionare? Eventuali suggerimenti?
ScriptingRi: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Come menziona Craige, credo che sia un problema di "salvataggio". Ho avuto questo problema prima e, frustrante, l'ho avuto solo su PC. Sul Mac, non ho avuto bisogno di eseguire il salvataggio.
Garantire che il mio tavolo fosse salvato per primo, ha risolto il problema.
Brady
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Ho scoperto qualcosa di nuovo:
Se lo script JSL che sto eseguendo non viene salvato e non è mai stato salvato prima (quindi se il codice sorgente è stato scritto o copiato in una nuova finestra di scripting aperta), il collegamento di due tabelle di dati non salvate funziona come un incantesimo.
Se è salvato o se è uno script esistente che è stato appena modificato e non salvato, non funziona.
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Ciao a tutti,
Ho lo stesso problema con il collegamento di due tabelle tramite script.
Si comporta esattamente come @ThomasZatValcon descritto.
Dopo averlo fatto manualmente facendo clic, ho quindi copiato le due righe di codice dal registro.
Poi dipende dove sono inseriti. Se li inserisco in una nuova finestra di script, lo script funziona. Se le inserisco nel mio attuale script in fase di sviluppo (da cui originariamente sono state aperte le due tabelle) non funziona.
Ci sono nuovi approfondimenti su questo problema?
Saluti
Roberto
A proposito. Nel frattempo ho trovato un thread correlato. La soluzione alternativa consiste nel salvare prima i datatable, ma ciò non è sempre conveniente.
https://community.jmp.com/t5/Discussions/Virtual-Join-via-JSL-does-not-work/td-p/360675
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Prova a salvare le tabelle prima del collegamento e verifica se i risultati diventano coerenti. Non sono sicuro di come funzionino internamente i collegamenti, ma potrebbe dipendere dalla disponibilità di un nome file.
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Sono due tavoli diversi. Quella a sinistra è la tabella con l'ID, la tabella a sinistra è la tabella con il riferimento.
Sì, ho provato a fare riferimento a column(dt...) e dt:name()....
Ho anche provato a inserire il codice che funziona (quando viene eseguito da una finestra di script separata) in un file separato e includerlo. Non ha funzionato neanche. Ho provato a metterlo in un expr() e valutarlo. Inoltre non ha aiutato.
Ma le due righe di codice funzionano se creo una finestra di script separata e le eseguo da lì, il che è inaspettato.
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Dovrebbero essere uguali? Perché le due tabelle hanno un numero diverso di colonne.
Hai visto che `dfps` ha ragione? O provato a usare `Column(dt, "Country")`?Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Non l'ho ancora capito, ma sto ottenendo un comportamento davvero strano qui:
Avere lo stesso codice in due finestre:

Quando eseguo il codice nella finestra di sinistra, noto che l'icona con i due tasti è grigia (non funziona):

Quando eseguo le stesse due righe nella finestra di destra funziona:

Il codice nella finestra di sinistra è dove è stato creato il jsl. Tutto il codice è solo in esecuzione nello spazio dei nomi globale. Ho anche provato con i nomi predefiniti qui (1) e ho ottenuto lo stesso comportamento che mi ha sorpreso, poiché mi aspettavo di non poter fare riferimento alle variabili della tabella da un'altra finestra di script.
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Grazie. Ho modificato il tuo codice per rappresentare meglio cosa sta succedendo (le tabelle sono solo in memoria) per rappresentare cosa sta succedendo più da vicino e mi aspettavo che fallisse, ma in realtà funziona. Non ho ancora capito cosa fa fallire il mio altro codice, ma aggiornerò questo thread se lo scopro.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// creating a unique ID
dt2 = dt << subset( all rows, all columns );
dt2 << New Column( "_Row", <<SET each="" value=""></SET>
Ri: L'impostazione dell'ID collegamento in jsl sembra non funzionare - cosa c'è che non va?Stai dicendo che stai impostando il riferimento prima dell'ID?Non sono sicuro di come lo faresti, ma per me funziona bene.
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
// creating a unique ID
dt << New Column("_Row", << Set Each Value(Row()));
// subsetting just so I have something to link
dt_sub = dt << Subset(
Selected Rows( 0 ),
Rows( [1, 2, 3, 4, 5] ),
columns( :_Row )
);
Column(dt, "_Row") << Set Property( "Link ID", 1 );
Column(dt_sub, "_Row") << Set Property( "Link Reference",
Reference Table( "$SAMPLE_DATA\Big Class.jmp" )
);