- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
[JSL] Save New Window () as script in a data table
Hello,
I would like to save a small report generated as New Window () as script into the data table, after concatenation, so I can generate it later from the datable directly.
I am trying the function << get script and << new script but it doesn't work, the generated script fails.
could you please help me?
thanks
- voiz
dt = New Table( "datatable_test5",
Add Rows( 7 ),
New Column( "SerialNumber",
Character( 20 ),
"Nominal",
Set Values(
{"DN802111YSKQ45752507", "DN802111YSKQ45752507",
"DN802111YSKQ45752507", "DN802111YSQQ4575X379",
"DN802111YSQQ4575X379", "DN802111YSQQ4575X379",
"DN802111YUAQ45755340"}
),
Set Display Width( 233 )
),
New Column( "stored_at",
Numeric,
"Continuous",
Format( "y/m/d h:m:s", 22, 0 ),
Input Format( "y/m/d h:m:s", 0 ),
Set Values(
[3806904000, 3806990820, 3806904780, 3806905200, 3806992020,
3806906400, 3806906820]
),
Set Display Width( 169 )
),
New Column( "Version",
Character( 9 ),
"Nominal",
Set Values(
{"Version 3", "Version 1", "Version 2", "Version 5",
"Version 4", "Version 2", "Version 3"}
),
Set Display Width( 100 )
),
New Column( "Metric1",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Property(
"Spec Limits",
{LSL( 0 ), USL( 40 ), Show Limits( 1 )}
),
Set Values(
[16.197252, 6.39561587, 6.5805566, 6.1837729, 16.3159215,
12.7256798, 9.83716952]
),
Set Display Width( 110 )
)
);
oldlastrecord= format(Col Maximum(dt:stored_at), "y/m/d h:m:s");
Newlastrecord= format(today(), "y/m/d h:m:s");
Ndata = Nrows(dt);
ReportMsg = New Window( "Station ---",
//<<modal(),
Outline Box( "Data Pull Report",
Table Box(
String Col Box( "Previous Last record", oldlastrecord ),
String Col Box( "New Last record", newlastrecord ),
Number Col Box( "# new rows", Ndata )
)
)
);
ReportScript = ReportMsg << get script;
show(ReportScript); // <-- the format of the script (see log) is very different from ReportMsg above
//Attempt at saving the script <--- fail
//Eval( Eval Expr( dt << New Script( "Data Pull Report", Expr( ReportScript )) ));
the log generates the following
ReportScript =
V List Box(
V List Box(
OutlineBox(
TableBox(
StringColBox("2024/08/20 9:47:00 AM"),
StringColBox("2024/09/27 12:41:40 AM"),
NumberColBox(Set Format("Best", 7), Array(7)
)))));
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: [JSL] Save New Window () as script in a data table
I would say that generally it is easiest to just build the new window as expression and add that to table script. This method will always work but sometimes it will require some extra work (or most of the time)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
oldlastrecord = {"abc"};
newlastrecord = {"ABC"};
Ndata = [123];
report_expr = Eval Expr(
ReportMsg = New Window("Station ---",
//<<modal(),
Outline Box("Data Pull Report",
Table Box(
String Col Box("Previous Last record", Expr(oldlastrecord)),
String Col Box("New Last record", Expr(newlastrecord)),
Number Col Box("# new rows", Expr(Ndata))
)
)
)
);
Eval(EvalExpr(
dt << New Script("My Report", Expr(NameExpr(report_expr)));
));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: [JSL] Save New Window () as script in a data table
I would say that generally it is easiest to just build the new window as expression and add that to table script. This method will always work but sometimes it will require some extra work (or most of the time)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
oldlastrecord = {"abc"};
newlastrecord = {"ABC"};
Ndata = [123];
report_expr = Eval Expr(
ReportMsg = New Window("Station ---",
//<<modal(),
Outline Box("Data Pull Report",
Table Box(
String Col Box("Previous Last record", Expr(oldlastrecord)),
String Col Box("New Last record", Expr(newlastrecord)),
Number Col Box("# new rows", Expr(Ndata))
)
)
)
);
Eval(EvalExpr(
dt << New Script("My Report", Expr(NameExpr(report_expr)));
));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: [JSL] Save New Window () as script in a data table
Hi Jarmo,
Thanks a lot it works great