Nom non reconnu à la fermeture d'une table de donnéesBonjour,
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 !
ScriptingRe: Nom non reconnu à la fermeture d'une table de donnéesJ'ai pu reproduire le problème, mais je n'ai pas de solution de contournement.Espérons qu'un autre membre de la communauté le fasse.
Re: Nom non reconnu à la fermeture d'une table de donnéesJ'ai vu une erreur similaire lorsque la référence de table n'est plus dans la portée. Ma solution était la suivante,
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" ) );Re: Nom non reconnu à la fermeture d'une table de donnéesMerci 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 ?
Re: Nom non reconnu à la fermeture d'une table de donnéesL'idée est de référencer la zone de contour d'une manière qui ne repose pas sur la référence de variable. Voici un exemple que vous pouvez, espérons-le, adapter à votre 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" ) );
Je recommanderais également de réduire la zone de contour plutôt que de la supprimer.