I'm looking to create a JMP UI where a user selects a program to run and adds in some data filter options to the end [after where statement] or middle [from statement] of an SQL query. My first problem is that i think i'm assigning the user entered/selected data incorrectly to a new variable (see row 45--->DataParam_1). Then i'm not sure how to assign the filter selection statements ("AND ....") and merge it all back into one larger program SQL statement. I tried to take all of the user entered data and pass it back to a function called SUB_QUERY_1, manipulate it there and finally pass it to a the final query function SQL_Query_1 but this appears to not work.
Clear Log();
SUB_QUERY_1 = Function( {Company_1, Company_2, Product_1, Product_2, Program_1, Program_2},
//create query substatements for sql insertion after the main WHERE statement
code_1 = If(
(Company_1 != 0) & (Company_2 != 0), Eval Insert( "AND (COMPANY LIKE '%^Company_1^%' OR COMPANY LIKE '%^Company_2^%))" ),
(Company_1 != 0), Eval Insert( "AND COMPANY LIKE '%^Company_1^%')" )
);
code_2 = If(
(Product_1 != 0) & (Product_2 != 0), Eval Insert( "AND (PRODUCT LIKE '%^Product_1^%' OR PRODUCT LIKE '%^Product_2^%))" ),
(Product_1 != 0), Eval Insert( "AND PRODUCT LIKE '%^Product_1^%')" )
);
Show( code_1, code_2 );
//based on selected checkbox, run the query associated and insert code_1,code_2 at end of sql statement
If(
Program_1 != 0, SQL_Query_1( code_1, code_2 ),
Program_2 != 0, SQL_Query_2( code_1, code_2 )
);
);
//Final query to run based on altered info from user-interface & SUB_QUERY function
SQL_Query_1 = Function( {code_1, code_2},
sql_statement_1 = Eval Insert( "Select *
from TABLE.DATA
WHERE SCANDATETIME > (SYSDATE - 30)" + code_1 + code_2 );
Show( sql_statement_1 );
Open Database( "DSN=xxx;UID=xxx;PWD=xxx;", sql_statement_1, "Table1" );
);
//SQL_Query_2 will be copy of SQL_Query_1 with different sql statement
//ignore that it is missing for the moment
//user-interface
ww = New Window( "Epi JMP Data Query",
<<Modal,
<<return result,
V List Box( Spacer Box( Size( , 10 ) ) ),
H List Box(
Border Box( Sides( 15 ),
V List Box(
Text Box( "Select Program to Run:" ),
//User selects program to run
DataParam_1 = Check Box( "Option_1", Program_1 = DataParam_1 << Get ), //am i assigning DataParam_1 user input to Program_1 incorrectly
DataParam_2 = Check Box( "Option_2", Program_2 = DataParam_2 << Get ) //multiplying out mistake?
)
),
Spacer Box( Size( 25, 10 ) ),
V List Box(
Align( right ),
Text Box( "Data Filter" ),
Spacer Box( Size( , 10 ) ),
Text Box( "Company:" ),
Spacer Box( Size( , 10 ) ),
Text Box( "Customer:" ),
Spacer Box( Size( , 10 ) ),
),
Panel Box( "",
V List Box(
H List Box(
//User selects sql query filters to apply
comboObj1 = Combo Box( {"", "AAA", "BBB", "CCC"}, Company_1 = comboObj1 << GetSelected ),
comboObj2 = Combo Box( {"", "AAA", "BBB", "CCC"}, Company_2 = comboObj2 << GetSelected )
),
H List Box(
comboObj3 = Combo Box( {"", "Prod1", "Prod2"}, Product_1 = comboObj3 << GetSelected ),
comboObj4 = Combo Box( {"", "Prod1", "Prod2"}, Product_2 = comboObj4 << GetSelected )
),
),
),
),
V List Box(
Spacer Box( Size( , 10 ) ),
H List Box( Spacer Box( Size( , 1 ) ) ),
V List Box(
H List Box(
Ok_btn = Button Box( "OK", SUB_QUERY_1( Company_1, Company_2, Product_1, Product_2, Program_1, Program_2 ) ),
cancel_btn = Button Box( "Cancel" )
)
)
)
);