您的位置:首页 > 其它

数据窗口中各项指标的获取方法

2012-03-30 17:14 169 查看
http://www.51pb.com/viewthread.php?tid=1005&extra=page%3D6

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


6、取得单击的列标题、列名、数据库字段名

  string   ls_dwo
  long   ll_pos
  string   ls_type
  string   ls_title
  string   ls_column
  string   ls_dbname
  if   Not   KeyDown(KeyControl!)   then   return
  ls_dwo   =   dwo.Name
  if   trim(ls_dwo)   =   ' '   or   isnull(ls_dwo)   then   return
  ls_type   =   This.describe(ls_dwo   +   '.type ')
  if   ls_type   =   'column '   then
   ls_title   =   This.describe(ls_dwo   +   '_t.text ')//标题
   ls_column   =   This.describe(ls_dwo   +   '.Name ')   //数据窗口列名
   ls_dbname   =   This.describe(ls_dwo   +   '.dbname ')   //数据库中字段名
   messagebox( '信息 ',   '标   题   文   本   : '   +   ls_title   +   &
    '~r~n数据窗口列名   : '   +   ls_column   +   &
    '~r~n数据库中字段名: '   +   ls_dbname   )
  end   if


7、窗口为w_gcde内,放入一个DW_1,如何得到dw_1内的某列值yuonghu_id列的内容

  
long   lng_column_count
  integer   i
  string   str_column[]   //列名
  string   str_column_text[]  //text的名字
  //得到数据窗口的总列数
  lng_column_count   =   long(dw_1.Describe( "DataWindow.Column.Count "))
  //循环依次读取
  for   i   =   1   to   lng_column_count
   str_column   =   dw_1.Describe( "# "+string(i)+ ".name ")
   str_column_text   =   dw_1.Describe(str_column   +   "_t.text ")
  next


8、定义要打印的页码

  dw_1.Modify( "DataWindow.Print.Page.Range= ' "+sle_1.text+ " ' ")
  dw_1.print()


9、取到当前是第几页

  dw_1.describe( "evaluate( 'page() ', "+string(dw_1.getrow())+ ") ")
  //注意返回值是STRING型的


10、每15行统计一次

  在 summary 栏中写 ceiling(Getrow()/15)

11、如何判断当前行是不是当前页中的最后一行

  if   dw_1.getrow()=long(dw_1.describe( "datawindow.lastrowonpage "))   then
  else
  end   if
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: