Creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di lavoro che contiene un valore specificoCiao community JMP,
Sono molto nuovo a JMP e JSL, quindi ho difficoltà a svolgere questi due compiti correlati.
1) Vorrei scrivere uno script che faccia un nuovo foglio di calcolo di righe dal vecchio foglio di lavoro che contiene un'entità specifica. Ad esempio, vorrei creare uno script che crei una nuova tabella di dati di tutte le righe di maschi. (Vedi foto allegate di seguito)
2) Devo essere in grado di eseguire l'aggiornamento automatico di questa tabella di dati. Supponendo che la tabella completa sia su un db locale (come su SSMS), come posso utilizzare uno script JMP per aggiornare la tabella di tutti gli utenti da un db SQL locale? Ho provato ad aggiungere sullo script "Aggiorna db" generato automaticamente, ma non ho idea di cosa sto facendo. Qualsiasi aiuto sarebbe molto apprezzato.
Grazie mille alla comunità JMP.



Oggetto: creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di calcolo che contiene un valore specifico @jmpandvba ,
Nell'esempio hai fornito:
NewHt=dt<<SUBSET></SUBSET>
si noti che NewHt è un riferimento alla tabella dei dati. Quindi, nella tua dichiarazione di aggiornamento, stai passando il riferimento alla tabella di dati che vuoi aggiungere. Nello script di esempio che ho fornito, sarebbe "dt1"
Oggetto: creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di calcolo che contiene un valore specificoUltimo aggiornamento a questo thread,
Dopo aver creato la nuova tabella di dati del sottoinsieme, come posso scrivere uno script JSL per aggiornarlo se viene aggiunto il set di dati originale?
Suppongo che si usi la funzione "Aggiorna" in JSL a pagina 177 della guida allo scripting JMP:
NewHt=dt<<SUBSET></SUBSET>
Ma come posso farlo con il sottoinsieme specifico che abbiamo appena creato?
Oggetto: creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di calcolo che contiene un valore specifico @jmpandvba ,
//Clean up
Clear Log(); Clear Globals(); Close All(DataTables,"No Save");
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Subset based on condition
dt << Select Where(:Sex == "M");
// Select some columns
Column(dt,"age")<< Set Selected(1);
dt << Invert Column Selection;
dt1 = dt << Subset(Selected Rows(1),Selected Columns(1));
dt1 << Set Name("Boys In Class");
// Save as spreadsheet
Close(dt1,Save("C:\Test.xlsx")); Oggetto: creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di calcolo che contiene un valore specificoGrazie per la tua risposta veloce! Un'altra domanda veloce, se volessi creare un sottoinsieme di tutte le colonne tranne l'età, come potrei farlo? (Penso di scrivere la riga dello script qualcosa del genere, ma cosa succede nella parentesi della colonna?)
subdt = dt << Subset(Column(..........), Output Table Name( "Male summary" ) );
Oggetto: creazione e aggiornamento di un nuovo foglio di lavoro di righe dal vecchio foglio di calcolo che contiene un valore specifico @jmpandvba ,
Rispondere a una parte della tua domanda è semplice, se disponi di dati in JMP, puoi facilmente creare una nuova tabella di dati o un foglio di calcolo come mostrato di seguito.
//Clean up
Clear Log(); Clear Globals(); Close All(DataTables,"No Save");
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Subset based on condition
dt << Select Where(:Sex == "M");
dt1 = dt << Subset("");
dt1 << Set Name("Boys In Class");
// Save as spreadsheet
Close(dt1,Save("C:\Test.xlsx"));
Per quanto riguarda la procedura di aggiornamento automatico della tabella dati, ciò richiederebbe un'esecuzione batch / pianificata dello script JMP. In un dato momento della giornata, se puoi avere un'applicazione che richiama lo script JMP ed esegui, sarai in grado di ottenerlo. Puoi guardare C # o esempi di automazione VBA di JMP per idee. (Z: \ Programmi \ SAS \ JMP \ 14 \ Samples \ Automation)