pb编程 中怎么获取数据窗口中显示的列数

2024-11-11 04:48:45
推荐回答(4个)
回答1:

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)")
  //如果是数值型,要转换。

回答2:

可以用如下语句猎取DW中的列数
dw_1.Describe("DataWindow.column.count")

回答3:

有个笨办法:遍历所有列,判断显示属性。

回答4:

列数:ll_colnum = Long(Describe(dw_user,"datawindow.column.count"))
行数:ll_rownum = dw_user.rowcount + 1