我不知道该怎么称呼它。也许表变量可以做到这一点。 也许预测分析器可以。
最后,我想要一个公式列 ABC 类,它是至少两个我称之为“全局参数”的结果。基本 ABC SKU 分类将截止值设置为所有 SKU 设置收入 %s 的总和。As 应为收入的 80%,Bs 为 15%,Cs 为 5%。对于此示例,我将使其变得更简单,假设 SKU 根据该 SKU 的销售额被分类为 A、B 或 C。
在下面的示例中,有三个规则(我没有将其编码为公式),由两个参数设置。
- 销量超过1000的SKU -> A
- 销量超过100的SKU -> B
- 其余->C
数据表示例
//create datatable
dt = New Table( "Slider Test",
Add Rows( 26 ),
Set Header Height( 47 ),
New Column( "SKU",
Character,
"Nominal",
Set Selected,
Set Values(
{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
)
),
New Column( "Sales",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[98, 64, 120, 397, 93, 58, 196, 700, 674, 229, 607, 55, 590, 169, 1449,
1236, 143, 1714, 364, 404, 226, 1300, 1105, 144, 1391, 1893]
),
Set Display Width( 94 )
),
New Column( "ABC Class",
Character,
"Nominal",
Set Values(
{"C", "C", "B", "B", "C", "C", "B", "B", "B", "B", "B", "C", "B", "B",
"A", "A", "B", "A", "B", "B", "B", "A", "A", "B", "A", "A"}
),
Set Display Width( 70 )
)
);
//create graph
dt <<GRAPH builder=""></GRAPH>示例图像。如果我可以输入显示的两个变量或有一个滑块,那就太好了。
在下面的示例中,有三个规则(我没有将其编码为公式),由两个参数(截止 AB 和截止 BC)设置。
- 销售额超过 1000 的 SKU -> A 然后我将结果更改为 1500
- 销售额超过 100 的 SKU -> B 然后我显示将其更改为 150 的结果
- 其余->C

谢谢。
这个例子给了我很大的帮助。在您的帮助下,我完全实现了我的想象。 谢谢。
这就是我为了获得多个滑块并将全局框置于滑块右侧而完成的操作。
//graph builder code above here (not shown)
//code for slider below
//number of months of demand variables
ab = dt:Cutoff AB;
bc = dt:Cutoff BC;
//CoV variables
CoV1 = dt:CoV1;
CoV2 = dt:CoV2;
:ABC Class << Suppress Eval( 0 );
specBox = H List Box(
V List Box(
//number of months of demand
H List Box(
Slider Box(
0,
12,
ab,
dt:Cutoff AB = ab;
dt << rerun formulas;
),
Text Box( "Months of demand" )
),
H List Box(
Slider Box(
0,
12,
bc,
dt:Cutoff BC = bc;
dt << rerun formulas;
),
Text Box( "Months of demand" )
),
//CoV
H List Box(
Slider Box(
0,
4,
CoV1,
dt:CoV1 = CoV1;
dt << rerun formulas;
),
Text Box( "COV" )
),
H List Box(
Slider Box(
0,
4,
CoV2,
dt:CoV2 = CoV2;
dt << rerun formulas;
),
Text Box( "COV" )
),
),//end V list box 1
//display the variables
V List Box(
Global Box( ab ),
Global Box( bc ),
Global Box( CoV1 ),
Global Box( CoV2 )
)//end V list box2
);//end H list box
(Report( gb )[Picture Box( 1 )] << Parent) << Append( specBox );

@BSwid ,使用 GraphBuilder 的图形很复杂,因为有很多动态组件,什么是最好的方法取决于使用情况。例如,如果其他人要使用此图表,他们可以将销售的 GraphBuider 摘要统计更改为最大值或最小值或标准差,而不是平均值。换句话说,维护 GraphBuilder 的功能会增加复杂性。
如果此汇总统计数据不是动态的,则可以通过向 GB 的框架盒添加自定义函数来实现。 这需要计算每个截止值变化的平均值。并重新绘制图表。 但是,如果排除了行,您将需要编写一个行状态处理程序脚本,以便计算您的特殊条形。 另外,可以为 X-Group 等选择另一列,那么动态滑块界面可能会出现问题。
使用 JMP 平台时,我更喜欢使用 JMP 的功能,即使需要重组表才能执行此操作。为了让GB绘制这些嵌套的条形图,需要有一个变量来指定当前的条形图,然后指定推测的条形图,这些条形图将用作叠加,并且这些条形图可以并排或嵌套。 从你的绘图中,我选择了嵌套,但是使用这个脚本你可以改变它,
要重构数据,您需要 2 个副本:原始值和推测值。 我选择的方法是将表与其自身连接起来。 该脚本有一个假设,即当前分类来自脚本,如果不是,则需要修改定义的公式,并且可能需要一个新列。

