检测本地数据过滤器中的变化<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
下面是一个使用数据过滤器的脚本,当它发生更改时,它会触发行状态处理程序,并更新图表。我真的很想使用本地过滤器,但一直无法弄清楚如何检测本地过滤器中的变化。如何检测本地数据过滤器中的更改?
名称默认为此处( 1 ) ;
dt =打开( “$SAMPLE_DATA\半导体能力.jmp” ) ;
F =功能( { A } ,
// 从报告输出的极限摘要大纲框中捕获 LCL 和 UCL
我的拼箱= (报告( CCB )[ 《NPN1 限值摘要》 ][桌盒( 1 )][ 2 ] <<得到)[ 1 ] ;
我的伦敦大学学院= (报告( CCB )[ 《NPN1 限值摘要》 ][桌盒( 1 )][ 4 ] <<得到)[ 1 ] ;
// 将新的轴设置应用回控制图
报告( CCB )[轴盒( 3 )] <<最小(我的拼箱) ;
报告( CCB )[轴盒( 3 )] <<最大限度(我的伦敦大学学院) ;
) ;
RS = dt <<制作行状态处理程序( F ) ;
新窗户( “工作示例” ,
数据过滤器上下文框(
H 列表框(
dt <<数据过滤器(添加过滤器(列( :地点) ) ,模式(选择( 1 ) ,展示( 1 ) ,包括( 1 )) ) ,
平台( dt ,
CCB =控制图生成器(
尺寸(第534章,第453章) ,
显示控制面板( 0 ) ,
变量(是( : NPN1 ) ) ,
图表(位置( 1 ) ,限制) ,
图表(位置( 2 ) ) ,
发送至报告(
派遣(
{} ,
“NPN1” ,
比例盒,
{最小( 96.6346153846154 ) ,最大限度( 131.634615384615 ) ,公司( 5 ) ,轻微蜱虫( 0 ) ,
添加参考线( 104.412948990151 , “坚硬的” , “蓝色的” , “LSL” , 1 ) ,
添加参考线( 131.893493064355 , “坚硬的” , “蓝色的” , “USL” , 1 ) ,
添加参考线( 118.153221027253 , “坚硬的” , “蓝色的” , “目标” , 1 )}
)
)
)
)
)
)
) ;
来自邮件对于 Windows 10
回复:检测本地数据过滤器中的更改和
rs = xx << Make Filter State Handler( dosomethingwithselection );
代替
xx << MakeRowStateHandler( dosomethingwithselection );
它会起作用的。
请注意,必须将返回的过滤器状态处理程序存储到 JSL 符号:rs =
<STRIKE>rs =</STRIKE> xx << Make Filter State Handler( dosomethingwithselection );
(没有RS = ) 不管用:过滤器更换处理程序
回复:检测本地数据过滤器中的更改没有直接回答你的问题,吉姆。 但是 FWIW,我没有在本地数据过滤器对象的消息列表中看到“MakeRowStateHandler”。
回复:检测本地数据过滤器中的更改伊恩,
你的例子效果很好。我回去在脚本索引中查找相关文档,只找到了最晦涩的参考资料:“标记行状态处理程序”将在数据表过滤器上工作。所以我想,如果我将其设置为能够直接指向过滤器,而不是过滤器的轮廓框,它应该可以工作,并且是一段更直接的代码。但这没有用。您知道为什么这行不通吗?当我运行脚本时,它确实知道句柄“xx”指向数据过滤器。
名称默认为此处( 1 ) ;
// 一些数据
dt =新表( “水果” ,
添加行( 3 ) ,
新专栏( “水果” ,
特点,
“名义” ,
设置值({ “梨” , “苹果” , “橙子” } )
)
) ;
// 带有本地数据过滤器的报告
国标= dt <<图形生成器(
尺寸( 528 ,第448章) ,
显示控制面板( 0 ) ,
显示图例( 0 ) ,
变量(X( :水果 ) ) ,
元素(条形图(X ,传奇( 3 ) ) )
) ;
xx =国标<<本地数据过滤器( 模式,添加过滤器(列( :水果 ) ) ) ;
// 行状态处理函数
做一些选择=功能( {X} ,
{默认本地},
嘟() ;
等待( 0.1 ) ;
嘟() ;
) ;
// 获取报告的引用
国标报告=国标<<报告;
// 查看数据过滤显示框理解哪些消息(打印到日志)
显示属性( gb报告[轮廓盒( 1 )]) ;
// 将行状态处理程序分配给本地数据过滤器显示框
xx << MakeRowStateHandler (做一些有选择的事情) ;
//rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(dosomethingwithselection);
回复:检测本地数据过滤器中的更改也许您可以尝试将行状态处理程序添加到本地数据过滤器? 例如:
名称默认到这里( 1 ) ;
// 一些数据
dt =新表( “水果” ,
添加行( 3 ) ,
新专栏( “水果” ,
特点,
“名义” ,
设定值( { “梨” , “苹果” , “橙子” } )
)
) ;
// 带有本地数据过滤器的报告
国标= dt <<图形生成器(
尺寸( 528 ,第448章) ,
显示控制面板( 0 ) ,
显示图例( 0 ) ,
变量( X ( :水果) ) ,
元素(酒吧( X ,传奇( 3 ) ) ) ,
本地数据过滤器(模式,添加过滤器(列( :水果) ) )
) ;
// 行状态处理函数
做一些选择=功能({ X } , {默认本地} ,嘟() ;等待( 0.1 ) ;嘟() ) ;
// 获取报告的引用
国标报告=国标<<报告;
// 查看数据过滤显示框理解哪些消息(打印到日志)
显示属性(国标报告[大纲框( 1 )]) ;
// 将行状态处理程序分配给本地数据过滤器显示框
rsh =国标报告[大纲框( 1 )] << MakeRowStateHandler (做一些选择) ;
回复:检测本地数据过滤器中的更改我希望有一个更直接的本地过滤器监控器。也许14.0会有这样的显示器。 感谢您的代码。
回复:检测本地数据过滤器中的更改我想不出任何通过脚本监视本地数据过滤器的内置支持。
下面是一个黑客,它只是在后台运行以查找用户的过滤更改。
名称默认为此处( 1 ) ;
dt =打开( “$SAMPLE_DATA\半导体能力.jmp” ) ;
F =功能( { CCB } ,
// 从报告输出的极限摘要大纲框中捕获 LCL 和 UCL
我的拼箱= (报告( CCB )[ 《NPN1 限值摘要》 ][桌盒( 1 )][ 2 ] <<得到)[ 1 ] ;
我的伦敦大学学院= (报告( CCB )[ 《NPN1 限值摘要》 ][桌盒( 1 )][ 4 ] <<得到)[ 1 ] ;
// 将新的轴设置应用回控制图
报告( CCB )[轴盒( 3 )] <<最小(我的拼箱) ;
报告( CCB )[轴盒( 3 )] <<最大限度(我的伦敦大学学院) ;
) ;
西北=新窗户( “工作示例” ,
数据过滤器上下文框(
H 列表框(
LDF = dt <<数据过滤器(当地的,添加过滤器(列( :地点) ) ,模式(选择( 1 ) ,展示( 1 ) ,包括( 1 )) ) ,
平台( dt ,
CCB =控制图生成器(
尺寸(第534章,第453章) ,
显示控制面板( 1 ) ,
变量(是( : NPN1 ) ) ,
图表(位置( 1 ) ,限制) ,
图表(位置( 2 ) ) ,
发送至报告(
派遣(
{} ,
“NPN1” ,
比例盒,
{最小( 96.6346153846154 ) ,最大限度( 131.634615384615 ) ,公司( 5 ) ,轻微蜱虫( 0 ) ,
添加参考线( 104.412948990151 , “坚硬的” , “蓝色的” , “LSL” , 1 ) ,
添加参考线( 131.893493064355 , “坚硬的” , “蓝色的” , “USL” , 1 ) ,
添加参考线( 118.153221027253 , “坚硬的” , “蓝色的” , “目标” , 1 )}
)
)
)
)
)
)
) ;
// 通过查看控制图下方的Where子句来监控本地数据过滤
// 首先找到Where子句文本框
//(数字各不相同,但似乎总是最后一个)
等待( 0 ) ;
我= 1 ;
尽管(可编写脚本(尝试(家长=西北[文本框(我)] <<家长)) ,
尽管(父类型=查尔(家长<<班级名称) != “大纲框” ,家长=家长<<家长) ;
我++;
) ;
// 以足够的频率扫描变化
筛选= “没有任何” ;
尽管(可编写脚本(西北) , // 将运行直到 nw 关闭
等待( 0.1 ) ; //这里设置扫描频率
如果( !不见了(新过滤器=尝试(西北[文本框(我)] <<获取文本)) ,
如果(筛选!=新过滤器,
筛选=西北[文本框(我)] <<获取文本;
F ( CCB ) ; // 获取限制并设置轴
)
) ;
) ;