 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
狼人
註冊時間: 2004-04-23 文章: 37
第 1 樓
|
發表於: 星期三 四月 28, 2004 12:06 pm 文章主題: 緊急求援:I0404001為單號,輸入下一個單號時自動變為I0404002,I04 |
|
|
緊急求援:I0404001為單號,輸入下一個單號時自動變為I0404002,I0404003等
I永遠不變,第一個04為年份,另一個04為月份,001為順序號
以后新增單號時,只要年份月份不變,就依順序號排列.
年份月份變化,則將第2-5位依年份月份變化,順序號從001開始. |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 2 樓
|
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 3 樓
|
發表於: 星期三 四月 28, 2004 12:32 pm 文章主題: |
|
|
我記得網站裡面好像已經有類似的東西了...狼人...你可以搜尋看看...
我習慣適用一個單號記錄檔記錄(SNO.DBF)
SNO.DBF
SNO01 C.10 PK
SNO02 N.08.0 (OR 使用 INT)
INDEX NAME:SNO KEY:SNO01
-----------------------------------------------------------
USE SNO ALIAS SNO IN 0 ORDER SNO
cNO = "I" + SUBSTR(DTOS(DATE()),3,4)
SELE SNO
SEEK cNO
IF FOUND()
REPL SNO02 WITH SNO.SNO02 + 1
ELSE
APPEND BLANK
REPL SNO01 WITH cNO
REPL SNO02 WITH 1
ENDIF
c單號 = cNO + RIGHT(STR(SNO.SNO02+1000,4),3)
-----------------------------------------------------------
大約是這樣...我沒測試過...狼人..你斟酌修改使用
注意工作區、索引、Share或EXCLUSIVE的問題
可以的話...變成函數使用
(我自己是配合公司軟體的環境變成函數在使用 )
試得如何...記得告訴我 _________________ 用力 Try 一下...可以發現很多好玩的事.... |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 4 樓
|
|
回頂端 |
|
 |
狼人
註冊時間: 2004-04-23 文章: 37
第 5 樓
|
發表於: 星期三 四月 28, 2004 3:17 pm 文章主題: |
|
|
煩請看我寫的在什麼問題?
SELECT * from invoice_main WHERE YEAR(invoice_main.date)=YEAR(DATE()) AND MONTH(invoice_main.date)=MONTH(DATE()) ORDER BY invoice_main.no INTO CURSOR tmp1
SELECT tmp1
IF _tally >0
SELECT tmp1
GOTO BOTTOM
s=tmp1.no
s=VAL(SUBSTR(s,6,3))
s=1000+s
s=SUBSTR(STR(s),2,4)
a='I'+SUBSTR(dtos(DATE()),3,4)
c=a+s
thisform.text1.Value=c
ELSE
a=SUBSTR(STR(YEAR(DATE())),3,2)
b=STR(MONTH(DATE()))
IF LEN(b)=1
b='0'+b
ENDIF
c='I'+a+b+'001'
thisform.text1.Value=c
ENDIF |
|
回頂端 |
|
 |
Mibh
註冊時間: 2004-02-21 文章: 19
第 6 樓
|
發表於: 星期三 四月 28, 2004 4:51 pm 文章主題: |
|
|
這是我在我系統中的用法,參考看看
fieldname:欄位名稱
tablename:資料表名稱
function keyno(fieldname,tablename)
Select MAX(&fieldname) as maxkey FROM &tablename WHERE left(&fieldname,5)="I"+left(dtos(date()),4) into cursor tmp1
If _tally>0
syskey=alltrim(str(val(right(tmp1.maxkey,3))+1))
Do case
Case len(syskey)=1
syskey="I"+left(dtos(date()),4)+"00"+syskey
Case len(syskey)=2
syskey="I"+left(dtos(date()),4)+"0"+syskey
Case len(syskey)=3
syskey="I"+left(dtos(date()),4)+syskey
Endcase
Else
syskey="I"+left(dtos(date()),4)+"001"
Endif
return syskey
endfunc |
|
回頂端 |
|
 |
狼人
註冊時間: 2004-04-23 文章: 37
第 7 樓
|
發表於: 星期三 四月 28, 2004 5:09 pm 文章主題: |
|
|
thanks, 另外問你一個很笨的question:
combo控件放在一個表單中,設什麼屬性可使表單
運行時combo控件里就顯示一個值.(eg:123,abx)
不要笑? |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 8 樓
|
發表於: 星期三 四月 28, 2004 5:27 pm 文章主題: |
|
|
代碼: | **************************************************
*-- Form: form1 (d:\form1.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 04/28/04 05:23:14 PM
*
DEFINE CLASS form1 AS form
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
ADD OBJECT combo1 AS combobox WITH ;
RowSourceType = 1, ;
RowSource = "1,2,3,4,5", ;
Height = 24, ;
Left = 132, ;
Top = 192, ;
Width = 145, ;
Name = "Combo1"
ENDDEFINE
*
*-- EndDefine: form1
************************************************** |
其餘詳見 書籍整理--初學者入門
http://vfp.sunyear.com.tw/viewtopic.php?t=451 _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
狼人
註冊時間: 2004-04-23 文章: 37
第 9 樓
|
發表於: 星期三 四月 28, 2004 5:44 pm 文章主題: |
|
|
運行時combo1控件會顯示空白,我希望能顯示一個值. |
|
回頂端 |
|
 |
freedom
註冊時間: 2004-05-09 文章: 11
第 10 樓
|
發表於: 星期五 五月 14, 2004 4:44 pm 文章主題: |
|
|
请参考:thisform.combo1.displayvalue="123,abc" _________________ 版权所有,翻版不究! |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|