pb 笔记2016

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[i] = dw_1.Describe("#"+string(i)+".name")

   str_column_text[i] = dw_1.Describe(str_column[i] + "_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

时间: 2024-10-16 04:21:33

pb 笔记2016的相关文章

php学习笔记2016.1

基本类型    PHP是一种弱类型语言.      PHP类型检查函数   is_bool()    is_integer()  is_double()  is_string()   is_object()  is_array()  is_resource()   is_null()   继承   继承是从一个基类得到一个或多个派生系类的机制.  继承自另一个类的类被称为该类的子类.  子类可以增加父类(也称超类,superclass)之外新的功能,因此子类也被称为扩展.   构造方法和继承  

OC第七天笔记2016年03月22日(周二)A.M

1. 可变字符串 NSMutableString* mstr = [[NSMutableString alloc] initWithCapacity:10]; 增 删 改 替换 //[mstr length] [mstr insertString:@"http://" atIndex:0]; //第一个参数:即将要插入的字符串 //第二个参数:插入的位置(下标) NSLog(@"%@",mstr); //http://www.baidu.com [mstr inse

工作笔记-2016/1/26

今天早上一醒来,忽然想到一个可怕的事情:发现2016年的工作如果还在这个组里,我得担心是否KPI会给C(最差),得担心BOSS是否给穿小鞋. 虽然我知道以自己的能力应对工作是游刃有余的,但是这个想法还是吓坏外了我.然后我忽然又想到,一年里如果是浑浑噩噩的过完,和15年一样,还要继续花很多时间跟踪用户问题,那更是一件非常让人害怕的事情. 那理所当然的就在想,是否可以去做别的?我想了下,可以去另外一个组里做中间件开发,何必为难自己因为KPI什么的操碎了心? 所以我决定年后换组,可以在新的一年里既能学

C++第七天笔记2016年02月24日(周三)A.M

1.    拷贝构造函数:也是构造函数. 2.    拷贝构造的作用: (1). 用一个已经存在的对象创建并初始化新对象. 1 object=another_object; //赋值重载 2 Person object=another_object; //拷贝构造函数. 3 Person object(another_object); //开辟堆空间 1 Person obj; 2 Person* p=new Person(obj); //编辑器会调用拷贝构造函数. delete p; 3. 

C++第六天笔记2016年02月23日(周二)A.M

1.    赋值运算符的重载: 什么情况下需要赋值运算符的重载? 当类中有指向对空间的指针变量时,需要重载赋值运算符以实现深拷贝. 浅拷贝问题: 当类中有指向对空间的指针变量时,前拷贝有可能会导致二次删除或内存泄露问题. 重载赋值操作符分5步:a=a; 1.1  判断是否为自赋值à自赋值则直接跳至第5步. 1.2  删除旧的堆空间(指针指向的旧的堆空间) 1.3  申请新的堆空间 1.4  内容拷贝 1.5  return* this; 浅拷贝: 1 #include <iostream> 2

C++第五天笔记2016年02月22日(周一)P.M

1.    输出运算符重载: 1 #include <iostream> 2 #include"cstring" 3 4 using namespace std; 5 6 class Complex 7 { 8 public: 9 Complex(int r=0,int i=0):_r(r),_i(i){} 10 void print(); 11 friend ostream& operator<<(ostream& out,const Comp

C++第八天笔记2016年02月25日(周四)A.M

1.    继承:一个类A可以继承另一个类B,那么我们称类B为基类(父类),类A为派生类 (子类). 2.    派生类从基类继承了所有成员,除了构造函数.析构函数.=函数. 3.    基类的私有成员,虽然它们也是派生类的私有成员,但是不能在派生类中定义的成员函数访问.这些基类的私有成员只能通过基类的公有成员函数访问. 4.    子类可以自己实现与父类成员函数原型相同(函数名.参数列表)的成员函数,称为覆盖.覆盖是函数重载的特例,覆盖一定是发生在继承的过程中. 在子类中调用被覆盖的父类版本的

C++第七天笔记2016年02月24日(周三)P.M

1.    哪些构造函数支持做类型转换? 传递一个参数就可以被调用的构造函数. 2.    不同函数调用时间分析源码: 1 #include <iostream> 2 using namespace std; 3 4 class Demo{ 5 public: 6 Demo(int n=0):i(n){cout<<"默认构造函数被调用"<<endl;} 7 Demo(const Demo& a) 8 { 9 i=a.i; 10 cout<

C++第二天笔记2016年01月27日(周三)P.M

1.  Point(Point p,int r):p(_p){} 对象p  p.print();//代码复用调用Point中的打印函数 2.  对象成员变量,没有显示使用初始化列表做初始化,编译器依旧会自动调用成员变量所属类中的构造函数(默认构造)对对象成员变量进行初始化. 3.  const: const修饰函数时,只能修饰类的成员函数. const成员函数体内 不能修改成员变量的值 const成员函数体内只能调用const成员函数 const对象只能调用const成员函数 4.  析构函数: