PB使用

PB使用记录

1.增量编译

系统制作完毕后,如果要求编译成为exe可执行文件,需要新建一个Project,步骤如下:

编译成为exe可执行文件之前要求关闭PB中的所有窗口

(1) 选择File | New命令,在弹出的New对话框中打开Project选项卡,如图1所示。

这里,创建应用程序一般使用前面两个选项Application Wizard和Application,由于Application Wizard是创建应用程序的向导,比较简单,这里主要以Application为例来介绍应用程序的建立。

在这里插入图片描述
图1 选择应用程序类型

(2) 选中Application,单击OK按钮,出现如图2所示的对话框。

在这里插入图片描述
图2 创建应用程序类型

l Executable File Name为应用程序的路径及名称。

注意:以上的路径必须与编程文件在一个路径下。

l Resource File Name为源文件的路径及名称。这里一般不要填写,系统默认当前工程文件。

l Project Build Options为程序编译选项。Rebuild方式有两种,full为完全编译,Incremental为增量编译,即只编译已经修改的pbl。系统默认

l Code Generation Options为编译的方式,如果选中Machine Code则编译成dll方式,否则编译成PowerBuilder自己的PBD方式。系统默认

l Version为编译应用程序的版本,这对应用程序影响不大。系统默认

l library为当前项目包含的库文件pbl,一般要全选。

(3) 按图2所示输入信息。

(4) 保存,命名P_1,与窗口命名规则相似

(5) 保存后单击工具栏上的Deploy图标或者选择Design | Deploy Project命令,编译程序。

2. 常识

null 值与任意字符串连接其结果都为null

select 是结果集,应当将同一sql语句的查询结果作为一个结果集进行操作
在union语句中就是将查询的结果整体进行操作
错误示例:

select distinct nvl(BANK_SERIAL_NO,'不存在'), to_number( TRANS_COST /100 ) into :lsBankSerial,:ldcCost from bank_trade_result
where his_rcpt_no = :lsRcptNo and io_indicator = '0' and TRANS_TYPE ='C'
union 
select distinct nvl(BANK_SERIAL_NO,'不存在'), to_number( TRANS_COST /100 ) into :lsBankSerial,:ldcCost from outpbill.abc_bank_trade
where his_rcpt_no = :lsRcptNo and io_indicator = '0' and TRANS_TYPE in ('micropay','cardpay') ;

正确示例:

```csharp
select a,b into :lsBankSerial,:ldcCost from (
select distinct nvl(BANK_SERIAL_NO,'不存在'), to_number( TRANS_COST /100 )bank_trade_result from
where his_rcpt_no = :lsRcptNo and io_indicator = '0' and TRANS_TYPE ='C'
union 
select distinct nvl(BANK_SERIAL_NO,'不存在'), to_number( TRANS_COST /100 )  from outpbill.abc_bank_trade
where his_rcpt_no = :lsRcptNo and io_indicator = '0' and TRANS_TYPE in ('micropay','cardpay') 
)

3.数据窗口 20200411

背景:需要通过前台界面设置条件对一个数据窗口进行多重条件过滤
(1)获取数据窗口filter信息,两种写法
dw_name.describe(“datawindow.table.filter”)
dw_name.object.datawindow.table.filter

但是不知道为何,如果数据窗口没有设置filter,获取的值是‘?’

(2)多个条件筛选,最开始之定义了一个窗口函数isFIlter用来接收过滤条件,但是测试后发现,条件变换会在窗口函数中叠加,造成filter筛查条件越来越多
解决办法:给每个条件设置了窗体函数,在条件筛选时赋值,最后组成filter语句即可

4.datawindow中列使用dropdowndw 20200413

今天在数据窗口中使用列的dropdowndw 属性来做数据匹配
最开始想多了,以为是做下拉数据窗口,想到获取child等方法,测试数据时本表的数据在dropdowndw 中没有因此会显示本表数据,而不是displaycolumn

参考:
PB数据窗口对象之字段操作

5.grid类型datawindow中列左右移动 20200413

grid 列表类型的数据窗口,列是固定的,如果想要变换位置,需要在preview窗口中拖得列,然后保存

6.在数据窗口对象中实现双击排序 20200413

在Instance Variable 声明:

string is_sortType = ‘D’

在dw_1的doubleclicked()事件:

string ls_colName
ls_colName = string(dwo.name)

if row=0 and this.describe( ls_colName+'.text')<>'!' and this.describe( ls_colName+'.band')='header' then
	ls_colName = left(ls_colName,len(ls_colName)-2)
	if is_sortType = 'D' then
		is_sortType = 'A'
	elseif is_sortType = 'A' then
		is_sortType = 'D' 
	end if
	dw_1.setsort( ls_colName+' '+is_sortType)
	dw_1.sort( )
end if

参考:
PowerBuilder 双击datawindow列标题排序

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值