Afficher une boîte de dialogue d'ouverture de fichier permettant à l'utilisateur de sélectionner un fichier ExcelJ'ai créé un script SQL à l'aide de JMP SQL Builder
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["Limits" =>
"Source(Open(
\!"C:\Jay\JMP\JMP Scripts\Python Scripts\JMP scripts\New folder\New folder\SQL 2\Limits.xlsx\!",
Worksheets( \!"Limits\!" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( \!"-\!" )
)
))",
"SummaryTable" =>
"\C:\Jay\JMP\JMP Scripts\Python Scripts\JMP scripts\New folder\New folder\SQL 2\SummaryTable.jmp"
]
),
QueryName( "SQLQuery11" ),
Select(
Column( "Test Number", "t2" ),
Column( "Test Name", "t2" ),
Column( "Test Units", "t2" ),
Column( "LL", "t2" ),
Column( "UL", "t2" ),
Column( "N", "t2" ),
Column( "Failing Soft Bin", "t1" )
),
From(
Table( "Limits", Alias( "t1" ) ),
Table(
"SummaryTable",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "Test Number", "t2" ), Column( "Test Number", "t1" ) )
& EQ( Column( "Test Name", "t2" ), Column( "Test Name", "t1" ) ) &
EQ( Column( "Test Units", "t2" ), Column( "Test Units", "t1" ) )
)
)
)
) << RunLe script ci-dessus effectue la tâche de copier une colonne, mais comment puis-je afficher une boîte de dialogue d'ouverture de fichier permettant à l'utilisateur de sélectionner un fichier Excel et un fichier JMP après avoir exécuté le script ?
Aucune suggestion?
Chaque fois que je dois modifier le chemin du répertoire dans le script si j'exécute le script sur d'autres fichiers. JMP Query Builder dispose-t-il d'une syntaxe pour afficher une boîte de dialogue d'ouverture de fichier ?
Re : Afficher une boîte de dialogue d'ouverture de fichier pour que l'utilisateur sélectionne un fichier Excel
Re : Afficher une boîte de dialogue d'ouverture de fichier pour que l'utilisateur sélectionne un fichier ExcelSalut @stan_koprowski ,
J'apprécie ton aide. Le script ne s'exécutera que si le nom de fichier suivant correspond
Que faire si je souhaite exécuter le même script sur différents fichiers ? Laissons mon 2ème nom de fichier rester constant et je souhaite effectuer des opérations similaires sur différents fichiers. J'ai plusieurs fichiers Excel avec des noms différents (tous les fichiers ont les mêmes colonnes)
Aucune suggestion?
Re : Afficher une boîte de dialogue d'ouverture de fichier pour que l'utilisateur sélectionne un fichier ExcelSalut @Jackie_ ,
Vous avez des erreurs de syntaxe, notamment des points-virgules manquants après chacune de vos instructions pick. Veuillez commencer à lire le guide de script ou vous référer à l'index de script pour plus de détails sur l'utilisation de la fonction Pick.
Essayez le script suivant qui vous demandera d'ouvrir un fichier Excel, puis d'ouvrir une table de données JMP à utiliser dans la requête avant d'effectuer la jointure.
Un mot d'avertissement lors de l'exécution de la requête sur les deux tables ouvertes ; le script ne fonctionnera que si les tables de données existantes ont les colonnes respectives dans chacune des tables de données ouvertes.
Names Default To Here( 1 );
//Prompt to select and open an MS Excel file
dt1 = Open( Pick File( "Select Excel File", "$DOCUMENTS", {"Excel Files|csv;xlsx;xls", "All Files|*"}, 1, 0 ), Invisible );
//Prompt to select an open a JMP data table
dt2 = Open( Pick File( "Select JMP File", "$DOCUMENTS", {"JMP Files|jmp", "All Files|*"}, 1, 0 ), Invisible );
//Perform a left outer join on the tables using the "Name" Column
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["1st_file" =>
"Source(Open( \!"dt1\!",
Worksheets( \!"worksheet\!" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( \!"-\!" )
)
))",
"2nd_file" => "Source(Open( \!"dt2\!"))"]
),
QueryName( "Data_Blending" ),
Select(
Column( "Name", "t2" ),
Column( "Enable", "t2" ),
Column( "Type", "t2" ),
Column( "Phase", "t2" ),
Column( "Values", "t3" )
),
From(
Table( "2nd_file", Alias( "t2" ) ),
Table(
"1st_file",
Alias( "t3" ),
Join(
Type( Left Outer ),
EQ( Column( "Name", "t2" ), Column( "Name", "t3" ) )
)
)
)
) << Run;
//Close source files without saving
Close(dt1, "NoSave");
Close(dt2, "NoSave")
acclamations,
Stan
Re : Afficher une boîte de dialogue d'ouverture de fichier pour que l'utilisateur sélectionne un fichier ExcelSalut @txnelson ,
dt = Pick File()
dt2 = Pick FIle()
New SQL Query(
Version( 130 ),
Connection( "JMP" ),
JMP Tables(
["Limits" =>
"Source(Open(
\!"dt\!",
Worksheets( \!"Limits\!" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( \!"-\!" )
)
))",
"SummaryTable" => "dt2"
]
),
QueryName( "SummaryTable" ),
Select(
Column( "Test Number", "t2" ),
Column( "Test Name", "t2" ),
Column( "Test Units", "t2" ),
Column( "LL", "t2" ),
Column( "UL", "t2" ),
Column( "N", "t2" ),
Column( "Failing Soft Bin", "t1" )
),
From(
Table( "Limits", Alias( "t1" ) ),
Table(
"SummaryTable",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "Test Number", "t2" ), Column( "Test Number", "t1" ) )
& EQ( Column( "Test Name", "t2" ), Column( "Test Name", "t1" ) ) &
EQ( Column( "Test Units", "t2" ), Column( "Test Units", "t1" ) )
)
)
)
)
<< RunJ'en ai utilisé deux Choisissez les fonctions File(), l'une après l'autre, la première sélectionnant le xlsx, puis la seconde, sélectionnant le fichier jmp.Puis remplacez-le dans le script. Obtenir des erreurs
Aucune suggestion?
Re : Afficher une boîte de dialogue d'ouverture de fichier pour que l'utilisateur sélectionne un fichier ExcelJe ne suis pas sûr de répondre à ce que vous voulez, mais vous pouvez exécuter 2 fonctions Pick File(), l'une après l'autre, la première sélectionnant le xlsx puis la seconde sélectionnant le fichier jmp.Remplacez-le ensuite dans votre script et exécutez le code.