Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de ExcelCreé un script SQL usando 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" ) )
)
)
)
) << RunLa secuencia de comandos anterior realiza la tarea de copiar una columna, pero ¿cómo puedo mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de Excel y un archivo JMP después de ejecutar la secuencia de comandos?
¿Alguna sugerencia?
Cada vez que tengo que cambiar la ruta del directorio en el script si ejecuto el script en otros archivos. ¿JMP Query Builder tiene alguna sintaxis para mostrar un cuadro de diálogo para abrir un archivo?
Re: Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de Excel
Re: Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de ExcelHola @stan_koprowski ,
Aprecio tu ayuda. El script solo se ejecutará si el siguiente nombre de archivo coincide
¿Qué pasa si quiero ejecutar el mismo script en diferentes archivos? Dejemos que mi segundo nombre de archivo permanezca constante y quiero realizar operaciones similares en diferentes archivos. Tengo varios archivos de Excel con diferentes nombres (Todos los archivos tienen las mismas columnas)
¿Alguna sugerencia?
Re: Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de ExcelHola @Jackie_ ,
Tiene algunos errores de sintaxis, incluidos puntos y comas faltantes después de cada una de sus declaraciones de selección. Comience a leer la guía de secuencias de comandos o consulte el índice de secuencias de comandos para obtener detalles adicionales sobre el uso de la función Seleccionar.
Pruebe el siguiente script que le pedirá que abra un archivo de Excel y luego le pedirá que abra una tabla de datos JMP para usar en la consulta antes de realizar la unión.
Una palabra de precaución al ejecutar la consulta en las dos tablas abiertas; el script solo funcionará si las tablas de datos existentes tienen las columnas respectivas en cada una de las tablas de datos abiertas.
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")
salud,
Stan
Re: Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de ExcelHola @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" ) )
)
)
)
)
<< Runusé dos Las funciones Pick File(), una tras otra, con la primera seleccionando el xlsx y luego la segunda, seleccionando el archivo jmp.Luego sustituya en el guión. Obtener errores
¿Alguna sugerencia?
Re: Mostrar un cuadro de diálogo Abrir archivo para que el usuario seleccione un archivo de ExcelNo estoy seguro de estar respondiendo lo que quiere, pero puede ejecutar 2 funciones Pick File(), una tras otra, con la primera seleccionando xlsx y luego la segunda, seleccionando el archivo jmp.Luego sustituya en su secuencia de comandos y ejecute el código.