controlla se la colonna esiste?CIAO,
Voglio creare una nuova colonna e prima di farlo:
chiedi alla tabella dati se la colonna esiste già.
Esiste un modo "migliore" affinché il codice possa essere condiviso con altri colleghi dell'azienda?
Controlla il nome della colonna se esistente
Come verificare se esiste un elenco di colonne e segnalare quelle mancanti utilizzando una finestra pop-up?
Determinare se esiste una colonna
Crea una nuova colonna Row() solo se non esiste
Convalidare il nome della colonna esistente prima di rappresentare graficamente
Personalizzazione di massaRi: controlla se la colonna esiste?qualche ulteriore approfondimento:
- Freddo!
Non sapevo/notavo che il confronto funziona senza IL corda opzione di ottenere i nomi delle colonne
robusto come @txnelson 'S prova(colonna(dt,"Età"))<BR /> età ~ Età
- basta usare corda come argomento per Ottieni nomi colonne se vuoi distinguere tra età E Età
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Show(dt << Get Column Names(String));
Show( Contains( dt << Get Column Names(String), As Name( "Age") ) ); // -> nope
Show(dt << Get Column Names);
Show( Contains( dt << Get Column Names, As Name( "Age") ) ); // found !
Show(r=try(column(dt,"Age")<<GET name=""></GET>
Ri: controlla se la colonna esiste?Ah, carino:)
Per evitare che gli utenti in generale dimentichino il file
As Name
nel loro codice, che ne dici di aggiungere una funzione all'oggetto tabella dati per chiedere se la colonna esiste:
tabella dati: la colonna del messaggio esiste (colname)?
consegnato con JMP18:

Ri: controlla se la colonna esiste?Credo che dovresti semplicemente usare il Come nome() funzione per questo.Semplifica questi controlli e non devi preoccuparti di spaziatura/maiuscole:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << set name("a g e");
Show( Contains( dt << Get Column Names, As Name( "a ge" ) ) );
Show( Contains( dt << Get Column Names, As Name( "S eX" ) ) );
name to check = "N a ME";
Show( Contains( dt << Get Column Names, As Name( name to check ) ) )Ri: controlla se la colonna esiste?In realtà no Bisogno per chiedere il nome, giusto?
Il trucco sta nel
Try(column(dt,"age"), <EM>check for failure</EM>);
Prova a ottenere la colonna e controlla se fallisce.
Non solo ultracorto, ma anche un'ottima scelta in merito robustezza 
E, come ciliegina sulla torta, chiedi alla rubrica il nome:
r=try(column(dt,tn)<<GET name=""></GET>
Un bel trucco per ottenere un tipo restituito ben definito per le colonne esistenti e non esistenti. Grazie @txnelson 
Ri: controlla se la colonna esiste?Il metodo più affidabile che ho trovato è chiedere il nome della variabile, << get name
Onora gli spazi vuoti, ecc.
names default to here(1);
dt=current data table();
dt:age << set name("a g e");
tn="age";
r=try(column(dt,tn)<<GET name=""></GET>Ri: controlla se la colonna esiste?il mio farorite: l'idea di Jim di semplicemente chiedere la tabella dati per la colonna e controlla se la tabella dati si lamenta.
Ma anche questo approccio si basa sul fatto che l'ortografia del nome della colonna durante la richiesta si adatta al nome effettivo.
ad esempio, non trova "age e" se chiedi "age".
Ma la nuova rubrica :età taglierebbe tutti i collegamenti tra :età e la colonna esistente :età
Ciò potrebbe portare a tali danni collaterali:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << set name("a g e");
Show(dt: age [5]); // points to the existing column
Try(:is there a = column(dt,"age"), "answer: no");
new Column("age");
Show(dt: age[5]) // points to the new columnRi: controlla se la colonna esiste?Sembra che ciascuna di queste soluzioni funzionerebbe. Il più robusto sarebbe probabilmente il 2° collegamento, ma ha anche il maggior numero di righe di codice.