1、得到当前鼠标所指对象所在的带区
string str_band
str_band=GetBandAtPointer() //得到当前鼠标所指对象所在的带区
str_band=left(str_band,(pos(str_band,'~t') - 1))//得到"header"、"detail"等
if str_band<>'header' then return //单击非头区,退出
2、得到鼠标指向的列对象名
str_object=GetObjectAtPointer() //得到当前鼠标所指对象名
str_object=left(str_object,(pos(str_object,'~t') - 1))
//得到列对象名(默认为列名_t为列标题)
str_column=left(str_object,(len(str_title) - 2))
//判断该名称是否为列名字
if this.describe(str_column+".band")='!' then return //非是列名,即列标题不是按正常规律起名的。
3、得到当前行、列,总行、列 //this 针对数据窗口而言
li_col = this.GetColumn()
li_ColCount = long(describe(this,"datawindow.column.count"))
ll_row = this.GetRow()
ll_RowCount = this.RowCount()
//设置当前行、列
scrolltorow(this,ll_Row)
setrow(this,ll_Row)
setcolumn(this,li_col)
this.SetFocus()
4、得到所有列标题
ll_colnum = Long(dw_1.object.datawindow.column.count)
for i = 1 to ll_colnum
//得到标题头的名字
ls_colname = dw_1.describe('#' + string(i) + ".name") + "_t"
ls_value = dw_1.describe(ls_colname + ".text")
next
5、如何用代码取得数据窗口汇总带计算列的值?
String ls_value
ls_value = dw_1.Describe("Evaluate("'compute_1',1)")
//如果是数值型,要转换。
可以用如下语句猎取DW中的列数
dw_1.Describe("DataWindow.column.count")
有个笨办法:遍历所有列,判断显示属性。
列数:ll_colnum = Long(Describe(dw_user,"datawindow.column.count"))
行数:ll_rownum = dw_user.rowcount + 1