PB技巧总结

row changed between retrieve and update

在数据窗口的update properties没问题时,注意多数据窗口update的写法。

dw_1.update.(true,false):update()->resetupdate()->commit,避免把resetupdate和commit写到两处。

dropdowndwdisplay

dw_1.describe("evaluate('lookupdisplay(tybq)', " + string(i) + ")")

Importstring和rowscopy

 

ls_data = dw_1.object.datawindow.data    dw_1.importstring(ls_data),如果ls_data中有tab符,就会报错,而rowscopy不会。

PB + Oracle精简客户端

设置path、tns_admin和nls_lang环境变量

EDITMASK

对于没有数据源的数据窗口中数值类型的列的EDIT属性可以设置成EDITMASK,这样就自动给空值填0了。

itemchangeditemerror

dropdowndw类型列,输入拼音,而列本身是数值类型,故itemchanged返回值为2(不接受拼音,在事件中重新赋值)。但有些数据窗口是继承的,可能在keyenter事件中写了改变焦点的代码而触发了itemerror,故输入拼音就被itemerror拒绝了,所以对于此类继承的数据窗口需在itemerror事件中写此列的例外(itemerror返回2强制接收输入的拼音),注意去掉继承父类的Extend ancestor script勾选。

Grid类型数据窗口

调整列顺序勾选"column moving","mouse selection";调整文本框位置需改position中的layer属性。

窗口函数的POST

this.function post wf_resize()

pb编译exe

(不编译pbd时),需要将动态赋值的dataobject写到资源文件pbr中。

调试过程中,add watch

可以手工填写要获取的数据窗口信息。

Getfullstate、setfullstate。select into后和变量名之间要有空格。

Datawindow error显示SQL中的具体参数值

修改sqlca.dbparm增加DisableBind=1

Response窗口

Response窗口打开时,注意指定父窗口。如果是从菜单打开response窗口,没有父窗口,就限制不住了。open(w_child,w_main)

数据窗口粘贴不上内容

考虑列的长度,或者列的显示长度是否不够。

数据窗口中计算域调用PB的函数

如果函数中有查库操作,注意效率。

Grid类型数据窗口不打印边框

空白处general属性,display选择off(1)

第三方DLL

第三方dll函数的参数中如果包含长字符串,调用前先space分配空间,防止PB崩溃。

数据窗口设置滚动条分割

//分隔

string ls_location

ls_location = dw_property.object.drug_property_dict_property_1.x

dw_property.Object.datawindow.horizontalscrollsplit = ls_location

报用户对象的实例变量无法解决 unresolvable external 变量名

用户对象的实例变量名和应用程序的全局变量名冲突。

复制整列

Dw_1.object.col1.primary = dw2.object.col2.primary

调试时跟踪变量的值

Add watch列表中右键,选择break on change

获取内存中某地址的字符串值

 ls_tmp =string(地址,"Address")

手动触发doubleclicked事件

dw_1.event doubleclicked(0,0,dw_1.GetRow(),dw_1.object.#1)

//pb未公开的函数

dwobject adwo,adwo2

adwo2=this.object

adwo=adwo2.__get_attribute('col1',false)

this.event doubleclicked( 1,1,1,adwo)

字符串赋值时

内容注意避免~,包含转义字符会出错。

Reference和value参数

数据窗口直接用value就行,reference会导致调试崩溃。

数据窗口动态调整行高

勾选行的autosize height属性,如果行高初始值大(如画调查表类数据窗口),可先将detail的height改为0,这样会触发大小调整。

WEB

http请求

  1. 发送http请求时,posturl在url参数中不能传递?以后的参数,需使用OLE控件Microsoft.XMLHttp来发送请求。可以使用fiddler工具来监控请求的报文格式。
  2. 调用服务的方法

pb自带soap模版,inet和internetresult进行posturl,ole调用http组件,ole调用pocketsoap。java服务用后三种方法搭配soapui工具

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值