一、 pbr 使用的时机 ?
1 、如果你将 resource 动态的指定给 object 或 control property, 就必须使用 pbr
2 、如果使用 pbr 会降低 exe 档发行时所需要的档案数目
3 、要让许多的应用程序使用共同的 library
二、如何将 bmp,ico,datawindow 资源整合到 pbd 中 ?
使用 pbr( 资源索引档 ) 将其资源整合进入 pbd 档案中 pbr 的语法如下 :
XXXX.PBL
XXXX.BMP
XXXX.ICO
如果你的 script 是如此 p_roller.picturename="c:\rollwe.bmp"
则需将该叙述加入 pbr 中
c:\rollwe.bmp
三、如何将 datawindow 资料更新在多个 table 上 ?
设定及修改 datawindow 的 update table 和 update column 资料
四、错误讯息超过 script 行号 ?
可能忘加入 end if 或 end choose
五、中文字型发生错误 ?
修改 PBTY050.DLL 的拼字错误 , 或到 http://www.eur.com.tw 下载修正程序
六、中英文输入法切换 ?
function boolean ImmSimulateHotKey (UnsignedLong hWnd,
UnsingedLong dwHotKeyID) library "IMM32.dll"
function unsignedlong GetKeyboardLayout (unsignedlongwLayout)library "
user32.dll"
function boolean ImmIsIME(unsignedLong hklKeyboardLayout)library "IMM3
2.DLL"
英文输入法切换
constant int IME_THotKey_IME_NonIME_Toggle=112
uint hklCurrent
unsignedlong hnd
hklCurrent=GetKeyboardLayout(0)
if ImmIsIME(hklCurrent) then
hnd=Handle(parent)
ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle)
end if
中文输入法切换
constant int IME_THotKey_IME_NonIME_Toggle=112
uint hklCurrent
unsignedlong hnd
hklCurrent=GetKeyboardLayout(0)
if not ImmIsIME(hklCurrent) then
hnd=Handle(parent)
ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle)
end if
七、当 datawindow 的 column 在存档后,如果想设计禁止操作者再到该 column 输入
,因该如何设计?
在该 datawindow 的 column 上按右键进入 properties 在 expressions
的 protect 设成 If(isrownew(),0,1) 即可
八、在使用 inherit windows 时,有的 window 的 object 不需要执行祖先 event
中的程序那怎么办?
在 window 的 object 的 event 中,在 design 下拉视窗中,有四个 script 设定其中第三
项 3.override ancestor script 即可关闭祖先的程序,只执行目前的程序
九、 object 的 properties 中的有一个设定 visible 打勾,我因设计需要将打勾取
消使 object 看不见,但现在想使其恢复,该如何作?该 object 己经看不见了
object 在取消 visible 后,如要恢复请下拉 edit 的 control list 将 object 的 pro
perties 拉出设回
十、 PowerBuilder 由版本 5.0 提升至 5.0.03 后,在使用 SQL CENTRAL 工具时,若
希望查看 Stored Procedure ,按右键,选 OPEN ,会出现 " 这个程序执行的作业无效
,即将关闭 " 。
PowerBuilder 5.0.03 中之程序 bug ,请将 Scview.exe 程序档回复。
十一、在程序中如何控制让使用者在输入资料时,能够自动产生连续性的号码 ?
在定义 TABLE 栏位时,其 default 值 ( 最后一栏 ) 设定中有一 autoincrement 选项,即
会自动产生连续的号码。
十二、如何在视窗之间传递叁数 ?
PowerBuilder 提供了三个函数可以达到此功能 :
1.OpenWithParm()
2.OpenSheetWithParm()
3.CloseWithReturn()
当在程序中呼叫了这些函数时,从视窗所传过来的叁数会放在 message 对象中。
可从 message 的属性中取得所要的叁数。
十三、
1<function><window function=""><user function="" object=""> 有何不同 ?
2
3<function>: 是任何 Window 都可以使用
4
5<window function="">: 适用于单一 Window
6
7<user function="" object="">: 适用于单一 Object
8
9十四、如何读取不同 Database 的 Data?
10
111\. 点取 PowerBar 的 Pipline(Painter Bar 的 Pipline)
12
132\. 选择 New
14
153\. 在 Quick Select 下选取 Source Connection 和 Descination Connection
16
174\. 选取 Tables 和 Columns
18
19十五、何谓汇入 (Import) 汇出 (Export)? 如何汇入及汇出 ?
20
211\. 汇入 (Import) 汇出 (Export):
22
23Import 用于使 Power Builder 能读取其它软体的资料, Export 则正好相反
24
252\. 如何汇入及汇出 :
26
27从 Rows 菜单中选择 Import ,出现 Select import file 视窗 ; 指定要汇入的资料所
28
29在的档案名称,再选择 Ok!
30
31十六、 <primary buffer=""><filter buffer=""><delete buffer=""> 三者的差异 ?
32
33<primary buffer="">: 存放使用者可以看到的资料列
34
35<filter buffer="">: 存放在资料视窗中滤掉的资料列
36
37<delete buffer="">: 存放被使用者透过程序码删除的资料列
38
39如果我们为该资料视窗定义了 Filter ,则被过滤掉的资料被转存放在 Filter Buf
40
41fer 中,使用者不能再对这些资料进行修改,当资料被重新存入资料库其馀的资料
42
43保持不变,在刚开始时,先滤除不合格的资料外,其馀的资料都被存放到 Primar
44
45y Buffer 中,使用者透过资料视窗控制件提供的一些 Function 可以对 Primary Bu
46
47ffer 中的资料进行动作,如果某列资料被删掉了,它就从 Primary Buffer 移至 D
48
49elete Buffer ,使用者就不能在资料视窗中看到它,当呼叫 Update function 时重
50
51新把资料写入资料库时, Primary Buffer 中的资料被写回硬盘,而 Delete Buffe
52
53r 中的资料即被加上删除标记之后放回资料库或者直接被删除。
54
55十七、何谓 Transaction Object?
56
57当 Application 开始执行时,它会 Create 一个 Global Transaction(SQLCA) ,当应
58
59用程序结困时它会自动 Destroy ,一个 Transaction Object 中包括了 :DBMS , Data
60
61Base name , login ID , Password , SQLcode , logpass , servername..... ,程序
62
63和资料库连接之前,必须先将 Transaction object 初使化,如果 application 使
64
65用同一个 DBMS ,而且资料库使用同一 Database name ,则可使用同一个 Transacti
66
67on object ,若在 application 中使用到两个不同的资料库,则需要另一个 Transa
68
69ction object 来存取第二个资料库了。
70
71十八、把 dbfile 转到另一台 pc 时,却发生资料库无法连结的情况该如何解决 ?
72
73先寻找 dblog.exe 这个档案位于何处,再到 dos 模式中切换到该路径,如 :cd\sqla
74
75ny50\win32 ,
76
77执行 dblog-t\path\logfilename \path\dbfilename 。
78
79十九、由于我现在要制作的报表 show 出来的资料长度很短,我希望在同页面上可
80
81以多栏的方式显示结果, pb 的报表功能可以提供此方法吗 ?
82
83在 Data Window 或 <SPAN lang=EN-US style="mso-fa</delete></filter></primary></delete></filter></primary></user></window></function></user></window></function>