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

Scan 的問題

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



註冊時間: 2011-01-30
文章: 5


第 1 樓

發表發表於: 星期四 三月 31, 2011 11:52 am    文章主題: Scan 的問題 引言回覆

現有兩個表格, 內容分別是:

表格一:

採購訂單編號 行數 貨號 訂單數量 發票數量

TM01-H0057 001 A 100 未填
TM01-H0057 002 B 200 未填
TM01-H0057 003 C 300 未填
TM01-H0057 004 D 400 未填

表格二

採購發票編號 採購訂單編號 行數 貨號 發票數量

PI01-H0001 TM01-H0057 001 C 200
PI01-H0001 TM01-H0057 002 D 400

我想把表格二的發票數量更新到表格一的發票數量, 所以編寫了以下的程式碼:

USE 表格二 IN 1
INDEX on 採購訂單編號 tag a
USE 表格一 IN 2
INDEX on 採購訂單編號 tag b
SELECT 2
SCAN
select 表格二 seek 表格一.採購訂單編號 if found()
SELECT 表格一 REPLACE 表格一.發票數量 WITH 表格二.發票數量 endif
select 表格一
ENDSCAN
CLOSE all

不過表格一的結果是:

表格一

採購訂單編號 行數 貨號 訂單數量 發票數量

TM01-H0057 001 A 100 200
TM01-H0057 002 B 200 200
TM01-H0057 003 C 300 200
TM01-H0057 004 D 400 200

請問如何才做到以下的結果?

表格一

採購訂單編號 行數 貨號 訂單數量 發票數量

TM01-H0057 001 A 100 0
TM01-H0057 002 B 200 0
TM01-H0057 003 C 300 200
TM01-H0057 004 D 400 400

謝謝各位幫忙. Razz
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 2 樓

發表發表於: 星期四 三月 31, 2011 5:44 pm    文章主題: 引言回覆

代碼:

Use 表格二
Scan
   Update 表格一 Set 表格一.發票數量 = 表格二.發票數量 Where 表格一.採購訂單編號=表格二.採購訂單編號
Endscan
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 3 樓

發表發表於: 星期四 三月 31, 2011 9:15 pm    文章主題: 引言回覆

USE 表格二 IN 1
INDEX on 採購訂單編號 tag a
USE 表格一 IN 2
INDEX on 採購訂單編號 tag b
SELECT 2
SCAN
 select 表格二
  seek 表格一.採購訂單編號
  if found()
   SELECT 表格一
   REPLACE 表格一.發票數量 WITH 表格二.發票數量
  endif
 select 表格一 <==問題就在這裡 跟一開始啟動的TABLE不同一個
ENDSCAN
CLOSE all

看你的文還得重排版.......


養成好習慣 會使你自己減少掉很多抓BUG的時間
IF下一行就先放好
ENDIF

有SCAN 就要這樣
================
Select xxx
scan

select xxx
endscan


如果不懂
找台電腦去安裝.NET
試試看用裡面插入程式段的方法
你就會看到許多"有頭自動長出尾巴"


LiuRambo 在 星期六 四月 09, 2011 11:23 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
richshih



註冊時間: 2007-10-11
文章: 153


第 4 樓

發表發表於: 星期五 四月 01, 2011 2:58 pm    文章主題: 引言回覆

用INDEXSEEK() 就不用一下SELE 1 一下 SELE 2
回頂端
檢視會員個人資料 發送私人訊息
布丁狗



註冊時間: 2011-01-30
文章: 5


第 5 樓

發表發表於: 星期六 四月 02, 2011 10:37 am    文章主題: Scan 的問題 引言回覆

謝謝各位的幫忙, 因為現在沒有地方學 VFP, 就算是書都只買到一本簡體, 唯有一路看書, 一路自已亂打亂撞, 所以請多多指教. Smile
回頂端
檢視會員個人資料 發送私人訊息
heetee



註冊時間: 2010-11-20
文章: 16


第 6 樓

發表發表於: 星期六 四月 02, 2011 4:52 pm    文章主題: 引言回覆

ckp6250那四行應可用
不行嗎???
回頂端
檢視會員個人資料 發送私人訊息
區榮熾



註冊時間: 2005-11-14
文章: 191


第 7 樓

發表發表於: 星期四 四月 07, 2011 9:05 pm    文章主題: Re: Scan 的問題 引言回覆

布丁狗 寫到:
謝謝各位的幫忙, 因為現在沒有地方學 VFP, 就算是書都只買到一本簡體, 唯有一路看書, 一路自已亂打亂撞, 所以請多多指教. :)

給你的建議:

1: 請深入瞭解 Ckp6250 兄的程式碼意思,以後很多的更新都用得上.

2: 請將 LiuRambo 兄的程式碼熟練起來,因是標準的多檔更新程式寫法,比書上

寫的還要簡潔清晰易懂.

經過大家的提示,你的問解決了嗎? .............學習路上是有很多石頭的!
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 8 樓

發表發表於: 星期四 四月 07, 2011 9:37 pm    文章主題: 引言回覆

可惜 VFP 沒有像 Mysql 的語法
不然,一行就搞定了

代碼:

〔Mysql  語法〕
UPDATE 表格一,表格二 SET 表格一.發票數量 = 表格二.發票數量 WHERE 表格一.採購訂單編號=表格二.採購訂單編號


好欣賞這個∼口水都流出來了
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
區榮熾



註冊時間: 2005-11-14
文章: 191


第 9 樓

發表發表於: 星期六 四月 09, 2011 7:55 am    文章主題: 引言回覆

ckp6250 寫到:
可惜 VFP 沒有像 Mysql 的語法
不然,一行就搞定了

代碼:

〔Mysql  語法〕
UPDATE 表格一,表格二 SET 表格一.發票數量 = 表格二.發票數量 WHERE 表格一.採購訂單編號=表格二.採購訂單編號


好欣賞這個∼口水都流出來了


好欣賞這個......我投票贊成
口水都流出來了........有很多比我們擁有的強強強,口水會乾涸啊!
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 10 樓

發表發表於: 星期六 四月 09, 2011 4:57 pm    文章主題: 引言回覆

前端 cursor 操作,VFP 很強,一般 VB , C , Java 等等,根本比不上
後端的資料庫管理功能,VFP也比不上 Mysql 或 MsSql 或 Oracle 等等

所以,最好的方法是,
結合二者,VFP+資料庫
那個部份強的,就用那個部份
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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