附3个文件:
- 原表, SKU 示例.jmp
- 修改表SKU 示例_Final.jmp注意:创建交互式 GB 的脚本附在该表中
- 脚本, SKU 脚本.jsl从 c:\temp 打开原始表。您将需要修改您的路径。该脚本重构表格并绘制动态图。
注意:创建一个动态自定义图表可能会更容易,它具有固定的摘要统计数据,并且不需要维护其他花哨的东西。 此方法用于记录使用 GraphBuilder 编写自定义动态小部件脚本的问题。
祝你好运。
@BSwid写道:
我不知道该怎么称呼它。也许表变量可以做到这一点。 也许预测分析器可以。
最后,我想要一个公式列 ABC 类,它是至少两个我称之为“全局参数”的结果。基本 ABC SKU 分类将截止值设置为所有 SKU 设置收入 %s 的总和。As 应为收入的 80%,Bs 为 15%,Cs 为 5%。对于此示例,我将使其变得更简单,假设 SKU 根据该 SKU 的销售额被分类为 A、B 或 C。
在下面的示例中,有三个规则(我没有将其编码为公式),由两个参数设置。
- 销量超过1000的SKU -> A
- 销量超过100的SKU -> B
- 其余->C
数据表示例
//create datatable
dt = New Table( "Slider Test",
Add Rows( 26 ),
Set Header Height( 47 ),
New Column( "SKU",
Character,
"Nominal",
Set Selected,
Set Values(
{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
)
),
New Column( "Sales",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[98, 64, 120, 397, 93, 58, 196, 700, 674, 229, 607, 55, 590, 169, 1449,
1236, 143, 1714, 364, 404, 226, 1300, 1105, 144, 1391, 1893]
),
Set Display Width( 94 )
),
New Column( "ABC Class",
Character,
"Nominal",
Set Values(
{"C", "C", "B", "B", "C", "C", "B", "B", "B", "B", "B", "C", "B", "B",
"A", "A", "B", "A", "B", "B", "B", "A", "A", "B", "A", "A"}
),
Set Display Width( 70 )
)
);
//create graph
dt <<GRAPH builder=""></GRAPH>示例图像。如果我可以输入显示的两个变量或有一个滑块,那就太好了。
在下面的示例中,有三个规则(我没有将其编码为公式),由两个参数(截止 AB 和截止 BC)设置。
- 销售额超过 1000 的 SKU -> A 然后我将结果更改为 1500
- 销售额超过 100 的 SKU -> B 然后我显示将其更改为 150 的结果
- 其余->C

谢谢。
我尝试设置表变量:AB 和:BC。然后尝试修改鸡蛋和培根的例子来自 jsl 食谱。
但是当我尝试移动滑块时出现错误。

//use table variables instead :AB & :BC
//Eggs = 50; // :AB
//Bacon = 50; // :BC
//window
New Window( "Slider Display",
Border Box( Left( 10 ), Right( 10 ), top( 10 ), bottom( 10 ),
V List Box(
H List Box(
Text Box( "AB" ), // slider label
ABsb = Slider Box( 0, 2000, :AB, // slider script follows...
ABnb << set( :AB ); // update the value
// this example doesn't need any other interactive
// update. You could do some other work here, using
// the slider's value to change a graph, perhaps.
),
// text box to hold the slider's value...
ABnb = Number Edit Box( :AB, <<SETFUNCTION></SETFUNCTION>(我认为)我希望滑块框更新表变量,这会更新数据表中的公式,从而更新图表。
我确定我需要这条线。
gb<<INVAL></INVAL>
我尝试设置表变量:AB 和:BC。然后尝试修改鸡蛋和培根的例子来自 jsl 食谱。
但是当我尝试移动滑块时出现错误。

//use table variables instead :AB & :BC
//Eggs = 50; // :AB
//Bacon = 50; // :BC
//window
New Window( "Slider Display",
Border Box( Left( 10 ), Right( 10 ), top( 10 ), bottom( 10 ),
V List Box(
H List Box(
Text Box( "AB" ), // slider label
ABsb = Slider Box( 0, 2000, :AB, // slider script follows...
ABnb << set( :AB ); // update the value
// this example doesn't need any other interactive
// update. You could do some other work here, using
// the slider's value to change a graph, perhaps.
),
// text box to hold the slider's value...
ABnb = Number Edit Box( :AB, <<SETFUNCTION></SETFUNCTION>(我认为)我希望滑块框更新表变量,这会更新数据表中的公式,从而更新图表。
我确定我需要这条线。
gb<<INVAL></INVAL>