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

懇求各位高手賜教!
前往頁面 1, 2, 3  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sthuang66



註冊時間: 2014-04-27
文章: 166


第 1 樓

發表發表於: 星期二 四月 07, 2015 12:59 am    文章主題: 懇求各位高手賜教! 引言回覆

這半年認真的自修學習了VFP一點皮毛!公司是使用VFP去開發的軟體!目前想要把輸出部分自己稍加修改符合自己的需求!以下是擷取幾筆資料庫內容來繼續討論
------------------------------------------------------------------------------
(ID) ( name) (Se_no) (Date) (type) (item) (lo) (no)
02481 Mary 0001 1040403 3 O2 aa 1 ->第1筆
02481 Mary 0001 1040403 3 O2 bb 1 ->第2筆
02481 Mary 0001 1040403 3 O2 aa 1 ->第3筆
02481 Mary 0001 1040403 3 O3 bb 1 ->第4筆
02481 Mary 0001 1040403 C O2 aa -1 ->第5筆
02481 Mary 0001 1040403 C O2 bb -1 ->第6筆
02168 Helen 0001 1040403 3 O3 cc 1
02168 Helen 0001 1040403 3 O1 dd 1
03048 Tracy 0011 1040403 3 SS FM 1
04307 John 0038 1040403 3 EE aa 1
---------------------------------------------------------------------------------
當使用公司軟體介面輸入第一筆與第二筆資料後發現錯誤再更改成第三筆與第四筆資料此時會自動產生負值的第五筆和第六筆!我能理解這是當初軟體開發者想要把所有操作紀錄都留下來的設計!
只是目前我想要的資料是第三筆與第四筆資料!可能我不是科班出身功力太差!想破頭搞不定
1.若是 sele * where type ='3' into table a ->會多第一筆與第二筆
2.我目前SQL部分學習較多!所以沒有能力去想用純粹VFP語法部分,若是各位高手有使用傳統VFP語法!我會試著去學習!感恩不盡
回頂端
檢視會員個人資料 發送私人訊息
asd89839032



註冊時間: 2012-10-15
文章: 49


第 2 樓

發表發表於: 星期二 四月 07, 2015 9:33 am    文章主題: 引言回覆

弱弱的問,12和34完全一樣......
是正常的嗎?
完全一樣依我這懶鬼的性格會加上一個新欄位來註解讓他們不太一樣........

_________________
菜鳥路過...
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 166


第 3 樓

發表發表於: 星期二 四月 07, 2015 11:03 am    文章主題: 引言回覆

第二筆和第四筆是不同的!第一筆和第三筆的確是相同!!因為是用廠商寫好的程式把兩筆訂單輸入,發現第二筆弄錯再更正,此時並不是update
而是多寫入第五筆卻抵銷第一筆,第六筆抵銷第二筆=>這是我目前的觀察
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 4 樓

發表發表於: 星期二 四月 07, 2015 11:12 am    文章主題: 引言回覆

看來這個程式是以no那一欗的値當作紀錄以負値去抵消正值的,相當於添加後不修改而是自動加一筆負値的來修正

那個no是否代表數量?

找到相對應的意義才能決定怎麼辦
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 5 樓

發表發表於: 星期二 四月 07, 2015 11:49 am    文章主題: 引言回覆

引言回覆:
這半年真的自修學習了VFP一點皮毛!


如果您只開始了半年,
實在想勸您不要再花時間在vfp上頭
把資料留著,用您熟悉的工具重新開發
會比目前狀況為佳
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
yctsai



註冊時間: 2003-04-11
文章: 179


第 6 樓

發表發表於: 星期二 四月 07, 2015 1:11 pm    文章主題: 引言回覆

1.用VFP也很好啊
2.也許要順當初軟體開發者的思維
a:
先找有修改的
select * from x where type='C' into cursor y
再找對應的1,2筆
select * from x where id+... IN (select id+... from cursor y) into cursor z
過慮1,2筆
select * from x where id+... NOT IN (select id+... from cursor z) into cursor 結果

b.
不管type,直接sum起來正負相抵
select id,name,..,sum(no) from x group by id,name,... into cursor 結果
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 7 樓

