指定單獨資料表中的列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我打算編寫一個腳本,將資料表 1 中的列中的值與資料表 2 中的列中最接近的匹配值相匹配。是否可以編寫 JSL 平台以允許來自兩個不同資料表的輸入?如果沒有,有人知道一個好的替代方法嗎?
回覆:指定單獨資料表中的列謝謝吉姆!
回覆:指定單獨資料表中的列N Table() 傳回開啟的資料表的數量。
您可以循環瀏覽它們並獲取它們的名字
對於(I=1, I<= N 表(),I++,
show(資料表(I)<<取得名稱);
);
回覆:指定單獨資料表中的列謝謝吉姆。您知道有一個函數可以傳回開啟的資料表列表嗎?
回覆:指定單獨資料表中的列在同一顯示視窗中從不同資料表填入 2 個 Col List Box() 沒有限制。如果您前往幫助==>腳本索引,並查看顯示框的第三個範例 Col List Box(),您將看到一個範例,該範例顯示一個資料表中的列,並允許您選擇一列。透過複製程式碼,但將對引用變數的「dt」引用變更為第二個資料表,可以輕鬆地將範例腳本擴展到同一顯示視窗中。
回覆:指定單獨資料表中的列嗨吉姆,
在我的最終腳本中,我想創建一個可以新增到加載項的平台,以便使用者將擁有一個從 dt1 和 dt2 中選擇列的介面。這可能嗎?如果沒有,您知道解決方法嗎?
// 平台輸入範例。
名稱預設為此處( 1 ) ;
dt =目前數據表() ;
新窗戶( “按最近匹配合併” ,
<<莫代爾,
文字方塊( “選擇輸入” ) ,
H 列錶框(
面板盒( “選擇 dt1 欄位” ,取得列=列列錶框( dt ,全部) ) , // 從 dt1 取得列。
// 新增一些腳本以從 dt2 取得列。
V 列錶框(
面板盒( “dt1 列” ,
陣容盒(北科爾( 2 ) ,
按鈕盒( “dt1 列” ,第 1 列<<附加(取得列<<被選中) ) ,
第 1 列=列列錶框( N 線( 1 ) ,最大物品數( 1 ) ,數位)
)
) ,
面板盒( “dt2 列” ,
陣容盒(北科爾( 2 ) ,
按鈕盒( “dt2 列” ,列2 <<附加(取得列<<被選中) ) ,
列2 =列列錶框( N 線( 1 ) ,最大物品數( 1 ) ,數位)
)
)
)
)
) ;
回覆:指定單獨資料表中的列嗨吉姆,
謝謝你的劇本;我可能會在我的實現中使用它。我添加了幾行來解決 dt1 中的值超出 dt2 中的值的情況。
名稱預設為此處( 1 ) ;
// 開啟樣本資料表
dt =打開( “$SAMPLE_DATA/半導體能力.jmp” ) ;
// 建立幾個資料表來展示如何進行查找
// 到多個表
dt1 = dt <<子集(選定的行( 0 ) ,列( NPN1 ) ) ;
dt2 = dt <<子集(選定的行( 0 ) ,列( NPN2 ) ) ;
關閉( dt ,不保存) ;
// 對錶進行排序以尋找最接近的值
dt2 <<種類(經過( NPN2 ) ,更換表( 1 ) ) ;
// 在第一個表格中建立一列來保存行號
// 從最接近它的第二個表開始
dt1 <<新專欄( “最接近的行號” ) ;
// 建立一個列,其中第二行包含行號
// 資料表,因此可以用來與第一個表連接
dt2 <<新專欄( “行號” ,價值觀( 1 :: N 行( dt2 ) ) ) ;
// 從第二個表中找出最接近的值
// 第一個資料表中的值
為了(我= 1 ,我<= N 行( dt1 ) ,我++,
精選= dt2 <<取得行,其中( dt2 : NPN2 > dt1 : NPN1 [我] ) ;
如果( N 行(精選) == 0 ,
dt1 :最接近的行號[我] = N 行( dt2 ) , // 針對以下情況新增:TheSelected 為空
如果(精選[ 1 ] > 1 ,
如果( dt2 : NPN2 [所選擇的[ 1 ]] - dt1 : NPN1 [我] > dt1 : NPN1 [我] - dt2 : NPN2 [所選擇的[ 1 ] - 1 ] ,
dt1 :最接近的行號[我] =所選擇的[ 1 ] ,
dt1 :最接近的行號[我] =所選擇的[ 1 ] - 1
) ,
dt1 :最接近的行號[我] =所選擇的[ 1 ] ; // 新增案例:TheSelected[1] == 1
)
) ;
) ;
// 根據找到的最接近的值連接表
dt連接= dt1 <<加入(
和( dt2 ) ,
輸出表名稱( “加入最接近的值” ) ,
透過匹配列( :最接近的行號= :行號) ,
丟棄倍數( 0 , 0 ) ,
包括不匹配項( 1 , 0 ) ,
保留主表順序( 1 )
) ;
回覆:指定單獨資料表中的列以下是一個範例腳本,示範了您可以執行所需操作的方法之一:
名稱預設為此處( 1 );
// 開啟樣本資料表
dt =打開( “$SAMPLE_DATA/半導體能力.jmp” );
// 建立幾個資料表來展示如何進行查找
// 到多個表
dt1 = dt <<子集( 選定的行( 0 ), 列( npn1 ) );
dt2 = dt <<子集( 選定的行( 0 ), 列( npn2 ) );
關閉( dt , nosave );
// 對錶進行排序以尋找最接近的值
dt2 <<種類(通過(NPN2),替換錶( 1 ) );
// 在第一個表格中建立一列來保存行號
// 從最接近它的第二個表開始
dt1 <<新專欄( “最接近的行號” );
// 建立一個列,其中第二行包含行號
// 資料表,因此可以用來與第一個表連接
dt2 <<新專欄( “行號” ,值( 1 :: N 行(dt2)));
// 從第二個表中找出最接近的值
// 第一個資料表中的值
為了(我= 1 , 我 <= N 行( dt1 ), i++,
所選值 = dt2 <<取得行,其中( dt2:NPN2 > dt1:NPN1 );
如果( 選定的[ 1 ] > 1 ,
如果( dt2:NPN2[所選的[ 1 ]] - dt1:NPN1 > dt1:NPN1 - dt2:NPN2[選定的[ 1 ]- 1 ],
dt1:最接近的行號= 所選[ 1 ],
dt1:最接近的行號= 所選[ 1 ]- 1
)
);
);
// 根據找到的最接近的值連接表
dt 連接 = dt1 <<加入(
With( dt52 ),輸出表名稱( “加入最接近的值” ),
透過匹配列(:最接近的行號=:行號),
刪除倍數( 0 , 0 ),
包括不匹配項( 1 , 0 ),
保留主表順序( 1 )
);