偵測本地資料過濾器中的變化<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 ) ; // 取得限制並設定軸
)
) ;
) ;