如何在 JMP Live 中显示动态数据筛选器?我们目前使用自定义 UI 进行本地设置,但现在我们希望在 JMP Live 上进行类似的设置。
我发现 JMP Live 不支持自定义用户界面。我有哪些方法可以实现相同或类似的效果?
当前用户界面会筛选并创建特定格式的子集供最终用户使用。

是否可以通过数据筛选或其他方法在 JMP Live 中实现相同的功能?我用 Big Class.jmp 测试过,但它只是将数据表上传并显示在 JMP Live 中,而没有应用筛选功能。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Data Filter(
Add Filter(columns(:sex, :age))
);
自动化和脚本编写基础数据分析与建模回复:如何在 JMP Live 中显示动态数据筛选器?这是我们目前在内部(本地)使用的工作流程和用户界面。
回复:如何在 JMP Live 中显示动态数据筛选器?
这是我们目前在内部(本地)使用的工作流程和用户界面。
回复:如何在 JMP Live 中显示动态数据筛选器?您使用的是哪个版本的 JMP Live?我们在 19 版本中新增了编辑报表重新生成脚本的功能,让您可以比以前更自由地自定义用户界面。由于我没有看到您的具体设置,因此无法确定在您与数据筛选器交互时,自定义用户界面中的所有功能是否都能自动运行。
以下是编辑重新生成脚本的文档: https://www.jmp.com/support/help/en/19.0/jmplive/jmplive.shtml#2667989
回复:如何在 JMP Live 中显示动态数据筛选器?我使用的是最新版的JMP 19。
在我目前的UI中(并非JMP Live),我们使用自定义条件下拉菜单作为筛选器,并使用一些单选按钮来决定要生成的子集类型。
所以,筛选器(下拉菜单)+ 单选按钮 = 子集表(简单来说)
我们拥有的数据超过 5 万条。
我尝试使用数据筛选和制表功能,但在 JMP Live 上运行速度非常慢。我想知道还有哪些方法或解决方案可以实现类似的功能。
回复:如何在 JMP Live 中显示动态数据筛选器?我们之前也收到过类似的请求。我已经将您的需求添加到我们的内部功能请求中。
很遗憾,目前我能提供的唯一解决方案是,您可以对数据进行逻辑划分,将报表拆分成多个报告。您可以将这些单独的报告作为不同的数据视图进行分组。但这是否可行取决于您的筛选条件的复杂程度。
回复:如何在 JMP Live 中显示动态数据筛选器?
由于无法使用单选按钮,我现在专注于创建单独的报告,但仍然存在一些问题。
我尝试将数据筛选器与制表功能结合使用,但它仅在两者都关联到同一个数据表时才有效。如果筛选器应用于一个表(表 A),而制表结果来自另一个表(表 B),则链接会断开——本地数据筛选器无法控制第二个表。
在JMP Live中,我想知道是否可以对表 A 设置本地数据筛选器,然后让用户的筛选选择自动驱动表 B 中显示的内容。例如:
- 用户按部门和项目筛选表 A
- 表 B 则显示所有符合这些选择的行,并添加了“结果”和“日期”等列。
目前看来,这种方法行不通。JMP Live 似乎强制用户使用 Tabulate 函数,这反而使事情变得复杂。如果 JMP 允许数据筛选器直接跨表驱动筛选后的数据,而无需使用 Tabulate 函数,那就简单多了。
回复:如何在 JMP Live 中显示动态数据筛选器?您可以使用虚拟连接将两个表关联起来吗?下面的示例使用了三个已连接的表,客户信息通过“客户 ID”列关联,电影信息通过“商品编号”列关联。制表函数使用所有三个表,并根据客户人口统计信息筛选租赁信息。
NamesDefaultToHere(1);
dt_customers = Open( "$SAMPLE_DATA/Movie Customers.jmp", Invisible );
dt_inventory = Open( "$SAMPLE_DATA/Movie Inventory.jmp", Invisible );
dt_rentals = Open( "$SAMPLE_DATA/Movie Rentals.jmp" );
dt_rentals << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Grouping Columns(
:"Rating[Item Number]"n
)
),
Row Table(
Grouping Columns(
:"Genre[Item Number]"n
)
)
),
Local Data Filter(
Mode( Show( 0 ) ),
Add Filter(
columns(
:"Gender[Customer ID]"n
),
Where(
:"Gender[Customer ID]"n == "F"
)
)
)
);
回复:如何在 JMP Live 中显示动态数据筛选器?@danschikore提供的解决方案也适用于 JMP Live。
在 JMP Live 中通过脚本刷新数据时,请确保在脚本中包含虚拟连接列属性。
按照示例,在电影租赁数据脚本中:
:"Customer ID" << Set Property( "Link Reference", Reference Table("Movie Customers.jmp") );
:"Item Number" << Set Property( "Link Reference", Reference Table("Movie Inventory.jmp") );
影院顾客:
:"Customer ID" << Set Property( "Link ID", 1 );
电影清单:
:"Item Number" << Set Property( "Link ID", 1 );
回复:如何在 JMP Live 中显示动态数据筛选器?
在 JMP Live 中刷新数据时,ODBC 是如何工作的?我遇到了“找不到数据源名称”和“未指定默认驱动程序”的错误,是否需要进行一些配置?而同样的脚本在本地可以从数据库中获取数据。
刷新数据时,返回的数据必须始终采用数据表格式才能正常工作。
回复:如何在 JMP Live 中显示动态数据筛选器?你好,
感谢您的评论。
您指的是将数据发布到 JMP Live 后,JMP Live 自动为数据表生成的脚本吗?

您是否有用于建立连接或测试连接以刷新数据的连接所需的无 DSN 查询的示例代码?
与本地 JMP 一样,我们直接这样查询:
::DB_CONNECTION_STRING = "DSN=testConnection";
dt_results = Open Database(
DB_CONNECTION_STRING ,
"SELECT
*
FROM TestTable
WHERE key IS NOT NULL",
"Test Table"
);
无 DSN 连接字符串中究竟需要包含哪些内容?
或者我们应该依赖 JMP Live 在发布过程中自动生成的刷新脚本?
回复:如何在 JMP Live 中显示动态数据筛选器?Open Database(
"DSN=testConnection;",
"SELECT
*
FROM TestTable
WHERE key IS NOT NULL",
"Test Table"
);
这是源生成的示例脚本。
如果我们想使用上述脚本并使用变量代替参数,那么传递凭据的正确格式应该是这样的吗?还是需要添加其他内容?
::DB_CONNECTION_STRING =
"DSN=testDSN;" || // same name as DSN in the credentials
"UID=%_UID_%;" ||
"PWD=%_PWD_%;";
回复:如何在 JMP Live 中显示动态数据筛选器?如果 JMP Live 服务器也安装了相同的 DSN 和驱动程序,那么查询中是否需要传递任何特定信息才能获取该服务器上的最新数据?
回复:如何在 JMP Live 中显示动态数据筛选器?您需要传递数据库名称、驱动程序、端口、服务器和用户凭据(作为占位符)。
以下是一个查询数据的示例脚本:
dt = New SQL Query(
Connection(
"ODBC:DATABASE=placeholder;
DRIVER={placeholder};
PORT=placeholder;
PWD=%_PWD_%;
SERVER=placeholder;
UID=%_UID_%;"
),
QueryName( "placeholder" ),
Select,
From( Table( "placeholder", Schema( "placeholder" ) ) )
) << Run Foreground;
dt;