<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Attualmente dove lavoro abbiamo SAS 9.2 Foundation con pacchetto QC e abbiamo 4 modelli, o programmi macro, che verranno eseguiti con ciascuno dei nostri prodotti.Che abbiamo più di 40 prodotti.Il problema è che siamo l'unica filiale dell'azienda che utilizza SAS per i nostri report ed è stato desiderato utilizzarli in JMP.Un tipico Marco SAS per quello che abbiamo attualmente è
%macro Importa(Filepath=) i file excel, di solito due fogli di lavoro da una cartella di lavoro.Uno per i dati e uno per i limiti delle specifiche
%test USL macro(test=)
%prova LSL macro(test=)
%macro BothSLtest(test=)
ods rtf startpage=ora colonne= 1 ;
dati risultatidati;
impostare i dati sui risultati;
valoretabella= 1 ;
formattablevalue 8. ;
correre;
/* sequenza temporale */
fasi dei dati (keep=lot_count _Lot_ _PHASE_);
lunghezza _FASE_ $ 7 ;
impostare i dati sui risultati;
se mfg_date <= &startdate allora _PHASE_= 'Precedente' ;
altrimenti se mfg_date >= &startdate allora _PHASE_= 'Attuale' ;
correre;
limiti di dati (rinomina=(sottolineatura=_VAR_));
impostare limiti di dati;
dove translate(strip(_VAR_), '____' , ' ()/' )= "&test" ;
underscore=translate(strip(_VAR_), '____' , ' ()/' );
rilascia _VAR_;
correre;
data vref (keep=newvar _REF_ _REFLAB_ _CVREF_ rename=(newvar=_VAR_));
fissare i limiti;
dove _VAR_= "&test" ;
nuovavar=striscia(_VAR_);
faccio io= 1 a 2 ;
se io= 1 Quindi fa;
_RIF_=_LSL_;
_REFLAB_= 'LSL' ;
_CVREF_= 'rosso' ;
produzione;
fine;
se io= 2 Quindi fa;
_RIF_=_USL_;
_REFLAB_= 'USL' ;
_CVREF_= 'rosso' ;
produzione;
fine;
fine;
rilascia _VAR_;
correre;
/* esegui il grafico */
proc shewhart data=resultsdata;
ichart &test*conteggio_lotto= '*' / nochart nochart2 vref=vref /*outtable=dati1*/ cronologia=dati1;
correre;
dati dati2;
unire le fasi dei dati1;
per conteggio_lotto;
_VAR_=striscia( "&test" );
correre;
grafici di dati;
unire i limiti di data2;
di _VAR_;
chiamata symput( 'lsl' ,striscia(_LSL_));
chiamata symput( 'usl' ,striscia(_USL_));
chiamata symput( 'var' ,striscia(_VAR_));
chiamata symput( 'unità' ,striscia(Unità));
correre;
/* Grafico delle singole misure */
proc shewhart history=data2;
ichart &test*conteggio_lotto= '*' / outlabel=(conteggio_lotto) /* rimuovi il grafico a intervalli */ nochart2 vref=vref /* Indice di capacità basato sui dati dei sottogruppi */ ciindici /* Limiti delle specifiche */ lsl=&lsl usl=&usl
/* Legge le linee temporali */ fasi di lettura=tutto /* Identifica le fasi in cima al grafico */ phaselegend vreflabpos= 2 test zerostd= 1 a 4 etichettatest1= ' ' etichettatest2= ' ' clipfactor= 2 pannelli superiori= 1 ;
inset stddev cpklcl= 'Cpk inferiore del 95%' cpk= 'Cpk' cpkucl= 'Cpk 95% superiore' ;
etichetta &var= "&var (&unità)" ;
correre;
/* Istogramma */
istogramma di selezione ods;
capacità proc data=charts noprint;
spec lsl=&lsl usl=&usl;
var &var;
istogramma &var / normale;
riquadro n= 'N'
pctlss= '% < LSL' pctgtr= '% > USL' cpklcl= 'Ppk inferiore del 95%' cpk= 'Ppk' cpkucl= 'Ppk 95% superiore' /
cfill = ywh
formato = 6.2 ;
etichetta &var= "&var (&unità)" ;
correre;
dati risultatidati;
impostare i dati sui risultati;
valoretabella= 3 ;
formattablevalue 8. ;
correre;
colonne ods rtf= 4 ;
proc report data=resultsdata nowindows;
colonna conteggio_lotto _lotto_ &test;
definisci conteggio_lotto / 'Contare' stile di visualizzazione(colonna)=[larghezzacella= .5 in];
definire _lotto_/visualizzare;
definire mfg_date / display;
definisci &test/visualizza;
correre;
%test USL macro con sottogruppi(test=)
%test LSL macroconsottogruppi(test=)
%macro BothSLtestwithsubgroups(test=)
ecc..
%macro Outputfilemacro(filepath=) all'interno di questa macro è riepilogato da un ordine generale di (grafica ODS attiva, pagina iniziale ods rtf, chiama le macro di test come %BothSLtest(test='pH'), grafica ods off, rtf close)
Chiamo ovunque da 8-20 diverse macro di test all'interno della macro di outputfile, ciascuna visualizzando 2-4 grafici per test a seconda della macro di test utilizzata.
alla fine del mio programma ho solo una mano piena di cose da cambiare.
%Importa(percorsofile=posizione file)
%Outputfilemacro(filepath=posizione del file, informazioni sul prodotto per titoli e simili)
Un esempio di macro che eseguo nella macro di outputfile sarebbe:
%ripara la macro del file di output
opzioni grafiche ods con destinazione outfilepath
% EntrambiSLChart (data di inizio= '01 aprile 2013'd , test=pH)
% EntrambiSLMeansGrafico (data di inizio= '01 aprile 2013'd , test=Volume_estraibile, firstvar=C1, lastvar=C5, samplesize= 5 , numero lotto iniziale= 42 )
% Grafico USL (data di inizio= '01 aprile 2013'd , test=Contenuto_Acqua)
% EntrambiSLChart (data di inizio= '01 aprile 2013'd , test=Test__Alprostadil_)
% Grafico USL (data di inizio= '01 aprile 2013'd , prova=PGA1)
% Grafico USL (data di inizio= '01 aprile 2013'd , prova=PGB1)
% Grafico USL (data di inizio= '01 aprile 2013'd , test=cheto_PGE1)
% Grafico USL (data di inizio= '01 aprile 2013'd , test=iso_PGE1)
% Grafico USL (data di inizio= '01 aprile 2013'd , test=Totale_impurità)
% EntrambiSLMeansGrafico (data di inizio= '01 aprile 2013'd , test=Uniformità_Contenuto, firstvar=CU1, lastvar=CU10, samplesize= 10 , numero lotto iniziale= 42 )
% Grafico USL (data di inizio= '01 aprile 2013'd , prova=AV)
% EntrambiSLChart (data di inizio= '01 aprile 2013'd , test=Test__NaCl_)
dichiarazioni di chiusura delle quote
%ripara la macro del file di output
%Outputfilemacro ( percorsofile= 2014 \ 2014 _Nome prodotto\SAS\ codice , numeroprodotto= codice , nome prodotto=nome , data di inizio= '12giugno2013'd , data di fine= '11giugno2014'd)
Evidenzia quella macro, fai clic su Invia, SAS fa il resto.
Test è il nome della variabile del mio set di dati che viene testato e tracciato rispetto ai limiti delle specifiche.Ho carte di controllo con stime di capacità testate rispetto ai limiti delle specifiche.
I grafici mostrano i limiti delle specifiche specifici per ciascun test, le fasi temporali attuali e precedenti a seconda delle date che seleziono e gli indici di capacità nell'angolo in alto a sinistra dei grafici.Ogni volta che lo eseguo per un prodotto diverso, tutto ciò che faccio è modificare il nome del percorso del file, copiare e incollare le macro di test che voglio eseguire e impostare il valore test= in ciascuna delle macro SLChart che desidero avere.Posso produrre tutti i grafici di cui ho bisogno in circa 5-10 minuti per ogni prodotto e forza del prodotto che ho.Questo particolare programma per la forza di un prodotto produrrà circa 26 grafici con stampa dei dati specifici per il test che segue il grafico.
La domanda è: posso fare qualcosa di simile in JMP 10?In tal caso, come funzionano le macro in JMP?
Ho una leggera comprensione di JMP JSL, ma sono nuovo di zecca.Sto solo cercando di capire come automatizzare le cose in JMP come lo sono nelle nostre macro SAS.
Il messaggio è stato modificato da: Jeff Ollis
allegro,
Non sono esattamente sicuro di come potrebbe essere il tuo output, ma il JSL per aprire un file e quindi creare alcuni grafici di controllo è abbastanza semplice.Usa JMP per aprire il tuo file Excel e la tabella JMP avrà uno script "sorgente" nella casella della tabella che puoi utilizzare per aprire nuovamente la tabella. Quindi utilizzare JMP per creare i grafici di controllo, formattarli in modo che corrispondano ai criteri, quindi salvare lo script nella tabella dati.
Quindi, per automatizzare l'apertura di una tabella e l'esecuzione dei grafici di controllo, è sufficiente combinare l'istruzione Open dallo script Source e lo script Control Chart in una nuova finestra di script (separare le due istruzioni con un punto e virgola). Ecco qua, un rapporto automatizzato, praticamente senza codifica da parte tua.
Ecco due semplici esempi:
//Esempio 1
dt = Apri("$SAMPLE_DATA/Tablet Production.jmp");
dt << Grafico di controllo(
Grafico Col (: tempo di miscela, misurazione individuale),
Grafico Col ( :Velocità della miscela, Misurazione individuale ),
Grafico Col( :Forza, Misurazione Individuale),
Grafico Col( :Mill Time, Misurazione Individuale ),
Grafico Col ( : Viscosità del rivestimento, misurazione individuale ),
Grafico Col( :Inlet Temp, Misurazione Individuale )
);
//esempio 2, leggermente più complesso
gruppo1 = Espr(
Grafico di controllo(
Etichetta del campione (: fornitore di rivestimento),
Grafico Col( : Viscosità rivestimento, XBar, R ),
Grafico Col( :Inlet Temp, XBar, R )
)
);
gruppo2 = Espr(
diagramma di controllo (
Grafico Col (: tempo di miscela, misurazione individuale),
Grafico Col( :Velocità di miscela, Misurazione individuale)
)
);
win = Nuova finestra ("Esempio di grafico di controllo",
Casella di riepilogo H(
"Casella di riepilogo verticale",
Casella del pannello ("Primo gruppo di carte di controllo", gruppo1),
Casella del pannello ("Secondo gruppo di carte di controllo", gruppo2)
)
);