Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?你可以使用 JMP查询生成器自动创建此工作流程。使用产品编号列作为筛选列,然后选择提示运行选项。

然后,您可以转到红色三角形并选择“复制运行脚本”并将该脚本粘贴到脚本中,以创建子集表作为脚本的一部分。

Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?这是'骨头',但它应该让你开始。
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Summarize( age group = By( :age ) );
// you could also use an associative array to get the unique levels.
New Window( "Selection", << Modal,
lb = List Box(
age group,
),
Button Box( "OK",
got em = lb << Get Selected;
)
);
For( g = 1, g <= N Items( got em), g++,
// do something with each selected group
Show( got em[g] );
);
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?建立在 @markbailey 的方法,这里有一些(旧的)代码:
NamesDefaultToHere(1);
// Make a table with a list of 'products'
dt = NewTable("Products", NewColumn("Product ID", Character, Nominal, Formula(Char(RandomInteger(1, 10)))));
dt << addRows(20);
dt << runFormulas;
// Put up a list of distinct products that occur in 'dt'
prods = AssociativeArray(Column(dt, "Product ID") << getValues) << getKeys;
nw = NewWindow("Pick some Products from the List",
lb = ListBox(prods),
ButtonBox("OK", OKscript)
);
// This script runs when the user hits 'OK'
OKscript =
Expr(
nw << closeWindow;
// Find out which products were selected
selecedProds = lb << getSelected;
// Find out all corresponding rows in 'dt'
selectedRows = [];
for(p=1, p<=NItems(selecedProds), p++,
selectedRows = VConcat(selectedRows, dt << getRowsWhere(:Product ID == selecedProds[p]))
);
// Make the subset table
dt2 = dt << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?如果我想对现有表执行此操作,并相应地获取与此表关联的所有列,但仅将特定于已过滤产品的各个行带出来,我该如何做到这一点?
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?以下是此代码的片段,请注意dt2(PrimaryRFR_OUT_2015)是我有兴趣按产品CFN过滤,创建新表并保存此表的数据表。请注意,过滤器框准确显示正确的产品CFN列表,但是一旦我点击OK,我会收到“Invalid Row#”:
dt2 << Save( "PrimaryRFR_OUT_2015.jmp" );
tab = dt2 << Tabulate(
Add Table(
Column Table( Grouping Columns( :Code LLT of OUT_2015 ) ),
Row Table( Grouping Columns( :Code LLT of PrimaryRFR_2015, :Code LLT Desc of PrimaryRFR_2015) )
)
);
dt_tab = tab << Make Into Data Table;
dt_tab << set name( "Tabulate" );
dt_tab << Save( "PrimaryRFR_OUT_Tabulate_2015.jmp" );
prods = AssociativeArray(Column(dt2, "Product CFN") << getValues) << getKeys;
nw = NewWindow("Pick Products from the List to be filtered",
lb = ListBox(prods),
ButtonBox("OK", OKscript)
);
OKscript =
Expr(
nw << closeWindow;
SelectedProds = lb << getSelected;
selectedRows = [];
for( p = 1, p <= NItems( SelectedProds ), p++,
selectedRows = VConcat( selectedRows, dt << getRowsWhere( :Product CFN == SelectedProds[p]))
);
dt5 = dt2 << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?在您开始的行中
selectedRows = VConcat(selectedRows .........。
对“dt”的引用应为“dt2”Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?有时你会在自己的编码中迷失方向,忘记了哪种方式上升,哪种方式下降。谢谢你们!:)Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告? 我发现了错误,因为我之前犯了很多次同样的错误:-)
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?还有一次拍摄,如何使用新产品现在保存此文件?它没有保存我的ZACH_2015.jmp
//*** Create a window to prompt user to filter for Model numbers they would like to use
prods = AssociativeArray(Column( dt2, "Product CFN" ) << getValues) << getKeys;
nw = NewWindow( "Pick Products from the List to be filtered",
lb = ListBox( prods ),
ButtonBox( "OK", OKscript )
);
OKscript =
Expr(
nw << closeWindow;
SelectedProds = lb << getSelected;
selectedRows = [];
for( p = 1, p <= NItems( SelectedProds ), p++,
selectedRows = VConcat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p]))
);
dt5 = dt2 << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);
dt5 << Save( "ZACH_2015.jmp");
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?日志对保存有什么看法?我建议您使用更精确的路径/数据表引用。数据表保存到的默认位置可能不在您认为保存的位置。Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?这在我指定文件路径/位置时有效。
跟进:如果我想为用户简化并将其保存在我提示用户在开头选择的活动选择目录中,我该如何做?
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?- 请参阅我发布的上一个回复的更新。
- 您可以在路径中为Save保存环境变量。
dt << save( "$TEMP/myfile.jmp" );
您可以在“脚本指南”中获取JMP环境变量列表
- 您还可以创建文件夹。 使用Windows环境变量查找其Documents文件夹的路径,您可以创建一个新文件夹,并将所有输出放在那里。 在后续运行中,您可以测试该文件夹是否存在,如果存在,则绕过创建步骤。
Re:有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?3。是否有一行代码可以开始设置一个名为“JMP Data”的新文件夹,并将所有内容存储在那里,在后续运行中只需检查它是否已存在于用户目录中?
亲切的问候,
扎克有没有办法让用户选择要过滤的列中的常用产品#,然后根据过滤后的选择生成报告?例如,我想提示用户在脚本中的某个特定位置让他们选择要在此特定行中表示的产品编号进行过滤,并让JMP根据此输入创建新表。
谢谢,
扎克