使用 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 )) ;
) ;
) ;