發表發表於: 星期二 四月 07, 2015 3:47 pm    文章主題: 引言回覆

yctsai 寫到:
1.用VFP也很好啊

對於VFP用了十幾廿年的老手來說,基於一動不如一靜,當然繼續用。
但樓主才剛起步半年,實在不忍心看他把精力耗在這個沒有未來的東西上,
不免多嘴幾句。
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
elleryq



註冊時間: 2007-06-21
文章: 768


第 8 樓

發表發表於: 星期二 四月 07, 2015 11:32 pm    文章主題: 引言回覆

有設定這個??
set deleted on
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
sthuang66



註冊時間: 2014-04-27
文章: 166


第 9 樓

發表發表於: 星期三 四月 08, 2015 11:36 am    文章主題: 引言回覆

謝謝各位的幫助!感激不盡!
NO 是數量沒錯
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 10 樓

發表發表於: 星期三 四月 08, 2015 12:20 pm    文章主題: 引言回覆

用庫存的概念就像是某人領了一件物品沒用又交回存庫
你要的是排除掉那些又進又出的紀錄嗎?
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 166


第 11 樓

發表發表於: 星期三 四月 08, 2015 5:47 pm    文章主題: 引言回覆

是的!我猜原始設計者是想了解訂單資料備存取的紀錄!才用此方式來紀錄
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 12 樓

發表發表於: 星期三 四月 08, 2015 6:16 pm    文章主題: 引言回覆

程式概念大概是這樣子
把這個檔案複製到另外一個檔案
開啓這個新複製的檔案
把type='c'的又複製到第三個檔案,同時刪除這個檔案裡面所有type c的資料
再以第三個檔案為基礎
將此檔案裡面同個日期,,item,no 的找出來,一一刪除,剩下的就是你要的
概念轉換成程式就比較簡單了
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 13 樓

發表發表於: 星期三 四月 08, 2015 6:20 pm    文章主題: 引言回覆

我個人比較喜歡偷偷的紀錄這樣一類的進出,放在另外一個單獨的檔案裡,
當另外稽查用,這樣一來庫存會比較清晣
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 166


第 14 樓

發表發表於: 星期三 四月 08, 2015 10:33 pm    文章主題: 引言回覆

我按照各位意見,寫的如下
select * from x where type='C' into table y
select * from x where id+name+se_no+date+item+lo IN (select id+name+se_no+date+item+lo from y) into table z
select * from x where id+name+se_no+date+item+lo NOT IN (select id+name+se_no+date+item+lo from z) into table zz
--------------------------------------------------------------------------------
這樣執行後會少掉第三筆資料!
公司程式是在介面keyin完會建入第一和第二筆!若是發現第二筆在lo欄位有錯時更正
會建入第三和第四筆!基本上第一筆都沒有更改!但是他系統在資料庫會自動產生第五筆去抵銷第一筆,第六筆去抵銷第二筆!第五和第一兩者差別在TYPE與no!要去抵銷的兩筆是type="c",no是負值!!
DBF去看是有六筆資料,但是若是用公司廠商寫的程式就只會呈現第三和第四筆
我大概知道我的方法有錯!因為這樣SQL程序會把沒有更改的訂單去掉!但是我想不出有什麼辦法可以正負去抵銷!
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 15 樓

發表發表於: 星期三 四月 08, 2015 11:03 pm    文章主題: 引言回覆

Sele 1
original.dbf
Copy to tempfile
Sele 1
Use tempfile
Copy to mtemp for type='C'
Dele for type='C'
Pack
Sele 2
Use mtemp
Go top &&for scan
Do while .not. Eof()
Sele 1
Locate for date=b.date .and. Item=b.item .and. No=(0-b.no) .and. (.not. Deleted())
If .not. Eof()
Dele
End if
Sele 2
Skip
End do
Sele 1
Pack
Brow
存成org
Run 這個prg

這樣看看結果對不對跑跑看


bx1166 在 星期五 四月 10, 2015 5:32 pm 作了第 4 次修改
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2, 3  下一頁
1頁(共3頁)

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


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