?? pb問題解答集錦.txt
字號:
PB問題解答集錦
--------------------------------------------------------------------------------
第八軍團(tuán) 時(shí)間:2003-12-8 18:10:03
一、pbr使用的時(shí)機(jī)?
1、如果你將resource動(dòng)態(tài)的指定給object或control property,就必須使用pbr
2、如果使用pbr會(huì)降低exe檔發(fā)行時(shí)所需要的檔案數(shù)目
3、要讓許多的應(yīng)用程式使用共同的library
二、如何將bmp,ico,datawindow資源整合到pbd中?
使用pbr(資源索引檔)將其資源整合進(jìn)入pbd檔案中pbr的語法如下:
XXXX.PBL
XXXX.BMP
XXXX.ICO
如果你的script是如此p_roller.picturename="c:\rollwe.bmp"
則需將該敘述加入pbr中
c:\rollwe.bmp
三、如何將datawindow資料更新在多個(gè)table上?
設(shè)定及修改datawindow的update table和update column資料
四、錯(cuò)誤訊息超過script行號?
可能忘加入end if 或end choose
五、中文字型發(fā)生錯(cuò)誤?
修改PBTY050.DLL的拼字錯(cuò)誤,或到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
七、當(dāng)datawindow的column在存檔後,如果想設(shè)計(jì)禁止操作者再到該column輸入
,因該如何設(shè)計(jì)?
在該datawindow的column上按右鍵進(jìn)入properties在expressions
的protect設(shè)成 If(isrownew(),0,1)即可
八、在使用inherit windows時(shí),有的window的object不需要執(zhí)行祖先event
中的程式那怎麼辦?
在window的object的event中,在design下拉視窗中,有四個(gè)script設(shè)定其中第三
項(xiàng)3.override ancestor script 即可關(guān)閉祖先的程式,只執(zhí)行目前的程式
九、object的properties中的有一個(gè)設(shè)定visible 打勾,我因設(shè)計(jì)需要將打勾取
消使object 看不見,但現(xiàn)在想使其恢復(fù),該如何作?該object己經(jīng)看不見了
object 在取消visible後,如要恢復(fù)請下拉edit的control list將object 的pro
perties拉出設(shè)回
十、PowerBuilder 由版本5.0提升至5.0.03後,在使用SQL CENTRAL 工具時(shí),若
希望查看Stored Procedure,按右鍵,選OPEN,會(huì)出現(xiàn)"這個(gè)程式執(zhí)行的作業(yè)無效
,即將關(guān)閉"。
PowerBuilder 5.0.03中之程式bug,請將Scview.exe程式檔回覆。
十一、在程式中如何控制讓使用者在輸入資料時(shí),能夠自動(dòng)產(chǎn)生連續(xù)性的號碼?
在定義TABLE欄位時(shí),其default值(最後一欄)設(shè)定中有一autoincrement選項(xiàng),即
會(huì)自動(dòng)產(chǎn)生連續(xù)的號碼。
十二、如何在視窗之間傳遞叁數(shù)?
PowerBuilder提供了三個(gè)函數(shù)可以達(dá)到此功能:
1.OpenWithParm()
2.OpenSheetWithParm()
3.CloseWithReturn()
當(dāng)在程式中呼叫了這些函數(shù)時(shí),從視窗所傳過來的叁數(shù)會(huì)放在message物件中。
可從message的屬性中取得所要的叁數(shù)。
十三、有何不同?
:是任何Window 都可以使用
:適用於單一Window
:適用於單一Object
十四、如何讀取不同Database的Data?
1.點(diǎn)取PowerBar的Pipline(Painter Bar的Pipline)
2.選擇New
3.在Quick Select下選取Source Connection和Descination Connection
4.選取Tables和Columns
十五、何謂匯入(Import)匯出(Export)?如何匯入及匯出?
1.匯入(Import)匯出(Export):
Import用於使Power Builder能讀取其他軟體的資料,Export則正好相反
2.如何匯入及匯出:
從Rows功能表中選擇Import,出現(xiàn)Select import file視窗;指定要匯入的資料所
在的檔案名稱,再選擇Ok!
十六、三者的差異?
:存放使用者可以看到的資料列
:存放在資料視窗中濾掉的資料列
:存放被使用者透過程式碼刪除的資料列
如果我們?yōu)樵撡Y料視窗定義了Filter,則被過濾掉的資料被轉(zhuǎn)存放在Filter Buf
fer中,使用者不能再對這些資料進(jìn)行修改,當(dāng)資料被重新存入資料庫其馀的資料
保持不變,在剛開始時(shí),先濾除不合格的資料外,其馀的資料都被存放到Primar
y Buffer中,使用者透過資料視窗控制件提供的一些Function可以對Primary Bu
ffer中的資料進(jìn)行動(dòng)作,如果某列資料被刪掉了,它就從Primary Buffer 移至D
elete Buffer,使用者就不能在資料視窗中看到它,當(dāng)呼叫Update function時(shí)重
新把資料寫入資料庫時(shí),Primary Buffer中的資料被寫回硬碟,而Delete Buffe
r中的資料即被加上刪除標(biāo)記之後放回資料庫或者直接被刪除。
十七、何謂Transaction Object?
當(dāng)Application開始執(zhí)行時(shí),它會(huì)Create一個(gè)Global Transaction(SQLCA),當(dāng)應(yīng)
用程式結(jié)困時(shí)它會(huì)自動(dòng)Destroy,一個(gè)Transaction Object中包括了:DBMS,Data
Base name,login ID,Password,SQLcode,logpass,servername.....,程式
和資料庫連接之前,必須先將Transaction object 初使化,如果application使
用同一個(gè)DBMS,而且資料庫使用同一Database name,則可使用同一個(gè)Transacti
on object,若在application中使用到兩個(gè)不同的資料庫,則需要另一個(gè)Transa
ction object來存取第二個(gè)資料庫了。
十八、把dbfile轉(zhuǎn)到另一臺pc時(shí),卻發(fā)生資料庫無法連結(jié)的情況該如何解決?
先尋找dblog.exe這個(gè)檔案位於何處,再到dos模式中切換到該路徑,如:cd\sqla
ny50\win32,
執(zhí)行dblog-t\path\logfilename \path\dbfilename。
十九、由於我現(xiàn)在要制作的報(bào)表show出來的資料長度很短,我希望在同頁面上可
以多欄的方式顯示結(jié)果,pb的報(bào)表功能可以提供此方法嗎?
在Data Window或Report中Edit\Properties\Print Specification中設(shè)定即可最
下方有Newspaper Columns,即是設(shè)定顯示的欄位數(shù)及欄位寬度。
二十、如何在Grid型態(tài)的Data Window及Report中加上標(biāo)題而不出現(xiàn)格線?
在Header區(qū)域,先加上一個(gè)「text object」,在其Properties中,到Position\
Layer選「Forground」,再到Font\Background,指定為白色(或其它顏色,非Tr
ansparent即可),此text object即成為可移動(dòng)及可調(diào)整大小的,只要把拉開到足
以填滿整個(gè)Header的區(qū)域即可。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -