VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

有點小繁瑣自製 sql 進度條

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
perry



註冊時間: 2014-07-20
文章: 203


第 1 樓

發表發表於: 星期日 九月 10, 2017 2:54 am    文章主題: 有點小繁瑣自製 sql 進度條 引言回覆

set near on
sele 0
use test orde 1 alia a_1
**
a_kk=截止範圍主鍵值+1
seek a_kk
skip -1
a_recc=recn()
**
sele 0
sele * from a_1 wher 主鍵值欄位#' ' and mylinebr('a_1',主鍵值欄位,a_recc) into curs a_2
brow
use in a_2
use in a_1
****
proc mylinebr
lpar x_alia,x_kk,x_recc
priv o_alia,o_kk,o_recc,o_recn
o_alia=x_alia
o_kk=x_kk
o_recc=x_recc
sele (o_alia)
seek o_kk
o_recn=recno()
wait wind chr(13)+allt(str(o_recn))+'/'+allt(str(o_recc)) nowa noclear
=inkey(.2)
retu .t.
回頂端
檢視會員個人資料 發送私人訊息
perry



註冊時間: 2014-07-20
文章: 203


第 2 樓

發表發表於: 星期二 九月 12, 2017 2:41 pm    文章主題: 引言回覆

經測試在自定函數中直接取 recno() 即可 = ='''
但alia()不是 sele * from xxx 的名稱
sele sql 會自動 use dbf agai 作為過濾用
回頂端
檢視會員個人資料 發送私人訊息
perry



註冊時間: 2014-07-20
文章: 203


第 3 樓

發表發表於: 星期三 九月 13, 2017 12:32 am    文章主題: 引言回覆

代碼:

set near on
set dele on
priv a_1,a_2,a_recc,a_cnt
** 查詢期間 2017/01 ~ 2017/06
sele 0
use test orde idx_1 alia a_1
** inde on tdate tag idx_1
seek '2017/07'
skip -1
a_recc=recno()
a_cnt=0  &&最後資料記錄變數
sele 0
sele * from a_1 wher tdate>='2017/01' and tdate<='2017/06' ;
    and mylinebr(thisform,a_recc,'a_cnt') into curs a_2
go top
brow
use in a_2
use in a_1
retu

代碼:

proc mylinebr
lpar x_thisform,x_recc,x_cnt
priv o_tform_rno,o_recc,o_cnt
o_tform=x_thisform
o_cnt=x_cnt
if vartype(o_tform.mbar1)#'O'
    o_tform.addobject('mbar1','msqlbar1')
endi
o_rno=recn()
if o_rno<&o_cnt
    o_rno=&o_cnt
else
    &o_cnt=o_rno
endi
o_recc=x_recc
if o_rno>o_recc
    o_rno=o_recc
endi
priv o_p
o_p=int(o_rno*100/o_recc)
with o_tform.mbar1
    .label1.caption=allt(str(o_p))+'%'
    .label2.width=o_p*2
    .visible=.t.
    .zorder(0)
endwith
*if &o_rno<o_recc
*    &o_rno=&o_rno+1
*endi
if o_rno=o_recc &&結束時隱藏
    inkey(.2)
    o_tform.mbar1.visible=.f.
else
    inkey(.05)&&測試�[測用
endi
retu .t.

define class msqlbar1 as container
    add object label2 as label
    add object label1 as label
    proc init
        with this
            .visible=.f.
            .specialeffect=1
            .width=208
            .height=font(1,'細明體',12)+8
            .backcolor=rgb(255,248,255)
            .label1.backstyle=0
            .label1.visible=.t.
            .label1.borderstyle=0
            .label1.width=200
            .label1.alignment=2
            .label1.fontname='細明體'
            .label1.fontsize=12
            .label1.caption=''
            .label1.forecolor=rgb(0,0,192)
            .label1.height=.height-2
            .label2.visible=.t.
            .label2.borderstyle=0
            .label2.width=0
            .label2.caption=''
            .label2.height=.height-2
            .label2.backcolor=rgb(255,255,0)
            .label2.backstyle=1
            .label1.left=2
            .label2.left=2
            .label1.top=2
            .label2.top=2
            .top=int((.parent.height-.height)/2)
            .left=int((.parent.width-.width)/2)
        endwith
    endproc
enddefine
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 472
來自: 台南市

第 4 樓

發表發表於: 星期三 九月 13, 2017 12:05 pm    文章主題: 引言回覆

謝謝p 大的程式碼, 這個也很實用呢~~
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作