2014-02-21 185 views
0

我想在函数中使用的列,列可能会有所不同不时。所以我想在调用函数时将列传递给函数,函数中可以使用哪些数据类型。如何将列传递给函数?

下面是我想投入的功能和compute_page是列名的代码:

if dw_report.Object.compute_page[ll_first_row] <> dw_report.Object.compute_page[ll_last_row] then 

而且,我想做同样的事情,但这次设置列值。我试图用SetItem()的setText()的SetValue(),但没有一个功能可以达到预期效果,除了使用dwcontrol .Object。 列名 [i]设置值。

感谢

回答

2

除了使用.object标记访问之列,使用GetItemxxx(),如:

if dw_report.getitemnumber(ll_first_row, "compute_page") <> dw_report.getitemnumber(ll_last_row, "compute_page") then 

只需通过你的函数的字符串参数替换示例中的"compute_page" litteral。

当心的是,GetItemxx()调用必须实际列数据类型相匹配,所以你需要检查的dw_report.describe(ls_your_column_name+".coltype")结果调用GetItemNumber()之一,GetItemString()GetItemDecimal()GetItemDate()GetItemDatetime()或您的应用程序会崩溃。

+1

您还会发现GetItemXXX()比.object更快,更高效的内存。符号。如果脚本只被调用一次就不会有什么大不了,但是在一个大型数据集的循环中,您会注意到其中的差异。 – Terry

+0

我完全同意@Terry,似乎'.object'表示法使用OLE层来访问数据窗口内部并且往往会减慢数据处理速度。 – Seki

+0

非常感谢,但另一个类似的问题: – calvinyankf