PB中一些技巧

2021-05-24 14:21:03 字數 4568 閱讀 3030

.取資料視窗中可列新的表名。

string

ls_table

ls_table

=dw_1.describe(

"datawindow.updatetable.table")

22.取資料視窗物件中列的名稱及型別

string

ls_cols,ls_types

intli_count,i

li_count

=integer(ls_count)

fori =1

to li_count

ls_cols[i]

=dw_1.describe("#

"+string

(i)+

".name")

ls_types[i]

=dw_1.describe("#

"+string

(i)+

".coltype")

next

23.case(  dealintype  when 

0then rgb(

254,

251,

235)  when 

2then rgb(

254,

251,

235)  else rgb(0,

0,255))

寫道欄位的protect中不僅僅是顏色改變的問題看看

24.dw.object.col[n] : 直接獲得資料視窗的col列第n 行的資料。

25.在做資料視窗時,我們有時候希望能夠多一些欄位來作一些特殊的用處,但是在資料視窗中又不能亂加字段,因為已有的字段必須是資料庫中有的或者是他們的組合,呵呵,大家不妨看看這個sql用產生什麼樣的資料視窗

select

colname1,colname2,1,

''from

tablename

是不是多出了兩個欄位阿,乙個是字串字段,乙個是數字字段

別忘了要convert syntax 哦

26.清空陣列

string

a,ba[1]

='1'

;a[1] =

'2';a[1]

='3'

a =b//

即可以清空a

27.只允許修改第n行的name列:

dw_1.modify(

"name.protect = '1 ~t if((getrow()=n),0,1)'")

28.讓run程式和主程式一起關閉:

function

ulong

findwindowa(...)..

"user32.dll

"function

long

setparent(...

"user32.dll

"handle

=findwindowa(nul,win_title)

setparent(handle,handle(w_main))

29.取得某一天以前或以後n天的函式relativedate(date, n)

例:取得當天前10天的日期

relativedate(today(),10)

取得當天後10天的日期

relativedate(today(),-10

)30.不想做排序視窗?呼叫pb自身的好了。

string

ls_null

setnull(ls_null)

dw_1.setsort(ls_null)

dw_1.sort()

31.呼叫pb自身的過濾視窗:

dw_1.setfilter(ls_null)

dw_1.filter()

32.增量輸入定位**或名稱記錄位置:

定義乙個視窗,放乙個sle_1,在它的modify程式中寫:

long

ll_find

string

value0

value0

=sle_1.text

ifnot (isnull(sle_1.text) or sle_1.text=''

) then

ifleft(sle_1.text,1)

='0'

or integer(sle_1.text)

<>

0then

//輸入的為**

ll_find

=jwl_dmxz.dw_1.find(

'dm like "'+

value0+'

%"',1

,jwl_dmxz.dw_1.rowcount())

//jwl_dmxz為主視窗,dm為查詢的欄位名,這裡是**。

else

//輸入的為名稱

ll_find

=jwl_dmxz.dw_1.find(

'mc like "'+

value0+'

%"',1

,jwl_dmxz.dw_1.rowcount())

//end

ifif

ll_find

>

0then

jwl_dmxz.dw_1.scrolltorow(ll_find)

//為了避免首次目標記錄為第一條,無法選中。

ifll_find

=ll_find0 then

jwl_dmxz.dw_1.selectrow(ll_find,

true

)elseif ll_find

<>

ll_find0 then

jwl_dmxz.dw_1.selectrow(ll_find,

true

)jwl_dmxz.dw_1.selectrow(ll_find0,

false

)ll_find0

=ll_find

end

ifend

ifend

if33

.然後在查詢視窗中的timer事件中寫:

timer(

0.05

)sle_1.triggerevent(modified!)

34.判斷計算器是否存在:

string

is_fileexists

boolean is_exists

is_fileexists='

c:/windows/calc.exe

'is_exists

=fileexists(is_fileexists)

ifis_exists then

run(

"c:/windows/calc.exe")

else

messagebox(

"提示資訊",

"本機的windows沒有計算器!

",stopsign!)

end

if35

.得到硬碟序例號

string ls_rootpath, ls_volumnename ,ls_return,softpath

getcurrentdirectorya(

256,softpath)

softpath

=left(softpath,2)

ifsoftpath='

c:'then

ls_rootpath ='

d:'//指定要得到序列號的硬碟,

//一般情況都是c盤,除非你能保證使用者存在其它邏輯盤或物理盤

else

ls_rootpath ='

c:'end

ifls_volumnename

=space(

256)

//分配足夠的空間,下同

ulong lul_volumenamesize

lul_volumenamesize

=256

ulong lul_volumeserialnumber, lul_maximumcomponentlength, lul_filesystemflags

lul_maximumcomponentlength

=256

string ls_filesystemnamebuffer

ls_filesystemnamebuffer

=space(

256)

ulong lul_filesystemnamesize

lul_filesystemnamesize

=256

inti

long

ls_num,ls_gnum,ls_dnumi=

getvolumeinformation(ls_rootpath, ls_volumnename, lul_volumenamesize, lul_volumeserialnumber, lul_maximumcomponentlength, lul_filesystemflags, ls_filesystemnamebuffer, lul_filesystemnamesize)

ls_return

=string

(lul_volumeserialnumber)

return

ls_return

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...

VC中一些控制項的小技巧

1.讓list control有check box 用setextendedstyle方法可以設定,看 clistctrl m listctrl dword dwstyle m listctrl.getstyle dwstyle lvs ex checkboxes m listctrl.setext...

Qt Creator中一些常用小技巧(總結)

參考部落格 以下 摘抄以上大神部落格 1 注釋 常用雙斜槓 是單行注釋,可以多行注釋,其實在qt creator裡面還有一種注釋方式也非常好用,三個斜槓 回車後會自動建立新的一行注釋來,比較方便 2 函式說明 需要寫注釋說明,那這時候可以快速的生成乙個函式說明的注釋格式,在函式名的上一行,輸入 然後...