Extraction de données à partir de boîtes de contour via une boucle dans le journalSalut tout le monde,
J'essaie de créer un script qui imprimera des données pour moi. J'ai un journal, dans lequel je souhaite imprimer des données pour chacune des cases du plan (veuillez consulter journal data.jrn).
Je suis conscient qu'il me manque beaucoup de choses pour atteindre le tableau de données souhaité, mais j'ai rencontré le premier obstacle et c'est qu'il n'imprime que pour une seule boîte de contour et pas pour toutes. Voir mon script ci-dessous :
// 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 );L'impression se présente comme suit :

Au stade final, je voudrais que la pinte ressemble à ceci :

Pour résumer, j'ai les étapes suivantes qui doivent être corrigées :
1. Faites fonctionner la boucle de manière à ce que toutes les cases Outline soient prises en compte
2. Faites en sorte qu'il inclue les paramètres et les lots
3. Faites en sorte qu'il imprime de manière divisée la répétabilité et l'intermédiaire avec le laboratoire AA/BB
J'espère que vous pourrez m'aider avec ça.
Cordialement,
Julie
Automatisation et scriptsAnalyse et modélisation de données de baseAccès aux donnéesRé: Extraction de données à partir de boîtes de contour via une boucle dans le journalExiste-t-il une raison particulière pour utiliser le journal au lieu d'accéder au rapport avant qu'il ne soit transformé en journal ? Avez-vous également essayé de créer le rapport à partir des tables que vous pouvez obtenir en utilisant Créer une table de données combinées ?


Ré: Extraction de données à partir de boîtes de contour via une boucle dans le journalEt puis si vous avez assez de patience (je n'en ai pas avec Tabulate...) vous pourrez peut-être créer un rapport assez correct en utilisant Tabulate



Cela nécessite JMP17 ou JMP18 (emballage)

Ré: Extraction de données à partir de boîtes de contour via une boucle dans le journalÉtant donné que votre journal est référencé comme
rpt = Current Journal();
et vous utilisez
// Get the number of outline boxes
numOutlineBoxes = nitems(rpt);
pour obtenir le nombre d'OutlineBoxes, il renverra toujours 1. Vous devez utiliser Xpath() pour renvoyer une liste de tous les OutlineBoxes.
numOutlineBoxes = nitems(rpt << xpath( "//OutlineBox" )) ;
Cependant, il trouvera 60 boîtes de contour. Donc, pour affiner cela, vous pouvez obtenir une liste des en-têtes principaux avec
majorrptList= rpt << xpath( "//OutlineBox[contains(text(),'Variability Gauge')]" )
Cela vous donnera des pointeurs vers chacun de vos groupes de sortie
Ré: Extraction de données à partir de boîtes de contour via une boucle dans le journalSalut Jthi,
Merci pour votre réponse. La raison pour laquelle le journal est utilisé à la place du rapport est que je ne peux pas enregistrer le rapport là où il contient toujours la zone de contour de l'écart type. Par conséquent, j'ai dû l'enregistrer dans un journal.
Je vais essayer d'examiner cette option pour en faire une table combinée.
Cordialement,
Julie
Ré: Extraction de données à partir de boîtes de contour via une boucle dans le journalSalut Jim,
Merci pour votre réponse. J'ai essayé ceci, où j'ai ajouté le changement de numOutlineBoxes à :
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 ) || "]" );
Comme je ne sais pas comment procéder pour obtenir le tableau que je souhaite avec les informations sur l'échantillon/le lot et le paramètre, j'ai essayé de créer un tableau combiné puis de l'extraire à partir de là, mais cela fait quelque chose de fou et je suis très confus. J'ai joint le tableau combiné (tableau de données combiné pour le script de test int rep) et le script (script de test int rep avec tableau combiné). J'espère que vous y jetterez un œil et que vous verrez si vous pouvez trouver la raison du chaos:)