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

[求助] 有沒有像EXCEL的功能自動計算欄位值?

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



註冊時間: 2004-08-27
文章: 462


第 1 樓

發表發表於: 星期日 十一月 13, 2005 11:53 am    文章主題: 引言回覆

你說的應該是類似browse,windows 就是grid 了
如果在各個欄位的init寫就不符合這句話了(當然副程式是寫在A欄,而不是B欄,C欄,D欄,C欄中)
這樣寫值會改吧,因為到下一欄之前,就再算一次了
我的作法是寫在B,C,D,的INIT,之前就是這麼寫的用於
單位,數量,AMT 的計算
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
enchle



註冊時間: 2005-08-08
文章: 1


第 2 樓

發表發表於: 星期二 十一月 15, 2005 1:08 am    文章主題: 引言回覆

在實務上較少有這樣的需求
VFP也好像沒有這樣的函數可以用
一般還是用REPLACE命令比較多吧!

REPL A欄 WITH B欄+C欄+D欄+C欄 ALL
回頂端
檢視會員個人資料 發送私人訊息
bin1x



註冊時間: 2004-08-27
文章: 462


第 3 樓

發表發表於: 星期二 十一月 15, 2005 10:04 am    文章主題: 引言回覆

代碼:

FUNC BRO_DETI
PARA NIL
PRIV acTABLE,acBOX,acPROC
PRIV cFIELD,cMSG,A1,A2,A3
PRIV cFILE,acVAR,acFVAR
PRIV cTITLE,cSCR,ACTFILE
     acTABLE =   "1、3、[['SALNO'     、'單    號'、1]]"
     acPROC  =   "1、3、[['F10' 、'BRO_SEEK'、' ']]"
     acBOX   =   "4、0、[4、4、18、75]"

     cFIELD =" OUTTYP      :H= '出貨別':R,"+;
             " ITEMNO      :H= '貨品代號':R,"+;
             " ITEMNM      :H= '貨品規格':R,"+;
             " PRICE       :10:H= '單價',"+;
             " QTY         :10:H= '數量':R,"+;
             " TOTPRICE    :H= '總價':W=COMP1(),"+;
             " UNIT        :H= '單位':R"

     cMSG = '<F10> 查詢 ,↑↓ 上下筆,<ESC> 離開'

     cSCR = ''
     =SAVESTAT(@cSCR)
     PUSH KEY CLEAR
     cTITLE = WOUTPUT()

     IF !EMPTY(cTITLE)
        DEACTIVATE WINDOW &cTITLE
     ENDIF

     SELECT TMP3
     SET FILTER TO SALNO = TMP2.SALNO
     SET ORDER TO TAG 1
     GO TOP
     =POP_INQ(acBOX,acTABLE,acPROC,cFIELD,cMSG,'O:決定價格 客戶名稱:'+TMP2.CUSSN )
     DEACTIVATE WINDOWS DETI
     IF  !EMPTY(cTITLE)
         ACTIVATE WINDOW &cTITLE
     ENDIF
     POP KEY
     PRIV ARY1,cSALNO
     DIME ARY1[1]
     cSALNO = TMP2.SALNO
     SELECT SUM(TOTPRICE) FROM TMP3 WHERE SALNO = cSALNO INTO ARRAY ARY1
     SELECT TMP2
     IF COSTTYPE = '1'
        REPLACE SALCOST WITH ROUND(ARY1 * 0.05,0)
     ELSE
        REPLACE SALCOST WITH 0
     ENDIF
     nSALAMT = ARY1
     REPLACE SALAMT WITH ROUND(nSALAMT+SALCOST,0)
     =RESTSTAT(@cSCR)
RETU

FUNC COMP1
     REPLACE TOTPRICE WITH ROUND(PRICE*QTY,0)
RETU



就是這樣了

w 就是當 init 來用,會在進入totprice 之前作運算
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
catjoke



註冊時間: 2003-06-16
文章: 175
來自: 香港

第 4 樓

發表發表於: 星期三 十一月 16, 2005 12:29 pm    文章主題: 引言回覆

Grid 已經可以了!

grid.column1.controlsource 設定為:

=MyTable.Myfield1+myTable.myField2+....

* 然後在 grid.afterrowcolumnchange 加一句:
this.refresh && 便可~

_________________
喵喎~ 貓當然是 "茅" 的嘛! ^0^;
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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