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

如何產生3碼流水號?

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



註冊時間: 2008-12-30
文章: 26


第 1 樓

發表發表於: 星期四 十二月 25, 2014 11:03 am    文章主題: 如何產生3碼流水號? 引言回覆

需求如下:

可自動+1
如果001-999用完
可接下來自動產生 A00-A99,B00-B99...Z00-Z99
到Z99時,提示:已到最大號!
請問:使用VFP 應該如何寫此函數?
回頂端
檢視會員個人資料 發送私人訊息
asd89839032



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


第 2 樓

發表發表於: 星期四 十二月 25, 2014 12:11 pm    文章主題: 引言回覆

代碼:

lcstring = thisform.text1.Value
IF right(lcstring,2) = "99"
   DO CASE
    CASE LEFT(lcstring,1) = "Z"
       MESSAGEBOX("")
       RETURN
    CASE LEFT(lcstring,1) = "9"
       lcfirst = "A"
   OTHERWISE
       lcfirst = CHR(ASC(LEFT(lcstring,1))+1)
   ENDCASE
   lcstringNext = lcfirst + "01"
ELSE
   lcstringNext = LEFT(lcstring,1) + PADL(ALLTRIM(STR(VAL(RIGHT(lcstring,2))+1,2)),2,"0")
ENDIF
thisform.text1.Value = lcstringNext

試看看,不保證沒問題~

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



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


第 3 樓

發表發表於: 星期四 十二月 25, 2014 12:13 pm    文章主題: 引言回覆

Asc()
全改為文字格式,0-9,接著跳abc,zzz才是最大啊,
**urcode
Code1=substr(urcode,1,1)
Code2=substr(urcode,2,1)
Code3=substr(urcode,3,1)
nasc3=asc(code3)+1

If nasc3=58. *Nascent*>9
Nasc3=65 *跳到a
Endif
If nasc=91 *>z
Nasc=48
Nasc2=nasc2+1
Endif
.......大概如此,最後把3個加起來。
回頂端
檢視會員個人資料 發送私人訊息
cdy



註冊時間: 2008-12-30
文章: 26


第 4 樓

發表發表於: 星期四 十二月 25, 2014 6:30 pm    文章主題: 謝 引言回覆

asd89839032 大大的程式可行!謝謝
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 5 樓

發表發表於: 星期四 十二月 25, 2014 10:50 pm    文章主題: 引言回覆

代碼:
Clear
lcStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
For lnJ=1 To Len(lcStr)
    For lnI=0 To 99
        ? Substr(lcStr,lnJ,1)+Padl(lnI,2,"0")
    EndFor
EndFor
回頂端
檢視會員個人資料 發送私人訊息
bx1166



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


第 6 樓

發表發表於: 星期五 十二月 26, 2014 8:05 am    文章主題: 引言回覆

這個精簡,很棒!
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 3826
來自: Taipei,Taiwan

第 7 樓

發表發表於: 星期五 十二月 26, 2014 10:07 am    文章主題: 引言回覆

我也覺得5樓很巧妙. ^.^=b

我自己做的與5樓接近,
也是分成兩區,
但比較傳統,就是分成 <=9, >9 兩區處理,
這樣後人比較好整理.


----
樓主應該先想想怎麼做再伸手比較好.
看到這類的,我都先跳過.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
foxy



註冊時間: 2007-08-16
文章: 135
來自: 泰國

第 8 樓

發表發表於: 星期五 十二月 26, 2014 6:54 pm    文章主題: 引言回覆

代碼:

For m.lnAsc=65 TO 90 && A-Z
    m.lcPrefix=chr(m.lnAsc)
   For m.lnNumber=0 TO 99
       m.lcPostfix=PADL(ALLT(str(m.lnNumber,2,0)),2,'0')
       m.lcResult=m.lcPrefix+m.lcPostFix
      ?m.lcResult
     IF m.lcResult='Z99'
        MESSAGEBOX('Max number reached')
     ENDIF
   ENFOR
ENFOR

_________________
提供庫存軟體+會計+POS(店面零售)+員工出勤和薪資, 四合一, 從業務資料自動拋會計傳票.
介面為VFP9, 資料庫可用DBF或SQL Server.
有正體中文,簡體中文,英文,日文,泰文,緬甸文.
任意三種文字可同時顯示輸入列印.

軟體的 source code 銷售中
加LNE: mike-lm


foxy 在 星期五 十二月 26, 2014 7:10 pm 作了第 2 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
foxy



註冊時間: 2007-08-16
文章: 135
來自: 泰國

第 9 樓

發表發表於: 星期五 十二月 26, 2014 7:06 pm    文章主題: 引言回覆

代碼:


CREATE CURSOR m1 (c1 C(1))
For m.lnAsc=65 TO 90 && A-Z
     INSERT INTO M1 (C1) VALUES (CHR(m.lnAsc))
ENDFOR

CREATE CURSOR m2 (c1 C(1))
For m.lnNow=0 TO 9     
      INSERT INTO M2 (c1) VALUES (allt(str(m.lnNow,1,0)))
ENDFOR

SELECT * FROM M2 INTO CURSOR M3

SELECT M1.C1+M2.C1+M3.C1 AS myNo;
FROM M1 INNER JOIN M2;
ON .T.;
INNER JOIN M3;
ON .T.;
INTO CURSOR myResult

SCAN
      ? myNo
ENDSCAN

WAIT WINDOW 'max no. reached'

_________________
提供庫存軟體+會計+POS(店面零售)+員工出勤和薪資, 四合一, 從業務資料自動拋會計傳票.
介面為VFP9, 資料庫可用DBF或SQL Server.
有正體中文,簡體中文,英文,日文,泰文,緬甸文.
任意三種文字可同時顯示輸入列印.

軟體的 source code 銷售中
加LNE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
lygcw9603



註冊時間: 2011-12-25
文章: 78


第 10 樓

發表發表於: 星期六 十二月 27, 2014 10:48 am    文章主題: 引言回覆

代碼:
代是否精,不是主要的,代葸行效率才是主要的
回頂端
檢視會員個人資料 發送私人訊息
kalok



註冊時間: 2010-08-26
文章: 247


第 11 樓

發表發表於: 星期一 五月 11, 2015 7:24 am    文章主題: 引言回覆

對我來說, 不是做導向飛彈程式, 代碼執行效率不是最主要, 最重要是靈活更改
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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