Function GetNextBillNo && That is not allowed in method of the formsYou can't invoke the function using GetNextBillNo() but thisform.GetNextBillNo()
Function GetNextBillNo local lcAlias, lnReprocess, lnBillNo lcAlias=select() && remeber alias can i replace my (temp.table) with &&&lcAlias=select(temp) lnReprocess=SET('REPROCESS()') && remember value SET REPROCESS TO 1 && Retry evey one second SELECT 0 && find an available work area USE mstr order BillNo again && BillNo is an index tag on BillNo DO WHILE .T. GO BOTTOM && this record holds the highest number ************************************************************************************** *** Here it is the change You try to Lock the Last record not that You just appended * ************************************************************************************** IF !RLOCK() && Someone else is doing exactly the same, so he comes first WAIT 'Someone else is billing, you must wait!' WINDOW NOWAIT LOOP && wait a second and try again ENDIF *************************************************************************************** lnBillNo=mstr.BillNo APPEND BLANK REPLACE Billno with lnBillno + 1 lnBillNo=mstr.BillNo && lnBillNo is the next bill number EXIT ENDDO USE && Close WAIT CLEAR && In case any Wait window is open SET REPROCESS TO lnReprocess && always restore SELECT (lcAlias) && always restore RETURN lnBillNo