打開多個數據表<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />所以我想創建一個應用程序,它會提示用戶指定一定數量的數據表,然後用戶可以選擇相應的表。 我還想向每個表添加列。 我對 jmp/jsl 還很陌生,但下面是我的腳本,當然它不起作用,非常感謝任何幫助;
新窗口("數據表數量",
<<莫代爾,
Text Box( "數據表數量" ),
變量框 = 數字編輯框(),
按鈕框(“確定”),
按鈕框(“取消”)
);
N = 變量框 << 獲取;
For( i = 1, i <= N 項( dt ), i++,
dt = 打開()
名稱默認為此處(1);
dt=當前數據表(i);
dt << 新列("ColumnA", 數字, 連續, 格式("最佳", 5));
dt << 新列("ColumnB", 數字, 連續, 格式("最佳", 5));
);
PS:我知道添加附加列的腳本必須以某種方式進入 For 循環,但如果我什至可以打開數據表,那麼我如何添加列。
PM羅茲喬丹希勒@jmp克里斯·基希伯格CH場馬克·貝利
回复:打開多個數據表哦,哇,這有效。 謝謝!!!
回复:打開多個數據表當然! 非常感謝你糾正我的錯誤,梅蘭妮。 。 。
閱讀此線程的任何人還應該注意(與代碼中的註釋相反)關鍵字“multiple”受到 OS/X 和 Windows 的尊重。
回复:打開多個數據表PickFile() 的多個參數是關鍵字,而不是布爾值。 嘗試這個:
選擇文件(
“選擇多個文件之一” , // 迅速的
“$樣本數據” , // 初始文件夾
{ “JMP 文件|jmp;jsl;jrn” , “所有文件|*” } , // 要應用的文件過濾器列表(被 OS/X 忽略)
1 , // 要應用的初始文件過濾器(上面列表中項目的索引)
0 , // 保存標誌 - 指定“保存”或“打開”窗口。 分別設置值1或0。
空的() , // 默認文件
“多種的” // 多個 - 如果“保存標誌”= 0,則使用值 1 允許打開多個文件(被 OS/X 忽略)
) ;
請注意,為了使用多個參數,必須指定所有先前的參數 - 例如,您不能省略 2 個標誌和默認文件。
回复:打開多個數據表嗯。 我會詢問研發部,因為感覺這應該可行。
如果可能的話,最好使用內置函數,但您始終可以執行以下操作:
名稱默認到這裡( 1 ) ;
目錄=選擇目錄( “移動到包含您的文件的文件夾” , “$桌面” ) ;
西北=新窗戶( “打開多個文件” ,
面板盒( “選擇一個或多個文件” ,
磅=列錶框(目錄中的文件(目錄)) ,
排隊框( NCOL ( 2 ) ,
按鈕盒( “好的” , OK腳本) ,
按鈕盒( “取消” ,西北<<關閉窗口)
)
)
) ;
OK腳本=
表達式(
西北<<關閉窗口;
文件=磅<<獲取選擇;
為了( F = 1 , F <= N項(文件) , F ++,打開(目錄|| “/” ||文件[ F ])) ;
) ;
回复:打開多個數據表謝謝伊恩,你真的很有幫助。 我測試了上面的代碼,它也適用於 Windows。 我還能夠編輯代碼並將其合併到我的工作中。 但是,我一次只能打開一個文件。 根據您的解釋,在“選擇文件”功能中添加後一個 1 應該允許打開多個文件,但這在我的計算機上不起作用(順便說一下,Windows)。有什麼方法可以解決這個問題,以便我可以同時打開多個文件? 謝謝
回复:打開多個數據表現在我明白您的問題是關於選擇要打開的文件。 。 。
看起來“PickFile()”可能已經足夠靈活,可以滿足您的要求(請參閱“幫助>腳本索引”)。
就它需要與操作系統交互而言,您可能會期望 Windows 和 OS/X 之間存在一些細微的差異,而這裡似乎就是這種情況。 但不幸的是,我沒有 Windows 機器來測試下面的代碼(我還假設對於多個選擇,“PickFile()”確實會返回一個列表):
名稱默認為此處( 1 ) ;
// 使用 'PickFile()' 獲取要打開的文件列表(僅限 Windows)
文件列表=
選擇文件(
“選擇多個文件之一” , // 迅速的
“$桌面” , // 初始文件夾
{ “JMP 文件|jmp;jsl;jrn” , “所有文件|*” } , // 要應用的文件過濾器列表(被 OS/X 忽略)
1 , // 要應用的初始文件過濾器(上面列表中項目的索引)
0 , // 保存標誌 - 指定“保存”或“打開”窗口。 分別設置值1或0。
空的() , // 默認文件
1 // 多個 - 如果“保存標誌”= 0,則使用值 1 允許打開多個文件(被 OS/X 忽略)
) ;
// 如果只選擇單個文件,fileList將不是一個列表,所以我們需要自己構建它
如果( !是列表(文件列表) ,文件列表=評估列表({文件列表})) ;
// 打開文件並存儲其對應的 JMP 表名稱
表名= {} ;
為了( F = 1 , F <= N項(文件列表) , F ++,
dt =打開(文件列表[ F ]) ;
插入(表名, dt <<獲取名稱) ;
) ;
回复:打開多個數據表你好伊恩,
感謝您的反饋,我會盡力解釋得更好。 我想要的腳本詢問用戶要打開的數據表的數量,然後提示用戶選擇與之前詢問的數量相對應的要打開的表。算法如下所示:
- 運行腳本
- 系統會詢問用戶要打開多少個數據表(模態窗口將使事情變得更容易)例如:用戶輸入 say 3
- 然後,用戶會被要求選擇任意 3 個他喜歡的數據表
- 將“Column A”和“Column B”分別添加到 3 個數據表中
我希望這有助於更好地澄清問題。 再次感謝!
回复:打開多個數據表我認為您需要更詳細地說明您所追求的內容。
假設第一步您希望允許從打開的表中進行選擇(而不是選擇要打開的表),然後看一下:
名稱默認到這裡( 1 ) ;
// 顯示會話中打開的表,並讓用戶選擇一些
開放表= {} ;
為了( t = 1 , t <=表格() , t ++,插入(開放表,數據表( t ) <<獲取名稱)) ;
西北=
新窗戶( “選擇您需要的表” ,
磅=列錶框(開放表) ,
排隊框( NCOL ( 2 ) ,按鈕盒( “好的” ,好的腳本) ,按鈕盒( “取消” ,西北<<關閉窗口))
) ;
// 對選定的表執行某些操作(在本例中,只需打印)
OK腳本=
表達式(
西北<<關閉窗口;
選定的表=磅<<獲取選擇;
清除日誌() ;
如果( N項(選定的表) > 0 ,
為了( t = 1 , t <= N項(選定的表) , t ++,
打印( “桌子 ” ||選定的表[ t ] || “選定了。” )
) ,
打印( “沒有選擇桌子。” )
) ;
) ;