.取資料視窗中可列新的表名。
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 函式說明 需要寫注釋說明,那這時候可以快速的生成乙個函式說明的注釋格式,在函式名的上一行,輸入 然後...