Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Field value in Multiuser environment
Message
From
06/06/2001 03:02:17
Walter Meester
HoogkarspelNetherlands
 
 
To
05/06/2001 23:50:46
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00515570
Message ID:
00515591
Views:
12
Hanafi,

You can use a table to store the last invoicenumber and lock the table or specific record to refresh its content. For example:
FUNCION NewKey (cIdentity)
LOCAL nSel, nValue

nSel=SELECT(0)
SELECT 0
USE Keys
LOCATE FOR Identity=cIdentity
IF !FOUND()
   INSERT INTO Keys (Identity, Value) VALUES (cIdentity, 1)
   nValue=1
ELSE
   =RLOCK()
   REPLACE Value WITH Value + 1
   nValue=Value
   UNLOCK 
ENDIF
USE
SELECT (nSel)
RETURN nValue
I Hope this helps,

Walter,



>I am using Sales.SalesNum field as an invoice number, which will increment automatically each time the user append
>a new invoice.
>I place the master SalesNum in Data.SalesNum, so when the user click the new button the textbox "TxtSalesNum"
>will have the value Data.SalesNum + 01.
>
>The problem accured in multiuser environment.
>
>User 1 : giving SalesNum = 1
>
>User 2 : giving Salesnum = 1
>
>User 1 save the invoice and having salesnum = 1 and click the new button. TxtSalesnum.value = 2
>
>User 2 Save the invoice and having salesnum = 2. But when he click the new button, he have TxtSalesnum.value = 2
>not 3.
>
>Thank's
>
>In Save Procedure
>
>Sele Data
>Repl SalesNum with SalesNum + 01
>TableUpdate(.T.)
>Unlock All
>
>
>
>in PNew Procedurte ( When The user click the New Button)
>
>Thisform.TxtSalesNum.Value = Data.SalesNum + 01
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform