有人可以幫忙,尋找唯一的隨機生成的數字。 當前有4個酒吧,如果數據超過4個酒吧,則需要隨機選擇酒吧並將該值放到Pub1 Pub2 Pub3和Pub4字段中。通過使用FoxPro找不到解決方案。FoxPro唯一隨機數
SELE A
USE TEST
REPL PUB1 WITH "" ALL
REPL PUB2 WITH "" ALL
REPL PUB3 WITH "" ALL
REPL PUB4 WITH "" ALL
REPL RANDOM1 WITH "" ALL
REPL RANDOM2 WITH "" ALL
REPL RANDOM3 WITH "" ALL
REPL RANDOM4 WITH "" ALL
REPL RANDOMLOG WITH "" ALL
SELE B
USE WHATPUB
SELE A
GO TOP
DO WHILE !EOF()
cBRANCH=BRANCH
SELE B
SET FILTER TO BRANCH=cBRANCH
COUN TO nBRANCHQTY
IF nBRANCHQTY<=4
FOR loop=1 TO nBRANCHQTY
SELE B
LOCA FOR loop=FT_URN
IF FOUND()
cPUBID=PUBID
SELE A
cFLD1="PUB"+LTRIM(STR(loop))
REPL (cFLD1) WITH cPUBID
ENDIF
NEXT loop
ELSE
SELE A
FOR loop=1 TO 4
SELE A
DO WHILE nRANDOMPUB>nBRANCHQTY
nRANDOMPUB=INT(RAND()*10)+1
ENDDO
SELE B
LOCATE FOR nRANDOMPUB=FT_URN
IF FOUND()
cPUBID=PUBID
SELE A
cFLD1="PUB"+LTRIM(STR(loop))
cFLD2="RANDOM"+LTRIM(STR(loop))
REPL (cFLD1) WITH cPUBID
REPL (cFLD2) WITH LTRIM(STR(nRANDOMPUB))
ENDIF
nRANDOMPUB=9999999
NEXT loop
ENDIF
SELE A
SKIP
ENDDO
GO TOP
BROW FIELDS BRANCH,RANDOMLOG,RANDOM1,PUB1,RANDOM2,PUB2,RANDOM3,PUB3,RANDOM4,PUB4
如果有什麼是不可理解的,請讓我知道。
rand()是隨機數發生器。使用-1初始化以獲得最大分佈。我會修改你的代碼,但這是不可理解的。應該給錯誤。 –
我已經嘗試過代碼,workig很好,除了我仍然在pubs中發佈的事實。像Pub1 = 4,Pub2 = 4,Pub3 = 3,Pub4 = 8。主要想法是使所有數字不同,並通過使用FoxPro ..我無法理解如何。 –
請發佈您的修訂。 – Missy