Name wird beim Schließen einer Datentabelle nicht erkanntHallo,
Ich habe ein Problem beim Schließen einer Datentabelle.
Ich habe meinen Code unten eingefügt:
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);
)
);Wenn ich diese Funktion aufrufe, läuft alles wie erwartet (die Teilmenge und die Zusammenfassung) bis zum letzten Block beim Schließen. Was ich als Verhalten möchte, ist, dass dtSub automatisch beendet wird, wenn ich dtSum schließe. Wenn ich jedoch dtSum schließe, erhalte ich die folgende Fehlermeldung:
Unaufgelöster Name: dtSub bei Zugriff oder Auswertung von "dtSub", dtSub / * ### * /
Ich verstehe nicht, warum ich diesen Fehler habe, weil die Tabelle, die dtSub entspricht, noch geöffnet ist, wenn ich versuche, dtSum zu schließen ...
Vielen Dank im Voraus für Ihre Antworten!
SkriptingRe: Nom non reconnu à la fermeture d'une table de donnéesIch konnte das Problem replizieren, aber ich habe keinen Workaround.Hoffentlich tut es ein anderes Community-Mitglied.
Re: Nom non reconnu à la fermeture d'une table de donnéesIch habe einen ähnlichen Fehler gesehen, wenn der Tabellenverweis nicht mehr im Gültigkeitsbereich liegt. Meine Lösung war wie folgt,
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" ) );Betreff: Name beim Schließen einer Datentabelle nicht erkanntDanke für diese Lösung bei mir hat es funktioniert! Ich habe diesmal ein ähnliches Problem mit einem Gliederungsfeld, das ich beim Schließen einer Datentabelle löschen möchte. Leider bekomme ich den gleichen Fehler wie bei meinem vorherigen Problem. Hast du eine Idee, wie man es beheben kann?
Re: Nom non reconnu à la fermeture d'une table de donnéesDie Idee ist, das Gliederungsfeld so zu referenzieren, dass es nicht auf die Variablenreferenz angewiesen ist. Hier ist ein Beispiel, das Sie hoffentlich für Ihr Skript anpassen können:
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" ) );
Ich würde auch empfehlen, das Gliederungsfeld zu reduzieren, anstatt es tatsächlich zu löschen.
Betreff: Name beim Schließen einer Datentabelle nicht erkanntVielen Dank für diese Informationen, ich werde versuchen, meine Gliederungsboxen zu finden, um sie so gut wie möglich zu schließen!