我可以在公式中的列名上使用引號嗎?嗨,
我在表中有以下簡化腳本:
dataTable = Current Data Table();
If( !Contains( strColNames, "pears" ),
dataTable << New Column( "pears",
numeric,
"Continuous",
Formula( :"apples" + 2 )
)
);
當我將此腳本複製到新表(使用ctrl-c ctrl-v)時,該表已經有一個名為“apples”的填充列,該腳本最終為:
dataTable = Current Data Table();
If( !Contains( strColNames, "pears" ),
dataTable << New Column( "pears",
numeric,
"Continuous",
Formula( As Column() + 2 )
)
);
通過As Column()語句在公式中替換對“apples”列的引用。該腳本不再有效。事實證明,從公式中對“apples”列的引用中刪除引號可以解決問題。
我認為這是一個錯誤。是,或者這是預期的行為?
此致,Radko
Re:我可以在公式中的列名上使用引號嗎?我這樣做略有不同。 我使用下面的函數來創建列。 如果列存在,則只返回列句柄,如果列不存在,則創建新列並返回句柄。 所以用法是這樣的:
PearCol = createcol(DT,“梨”,“數字”); //“NUMERIC”或“CHARACTER”
AppleCol = createcol(DT,“蘋果”,“數字”);
PearCol <<設置每個值(AppleCol [] + 2);
我更喜歡使用'設置每個值',但如果在您的應用程序中更有意義,您也可以設置公式。
CreateCol = Function({ct,ccn,ColType},
{默認本地},
CreateColExpr = Expr(
stuff = __CurDataTable__ <<新列(__ColName __,__ ComponentType__)
);
stuff = Try(Column(ct,ccn),- 1);
等等(0);
如果(東西== -1,
CreateColumn =替換(名稱Expr(CreateColExpr),
Expr(__ColType __),Parse(ColType),
Expr(__CurDataTable__),Eval(ct),
Expr(__ColName__),Eval(ccn)
);
顯示(CreateColumn);
Eval(CreateColumn);
);
東西;
);
Re:我可以在公式中的列名上使用引號嗎?您需要手動處理報價。 請參閱以下代碼:
dataTable = Current Data Table();
If( !Contains( strColNames, "\!"pears\!"" ),
dataTable << New Column( "\!"pears\!"",
numeric,
"Continuous",
Formula( :Name( "\!"apples\!"" ) + 2 )
)
);