Jarmo I added that to every query, which immediately closes the empty tables and it appears to be stable now. Here's the finished result if that helps anyone, not handsome but it works.
Names Default To Here(1);
// Defining firstname and lastname string
FirstParameter = "First Parameter";
SecondParameter = "Second Parameter";
LotNumber = "Lot Number";
//changing username variables based on user input
w = New Window("Defining Parameters",
<<Modal, // opens a window with a title and this content...
Border Box(top(20), bottom(20), Left(20), Right(20), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box(Text Box("Nominate Parameters and Lot")), // a second title, centered
Spacer Box(size(1, 30)), // a little vertical space
H List Box(Text Box("Parameter 1: "), b1 = Text Edit Box(FirstParameter)), // data entry
Spacer Box(size(1, 10)), // a little vertical space
H List Box(Text Box("Parameter 2: "), b2 = Text Edit Box(SecondParameter)), // more data entry
Spacer Box(size(1, 30)), // a little vertical space
H List Box(Text Box("Lot: "), b3 = Text Edit Box(LotNumber)), // more data entry
Spacer Box(size(1, 30)), // a little vertical space
H Center Box( // center the button
Button Box("Input", // this script runs when the button is pressed...
// make a new table with the values...
b1_val = b1 << get text;
b2_val = b2 << get text;
b3_val = b3 << get text;
ok_btn << Click(1);
)
),
ok_btn = Button Box("OK", <<Visibility("Collapse"))
)
)
);
Sites = {"Site1;", "Site2;"};
//
Data_Bases = {db_A, db_B};
n = N Items( Data_Bases );
db_function = Function( {DataBases},
If(b1_val!="" & b2_val !="",
Try(
Source = Char(Data_Bases[l]);
sql1 = "select * from iicolumns
where table_owner='"||Source||"'
and column_name like '%"||b1_val||"%'
order by 1";
First_History = Open Database( Sites[1], sql1, "First_History" );
sql2 = "select * from iicolumns
where table_owner='"||Source||"'
and column_name like '%"||b2_val||"%'
order by 1";
Second_History = Open Database( Sites[1], sql2, "Second_History" );
Data Table( "First_History" ) << Join(
With( Data Table( "Second_History" ) ),
By Matching Columns( :table_name = :table_name ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Paired_History.jmp" )
);
// Close Data Table: Wafer_History
Close( Data Table( "First_History" ), NoSave );
// Close Data Table: Reticle_History
Close( Data Table( "Second_History" ), NoSave );
),
Try(
If((b1_val!="" & b2_val =="") | (b1_val=="" & b2_val ==""), (
Source = Char(Data_Bases[l]);
sql1 = "select * from iicolumns
where table_owner='"||Source||"'
and column_name like '%"||b1_val||"%'
order by 1";
Paired_History = Open Database( Sites[1], sql1, "Paired_History" );)
)););
// Join data tables
// → Data Table( "Untitled 274" )
Data Table( "Paired_History.jmp" ) << New Column("Script Part 1", Character, "Nominal", Formula(If( (As Column(1)) != Lag( As Column(1), 1 ) | As Column(2) != Lag( As Column(2), 1 ),"sql", "")));
Data Table( "Paired_History.jmp" ) << New Column("Script Part 2a", Numeric, "Nominal", Formula(If( (As Column(1)) != Lag( (As Column(1)), 1 ) | (As Column(2)) != Lag( (As Column(2)), 1 ), Sequence(1, 99999, 1, 1))));
Data Table( "Paired_History.jmp" ) << New Column("Script Part 2", Character, "Nominal", Formula(If(!Is Missing(:Script Part 2a), Char(:Script Part 2a))));
Data Table( "Paired_History.jmp" ) << New Column("Script Part 3", Character, "Nominal", Formula(If( (As Column(1)) != Lag( (As Column(1)), 1 ) | (As Column(2)) != Lag( (As Column(2)), 1 ), "=\!"", "")));
Data Table( "Paired_History.jmp" ) << New Column("Script Part 4", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1), "select * from " || (As Column(2)) || "." || (As Column(1)) || " where lot = '" || b3_val || "'", "")));
Data Table( "Paired_History.jmp" ) << New Column("Script Part 5", Character, "Nominal", Formula(If( (As Column(1)) != Lag( (As Column(1)), 1 ) | (As Column(2)) != Lag( (As Column(2)), 1 ),"\!";", "")));
wait(1);
// Delete column formula: Script Part 1
Data Table( "Paired_History" ):"Script Part 1"n << Delete Formula;
// Delete column formula: Script Part 2
Data Table( "Paired_History" ):"Script Part 2"n << Delete Formula;
// Delete column formula: Script Part 3
Data Table( "Paired_History" ):"Script Part 3"n << Delete Formula;
// Delete column formula: Script Part 4
Data Table( "Paired_History" ):"Script Part 4"n << Delete Formula;
// Delete column formula: Script Part 5
Data Table( "Paired_History" ):"Script Part 5"n << Delete Formula;
Data Table( "Paired_History.jmp" ) << New Column( "Initiation",
Character,
"Nominal",
Formula(
If( Row() == 1,
"Names Default To Here(1);Clear Globals();dt=Current Data Table();Sites = {\!"DSN=echits4;Database=echits4;\!", \!"DSN=achits4;Database=achits4;\!"};
"
)
)
);
Data Table( "Paired_History.jmp" ) << New Column("First Script", Character, "Nominal", Formula(:Script Part 1 || Char(:Script Part 2) || :Script Part 3 || :Script Part 4 || :Script Part 5));
Data Table( "Paired_History.jmp" ) << New Column("Second Script", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1), "History" || Char(:Script Part 2) || " = Open Database( Sites[1], sql" || Char(:Script Part 2) || ", \!"History " || As Column(2) || "_" || As Column(1) || "\!");", "")));
Data Table( "Paired_History.jmp" ) << New Column("Close Empty", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1),"Try(if (N Rows(")));
Data Table( "Paired_History.jmp" ) << New Column("Close Empty2", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1), "History" || Char(:Script Part 2))));
Data Table( "Paired_History.jmp" ) << New Column("Close Empty3", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1),") == 0, Close(")));
Data Table( "Paired_History.jmp" ) << New Column("Close Empty4", Character, "Nominal", Formula(If((As Column(1)) != Lag((As Column(1)), 1) | (As Column(2)) != Lag((As Column(2)), 1),"History" || Char(:Script Part 2)||", No Save)));")));
Data Table( "Paired_History.jmp" ) << New Column("Close", Character, "Nominal", Formula(:Close Empty||:Close Empty2||:Close Empty3||:Close Empty4));
wait(1);
// Delete column formula: Second Script
Data Table( "Paired_History" ):Second Script << Delete Formula;
Data Table( "Paired_History" ):Close << Delete Formula;
Data Table( "Paired_History" ) << Select Columns( :Initiation, :"First Script"n, :"Second Script"n, :Close );
Current Data Table() << Bring Window To Front;
Wait( 1 );
Main Menu( "Copy" );
Close( Data Table( "Paired_History" ) );
ww = New Window( "Trawl", << Script );
Wait( 0 );
Main Menu( "Paste" );
Main Menu( "Reformat Script" );
ed = ww[Script Box(1)];
Wait(1);
ed << Set Text(Regex(ed << get text, "[\r\t]+", "\!N", GLOBALREPLACE));
ed << reformat;
//ww << Save Text(dirpath||names||".jsl");
//ww << Close Window();
Wait(1);
ed << Run;
ed << Close Window();
);
For( l = 1, l <= n, l++, //Show(l);
db_function( Data_Bases[l] )
);
Slán
SpannerHead