Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalHallo zusammen,
Ich versuche, ein Skript zu erstellen, das Daten für mich druckt. Ich habe ein Journal, in dem ich Daten für jedes der Gliederungsfelder drucken möchte (siehe Journal data.jrn).
Mir ist bewusst, dass mir noch einiges fehlt, um die gewünschte Datentabelle zu erhalten, aber ich bin auf die erste Hürde gestoßen, und zwar wird nur ein Umrissfeld gedruckt und nicht alle. Siehe mein Skript unten:
// JMP version 16<BR />sd = currentdatatable();<BR />rpt = Current Journal();
// Get the number of outline boxes
numOutlineBoxes = nitems(rpt);
int = rep = sumfit = sumfitLL = sumfitUL = {};
sum = 0;
// Loop through each outline box
for (i = 1, i <= numOutlineBoxes, i++,
outlineBox = rpt[i];
sumfit = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 1 )] << Get as Matrix;
sumfitLL = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 3 )] << Get as Matrix;
sumfitUL = outlineBox[Outline Box( numOutlineBoxes )][Number Col Box( 4 )] << Get as Matrix;
sumfit_rep = Round( sumfit[2] , 3 );
sumfit_int = Round( sumfit[3] , 3 );
lowerCL_rep = Round( sumfitLL[2] , 3 );
upperCL_rep = Round( sumfitUL[2] , 3 );
lowerCL_int = Round( sumfitLL[3] , 3 );
upperCL_int = Round( sumfitUL[3] , 3 );
Insert Into( rep, Char( sumfit_rep ) || " [" || Char( lowerCL_rep ) || " ; " || Char( upperCL_rep ) || "]" );
Insert Into( int, Char ( sumfit_int ) || " [" || Char( lowerCL_int ) || " ; " || Char( upperCL_int ) || "]" );
// Get By Group column
//whereCol = Word( 2, ((rep << parent)[Text Box( 1 )]) << get text, ":=)" );
term = outlineBox[Outline Box( numOutlineBoxes )][String Col Box( 1 )] << Get();
sum = sum + 1
);
// Create the table
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[1] ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Paramenter", testvalue ),
//String Col Box( whereCol, repeat(ByGroups, sum) ),
String Col Box( "Repeatability, " || term[1], rep ),
String Col Box( "Intermediate precision, " || term[2], int ),
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );Der Ausdruck sieht wie folgt aus:

Im Endstadium möchte ich, dass das Pint wie folgt aussieht:

Zusammenfassend muss ich sagen, dass die folgenden Schritte behoben werden müssen:
1. Lassen Sie die Schleife so funktionieren, dass alle Outline-Boxen berücksichtigt werden
2. Lassen Sie es Parameter und Batch einschließen
3. Lassen Sie es die Wiederholbarkeit und das Zwischenergebnis mit dem Labor AA/BB aufteilen
Ich hoffe, Sie können mir dabei helfen.
Beste grüße,
Julie
Automatisierung und SkriptingGrundlegende Datenanalyse und ModellierungDatenzugriffBetreff: Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalGibt es einen bestimmten Grund, Journal zu verwenden, anstatt auf den Bericht zuzugreifen, bevor er in ein Journal umgewandelt wird? Haben Sie auch versucht, den Bericht aus den Tabellen zu erstellen, die Sie mit „Kombinierte Datentabelle erstellen“ erhalten können?


Betreff: Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalUnd wenn Sie dann genug Geduld haben (ich habe sie nicht mit Tabulate...), können Sie möglicherweise einen ganz guten Bericht mit Tabulate erstellen.



Dies erfordert JMP17 oder JMP18 (Verpackung)

Betreff: Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalDa Ihr Journal referenziert ist als
rpt = Current Journal();
und Sie verwenden
// Get the number of outline boxes
numOutlineBoxes = nitems(rpt);
um die Anzahl der OutlineBoxes zu erhalten, wird immer 1 zurückgegeben. Sie sollten Xpath() verwenden, um eine Liste aller OutlineBoxes zurückzugeben.
numOutlineBoxes = nitems(rpt << xpath( "//OutlineBox" )) ;
Es werden jedoch 60 Gliederungsfelder gefunden. Um dies einzugrenzen, können Sie eine Liste der primären Überschriften mit
majorrptList= rpt << xpath( "//OutlineBox[contains(text(),'Variability Gauge')]" )
Damit erhalten Sie Hinweise zu den einzelnen By-Gruppen-Ausgaben
Betreff: Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalHallo Jthi,
Vielen Dank für Ihre Antwort. Der Grund, warum das Journal statt des Berichts verwendet wird, liegt darin, dass ich den Bericht nicht speichern kann, wenn er noch das Standardabweichungs-Gliederungsfeld enthält. Daher musste ich ihn in einem Journal speichern.
Ich werde versuchen, diese Möglichkeit zu prüfen, daraus eine kombinierte Tabelle zu machen.
Beste grüße,
Julie
Betreff: Extrahieren von Daten aus Gliederungsfeldern durch eine Schleife im JournalHallo Jim,
Vielen Dank für Ihre Antwort. Ich habe Folgendes versucht, indem ich von numOutlineBoxes Folgendes geändert habe:
majorrptList = rpt << xpath( "//OutlineBox[contains(text(),'Standard Deviations')]" );
The script saves information to sumfit_rep and sumfit_int, but it does not save to lowerCL_rep , upperCL_rep , lowerCL_int or upperCL_int during the part below:
sumfit = outlineBox[Outline Box( majorrptList )][Number Col Box( 1 )] << Get as Matrix;
sumfitLL = outlineBox[Outline Box( majorrptList )][Number Col Box( 3 )] << Get as Matrix;
sumfitUL = outlineBox[Outline Box( majorrptList )][Number Col Box( 4 )] << Get as Matrix;
sumfit_rep = Round( sumfit[2] , 3 );
sumfit_int = Round( sumfit[3] , 3 );
lowerCL_rep = Round( sumfitLL[2] , 3 );
upperCL_rep = Round( sumfitUL[2] , 3 );
lowerCL_int = Round( sumfitLL[3] , 3 );
upperCL_int = Round( sumfitUL[3] , 3 );
Insert Into( rep, Char( sumfit_rep ) || " [" || Char( lowerCL_rep ) || " ; " || Char( upperCL_rep ) || "]" );
Insert Into( int, Char ( sumfit_int ) || " [" || Char( lowerCL_int ) || " ; " || Char( upperCL_int ) || "]" );
Da ich nicht sicher bin, wie ich von hier aus die gewünschte Tabelle mit Informationen zu Probe/Charge und Parameter bekomme, habe ich versucht, eine kombinierte Tabelle zu erstellen und sie dann von dort zu extrahieren, aber sie macht etwas Verrücktes und ich bin sehr verwirrt. Ich habe die kombinierte Tabelle (kombinierte Datentabelle für int rep Testskript) und das Skript (int rep Testskript mit kombinierter Tabelle) angehängt. Ich hoffe, Sie werden einen Blick darauf werfen und sehen, ob Sie den Grund für das Chaos finden können:)