使用 JSL 搜索列名並執行部分代碼<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好
我有一個要求,我需要搜索 .jmp 文件的列名,然後僅當該列存在時才執行一些步驟。 如何在 JSL 中包含此列搜索?例如,我在 excel 文件中有一個數據,列名為“A”、“B”、“C”、“D”。D 列有一個過濾器,選項為“是”、“否”和“可能是” . 使用 JSL ,我使用 Table->tabulate->option 對數據表進行了分組。 我將數據分組在“D”列中。現在我有一個包含“yes,no and may be”列的表格。 現在我想在這些列中搜索選項 "may be" 。 如果“可能”可用,我想執行一些步驟。 如果沒有,我想執行一些其他步驟。我如何將其包含在 JSL 中?
回复:使用 JSL 搜索列名和執行部分代碼非常有用的解決方案
回复:使用 JSL 搜索列名和執行部分代碼是的,行得通。 但是我有一些東西阻止我執行代碼。
行表(分組列( :序列號, :由...製作) )
)
) ;
newdt =數據表<<製作成數據表;
名單= { “APPR” , “SEQU APPR” , “SEQU HAPP” , “快樂” , “RJCT” , “SEQU RJCT” , “SEQU HREJ” , “人權法” , “DREQ” , “順序請求” } ; // 在這些選項中,我想獲取 DREQ 和 SEQU DREQ 列的值為“0”的行。 這兩列可以包含 1 或 0 的值,但我不想要值為 0 的行。
主要名稱= newdt <<獲取列名(細繩) ;
為了(我= 1個,我<= N 項(名單) ,我++,
如果(包含(主要名稱,名單[我] ) == 0 ,
newdt <<新建專欄(名單[我] ,數字, <<設置每個值( 1000 ) ) ; // 我將每個值設置為 1000,因為我已經為這些選項設置了 0 或 1
) ;
) ;
在上面的代碼中,每當我有列 DREQ 和 SEQU DREQ 時,我都希望在這些列中的任何一個中具有值 0 的所有行。 如果這些列不存在,則值 1000 將顯示在代碼中。 但是,如果這些列存在,我如何合併我只需要 0 的條件。希望你明白我的問題。
多謝
回复:使用 JSL 搜索列名和執行部分代碼你快到了。您需要為所有內容命名,以便您以後可以引用它。此代碼應該工作:
dt =數據表( “數據表” ) ;
數據表= dt <<製表(
添加表(
列表(分組列( :用戶狀態任務) ) , //User Status Task每次都有不同的狀態,每個都有0或1的值。 每次根據數據,某些選項可能會丟失。
行表(分組列( :序列號, :由...製作) )
)
) ;
newdt =數據表<<製作成數據表;
名單= { “APPR” , “SEQU APPR” , “SEQU HAPP” , “快樂” , “RJCT” , “SEQU RJCT” , “SEQU HREJ” , “人權法” , “DREQ” , “順序請求” } ; //我在下拉列表列“用戶狀態任務”下有這些選項。 我每次都沒有相同的下拉列表,因為該列中缺少數據。
主要名稱= newdt <<獲取列名(細繩) ;
為了(我= 1個,我<= N 項(名單) ,我++,
如果(包含(主要名稱,名單[我] ) == 0 ,
newdt <<新建專欄(名單[我] ,數字, <<設置每個值( 1000 ) ) ; // 我將每個值設置為 1000,因為我已經為這些選項設置了 0 或 1
) ;
) ;
回复:使用 JSL 搜索列名和執行部分代碼對於局外人來說,您的腳本非常混亂,如果沒有更多信息,就不可能準確地說出哪裡出了問題。 嘗試更詳細地描述“一些錯誤”。
一種猜測是您尋址了錯誤的表或者推斷的表不存在。 您似乎使用至少四個數據表:名為“數據表”的表和三個表變量dt ,創建列表& surv_pt_main . 您確定您擁有或使用所有這些表格嗎? 例如,你讓dt來自“數據表”的表格。 但你從來沒有真正使用過dt ?
回复:使用 JSL 搜索列名和執行部分代碼JSL 在 surv_pt_main 行中顯示一些錯誤。
我寫的腳本如下:
dt=數據表("數據表");
<<製表(
添加表格(
Column Table( Grouping Columns( :User Status Task ) ), //User Status Task 每次都有不同的狀態,每個都有0或1的值。 每次根據數據,某些選項可能會丟失。
行表(分組列(:序列號,:創建者))
))
<< 製作成數據表;
name_list={"APPR","SEQU APPR","SEQU HAPP","HAPP","RJCT","SEQU RJCT","SEQU HREJ","HREJ","DREQ","SEQU DREQ"}; //我在下拉列表列“用戶狀態任務”下有這些選項。 我每次都沒有相同的下拉列表,因為該列中缺少數據。
main_names=create_list<<獲取列名(字符串);
對於(i=0,i<=nitems(name_list),i++,
如果(包含(main_names,name_list )==0,
surv_pt_main<<新列(名稱列表,Number,<<設置每個值(1000)); // 我將每個值設置為 1000,因為我已經為這些選項設置了 0 或 1
);
);
希望有人能幫我解決這個問題。
謝謝
回复:使用 JSL 搜索列名和執行部分代碼我經常這樣做,因為在我們的數據中,您無法保證所有的回复。如果某列不存在,我將其添加並在其中放入 0。是這樣的:
// 插入缺失的列。
名單= { “當前的” , “以前的” , “累積” } ;
主要名稱= surv_pt_main <<獲取列名(細繩) ;
// 如果缺少一列,則用一組 0 添加它
為了(我= 1個,我<=物品(名單) ,我++,
如果(包含(主要名稱,名單[我]) == 0 ,
surv_pt_main <<新建專欄(名單[我] ,數字, <<設置每個值( 0 )) ;
) ;
) ;