Refaire annule << signaler les actionsSalut,
Si j’exécute quelques modifications de rapport dans le script, puis que je lance l’exclusion de certaines lignes avec Autorecalc,
tous les changements de rapport disparaissent.
Comment insérer tous les changements de rapport dans le corps de la distribution pour qu'ils ne disparaissent pas?
Merci.
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
dist = Distribution (
Recalcul automatique (1),
Distribution continue (
Quantiles (0),
Statistiques sommaires (1),
Colonne (poids),
Disposition horizontale (1),
Étiquetage de capacité Ppk (1),
Analyse de capabilité (LSL (80), USL (140))
));
PpkValue = (dist << report) [OutlineBox ("Sigma long terme")] [NumberColBox (1)] [2];
PPKtb = Table Box (
String Col Box ("Parameter", {"Ppk"}),
Nombre Col Box ("Valeur", {PpkValue})
)
(dist << report) [OutlineBox ("Statistiques sommaires")]] << Append (PPKtb);
(dist << report) [OutlineBox ("Sigma Long Terme")] << Supprimer;
Re: Refaire annule << signaler les actionsJe crois que votre syntaxe est un peu fausse. Changer les références à suivre, et cela fonctionne bien
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
PpkValue = (dist << report)[Outline Box( "Long Term Sigma" )][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;Re: Refaire annule << signaler les actionsJe vous remercie.
Cela fonctionne bien, mais lorsque j'exclus une ligne, toutes les modifications de rapport disparaissent.
Que voulez-vous dire par "changer les références en suivant"?
Veuillez voir la photo ci-jointe.
Re: Refaire annule << signaler les actionsLorsque vous effectuez une recalculation, la plate-forme est effectivement réexécutée. Par conséquent, toutes vos modifications de publication doivent également être réexécutées. Une façon de procéder consiste à utiliser un gestionnaire de changement de filtre ou un gestionnaire d'état de ligne, qui exécute le code, lorsqu'un changement dans le filtre ou les états de ligne sont détectés. Vous pouvez également ajouter un script graphique à la zone de cadre () du graphique de distribution pour déclencher l'exécution du code lorsque le graphique est modifié. Le code ci-dessous utilise un gestionnaire de changement de filtre () pour effectuer le travail.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
filter = dist << Local Data Filter(
Add Filter( columns( :age ) )
);
f = Function( {a}, addit() );
rs = filter << Make Filter Change Handler( f );
addit();
Re: Refaire annule << signaler les actionsMerci Jim.
Malheureusement, cette solution n'est pas bonne pour moi.
1. Je ne veux pas ajouter de filtre de données local
2 Lorsque j'exécute votre script et modifie la sélection dans le filtre de données local, la distribution est réexécutée sans modifications de rapport personnalisées.
Quelle est la syntaxe de votre deuxième solution ( Script graphique dans la boîte à cadre () )?
Merci encore.
Re: Refaire annule << signaler les actionsJe vous remercie!
"Ajouter un script graphique" me convient parfaitement!Re: Refaire annule << signaler les actionsMon script était destiné à vous donner un pointeur vers les méthodes possibles qui pourraient être utilisées, dans l'espoir qu'il fournirait un aperçu suffisant. J'espère que je pourrai améliorer ma contribution avec les éléments suivants:
Je n'ai pas mentionné 2 méthodes dans ma réponse précédente. J'ai mentionné 3 méthodes, Filter Change Handler, RowState Handler et Add Graphics Script. Compte tenu des détails de ce dont vous avez besoin, vous pouvez choisir d'utiliser l'une des différentes options. J'ai fourni 2 scripts ci-dessous, l'un utilisant le RowState Handler et l'autre utilisant le script Add Graphics.
Le gestionnaire RowState est très similaire à l'implémentation du gestionnaire de changement de filtre. En l'utilisant, les modifications sont déclenchées si des modifications sont apportées à la colonne RowState dans la table de données.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function({},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;);
f = Function( {a}, addit() );
rs = dt << Make RowState Handler( f );
addit();
L'exemple d'ajout de graphiques est plus complexe. Cela est principalement dû au fait que le script scripteur doit déterminer les éléments à comparer, puis déclencher l'exécution du code. Dans le cas ci-dessous, la vérification pour voir si la moyenne ou l'écart-type change, déclenche l'exécution du code. Cela peut ne pas être suffisant, pour le genre de choses que vos utilisateurs peuvent changer ... de sorte que le besoin doit être étendu ou complètement changé.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution(
Quantiles( 0 ),
Summary Statistics( 1 ),
Column( :weight ),
Horizontal Layout( 1 ),
Ppk Capability Labeling( 1 ),
Capability Analysis( LSL( 80 ), USL( 140 ) )
)
);
addit = Function( {},
PpkValue = (dist << report)["Long Term Sigma"][Number Col Box( 1 )][2];
PPKtb = Table Box( String Col Box( "Parameter", {"Ppk"} ), Number Col Box( "Value", {PpkValue} ) );
(dist << report)["Summary Statistics"] << Append( PPKtb );
(dist << report)["Long Term Sigma"] << delete;
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
(dist << report)[framebox( 2 )] << add graphics script(
If(
theMean != ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1] | theSTD != ((dist
<< report)["Summary Statistics"][Number Col Box( 1 )] << get)[2],
addit()
);
theMean = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[1];
theSTD = ((dist << report)["Summary Statistics"][Number Col Box( 1 )] << get)[2];
);
addit();
Je vous suggère fortement de prendre le temps de lire le guide de script et de vous familiariser avec l'index de script. La vue d'ensemble de JSL dans le Guide de script fournit la base nécessaire pour être un programmeur JSL compétent, et les exemples pour tous les objets et fonctions dans le Scripting Index sont inestimables pour écrire le code