Mon script de fonction JSL ci-dessous extrait un fichier d'un dossier réseau et le génère dans un fichier de données pour une utilisation ailleurs. Comment afficher le message d'erreur "Ce fichier limite n'existe pas ! Vérifier le nom du fichier" avec le fichier de données. Je suis sur JMP13.
Names Default To Here( 1 );
getLimitsFile = Function({LimFileName}, {dtspk},
dtspk = Try(
Open(
"\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt",
columns(
New Column( "ParameterName", Character, "Nominal" ),
New Column( "ColumnLSL", Character, "Nominal" ),
New Column( "ColumnUSL", Character, "Nominal" ),
New Column( "ColumnUnits", Character, "Nominal" ),
New Column( "ColumnSymb", Character, "Nominal" ),
New Column( "ColumnComm", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
//,invisible)
),"This limit file does not exist! Check file name");
return(dtspk);
);De plus, en cas d'erreur, comment arrêter l'exécution ultérieure du code où la fonction est utilisée et afficher à l'utilisateur une boîte de dialogue avec le message d'erreur ?
Si JMP13 fournit la fonction File Exists(), vous pouvez l'utiliser avec l'instruction if. Ensuite, il s'agit de décider quoi retourner / comment arrêter le programme. Vous pouvez utiliser par exemple Throw() ou Stop()
Names Default To Here(1);
getLimitsFile = Function({LimFileName}, {dtspk},
If(!File Exists("\\gbshyt-ppor-334e\DBX\XPD\System\Limits\"||LimFileName||".txt"),
Throw("This limit file does not exist! Check file name");
//or use return and throw outside function
);
//Open...
return(dtspk);
);
getLimitsFile("");
Show("continue...");
Éditer:
Quelle table de données souhaitez-vous renvoyer avec l'erreur ? Si vous ne pouvez pas ouvrir le fichier, il n'y a pas de table de données à renvoyer à moins que vous n'en créiez une vide.
Merci @jthi , Oui, JMP 13 a un fichier existant (). Je vais essayer.
Je n'ai pas formulé ma requête correctement plus tôt. Lorsque le fichier n'existe pas, je souhaite simplement que la fonction affiche simplement l'erreur dans une boîte de dialogue et arrête toute exécution ultérieure.
Lorsque le fichier existe, je ne veux que la table de données et la sortie du message. Comment y parvenir ?
Avez-vous une boîte de dialogue en dehors de la fonction que vous souhaitez remplir avec le message d'erreur ? Et avec datatable, vous souhaitez renvoyer la sortie du message avec datatable ?