cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
Elise_B
Level III

Nom non reconnu à la fermeture d'une table de données

Bonjour,

Je rencontre un problème lors de la fermeture d'une table de données. 

Je vous met mon code ci-dessous :

f_UI:details_top5_nok = Function({rank, ictFct, tab_top5, box, dt, date1, date2},
	file_name = tab_top5[rank];
	dt << Select Where (:Result == "NOK" & :ICT_FCT == ictFct & :Nom de fichier == file_name & Num(date1) <= Num(Char(:Date)) <= Num(date2));
	dtSub = dt << Subset (
		Selected Rows(1),
		columns(:Date, :Nom de fichier, :Ref Produit, :Baie, :ICT_FCT, :Result, :Reason Error, :CodeError)
	);
	dtSum = dtSub << Summary(
		Group(:Code Error, :Reason Error),
		output table name("Détails "||file_name)
	);
	dtSum << On Close(
		Close(dtSub, NoSave);
	)
);

Lorsque j'appelle cette fonction, tout se passe comme prévu (le subset et le summary) jusqu'au dernier bloc on close. Ce que je voudrais comme comportement c'est que lorsque je ferme dtSum, dtSub se ferme automatiquement. Cependant, quand je ferme dtSum j'obtiens l'erreur suivante :

 

Nom non résolu : dtSub lors de l'accès ou de l'évaluation de « dtSub » , dtSub/*###*/

 

Je ne comprend pas pourquoi j'ai cette erreur car la table qui correspond à dtSub est toujours ouverte quand j'essaie de fermer dtSum...

 

Merci d'avance pour vos réponses !

Elise B.
1 ACCEPTED SOLUTION

Accepted Solutions
Ryan_Gilmore
Community Manager Community Manager

Re: Nom non reconnu à la fermeture d'une table de données

I've seen a similar error when the table reference is no longer in scope. My solution was as follows,

 

example = Function( {dt},
    {dtSub, dtSum},
    dt << select where( :height > 61 );
	
    dtSub = dt << subset( Selected( rows( 1 ) ) );
	
    dtSum = dt << summary( group( :age ) );
	
    Eval(
        Substitute(
                Expr(
                    dtSum << OnClose( Close( Data Table( table_name ), no save ) )
                ),
            Expr( table_name ), dtSub << get name
        )
    );
);

example( Data Table( "big class" ) );

View solution in original post

5 REPLIES 5
txnelson
Super User

Re: Nom non reconnu à la fermeture d'une table de données

I was able to replicate the issue, but I do not have a work around.  Hopefully another Community Member does.

Jim
Ryan_Gilmore
Community Manager Community Manager

Re: Nom non reconnu à la fermeture d'une table de données

I've seen a similar error when the table reference is no longer in scope. My solution was as follows,

 

example = Function( {dt},
    {dtSub, dtSum},
    dt << select where( :height > 61 );
	
    dtSub = dt << subset( Selected( rows( 1 ) ) );
	
    dtSum = dt << summary( group( :age ) );
	
    Eval(
        Substitute(
                Expr(
                    dtSum << OnClose( Close( Data Table( table_name ), no save ) )
                ),
            Expr( table_name ), dtSub << get name
        )
    );
);

example( Data Table( "big class" ) );
Elise_B
Level III

Re: Nom non reconnu à la fermeture d'une table de données

Merci pour cette solution cela a fonctionné pour moi ! Je rencontre un problème similaire avec cette fois-ci une outline box que je souhaite supprimer à la fermeture d'une table de données. Malheureusement j'obtiens la même erreur que pour mon problème précédent. Auriez-vous une idée pour y remédier ? 

Elise B.
Ryan_Gilmore
Community Manager Community Manager

Re: Nom non reconnu à la fermeture d'une table de données

The idea is to reference the outline box in such a way that does not rely on the variable reference. Here's an example that you can hopefully adapt for your script,

 

example = Function( {dt},
    {dtSub, dist},
    dt << select where( :height > 61 );
	
    dtSub = dt << subset( Selected( rows( 1 ) ) );
	
    dist = dtSub << Distribution( Continuous Distribution( Column( :weight ) ), Nominal Distribution( Column( :age ) ) );
	
    Eval(
        Substitute(
                Expr(
                    dt << OnClose( Report( distribution[1] )[Outline Box( 3 )] << Visibility( "Collapse" ) )
                ),
            Expr( table_name ), dtSub << get name
        )
    );
);

example( Data Table( "big class" ) );

I would also recommend collapsing the outline box rather than actually deleting it.

Elise_B
Level III

Re: Nom non reconnu à la fermeture d'une table de données

Merci beaucoup pour ces informations je vais essayer de localiser mes outline box pour les fermer au mieux !

Elise B.