從關聯數組形成列公式我找了找,但沒找到一個清晰的例子。我有一個腳本,用於在表中的列對之間建立關聯數組。現在我想利用這個陣列來建立一個同時引用值和鍵的公式。該怎麼做?
For( i = 1, i <= N Items( SpecCols ), i++,
key = Column( dt, SpecCols[i] );
value = Column( dt, Char(SpecCols[i])||" Pass/Fail");
assocArray[key] = value;
dt << New Column( (Column( dt, SpecCols[i] ) << get name) || " Best",
Set Property( "Notes", Notes ),
Set Property( "Limits", Limits ),
Formula(If(
:RETEST == Col Minimum(
If(
Col Mean( value, :LOT, :WAFER, :RETEST ) ==
Eval( Parse( value)),
:RETEST
),
:LOT,
:WAFER,
:SiteY,
:SiteX
),
Eval( Parse(key))
))
);
);
自動化和腳本回覆:從關聯數組形成列公式表達式求值,在這種情況下我喜歡使用 Eval(Substitute())
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
aa = Associative Array();
aa["NPN1"] = "NPN2";
aa["PNP1"] = "PNP2";
aa["INM1"] = "INM2";
new_cols = {};
For Each({{key, val}}, aa,
new_col = Eval(Substitute(
Expr(dt << New Column(key ||" "|| val, Numeric, Continuous, Formula(
_term1_ + _term2_
))),
Expr(_term1_), Name Expr(AsColumn(dt, key)),
Expr(_term2_), Name Expr(AsColumn(dt, val))
));
Insert Into(new_cols, (new_col << get name))
);
dt << Move Selected Columns(new_cols, To First);