>Bruce, Daniel's question about what your Valid() code is returning is the most likely answer to your problem. Have you followed through the code with a 'good' value (using the debugger) to see what is happening? You may find that your return value is defaulting to FALSE at some point.
>Barbara
Thanks to you and Daniel for your response but I don't think that is the case. Here is the code from the valid - very simple - if it is a serial number item throw up a serial number grid - select the serial numbers and move on. As it is it does not advance after the serial number form is done. If I replace the form call with a "wait window 'Hi there'" then it does advance. I want it to advance when I put up a form. It is that simple. There are no FALSE returns or anything else interfering. Hope this helps in figuring this out. Thanks again.
LOCAL lncount, ;
lcoldalias
IF ordentlines.sernumberflag AND ((vordhdr.ordertype $ "RCDWP" AND thisform.lisadding) OR thisform.lisconfirming)
lcoldalias = ALIAS()
SELECT itemserialnumber
COUNT FOR itemserialnumber.invoicenumber == vordhdr.ordernumber + "-" + vordhdr.bonumber AND itemserialnumber.itemnumber == ordentlines.itemnumber TO lncount
SELECT (lcoldalias)
IF lncount <> ordentlines.invqty
loForm = CREATEOBJECT("awpickser")
IF TYPE("loform") == "O"
loForm.Show()
ENDIF
ENDIF
ENDIF
***************************
Bruce Gilmour
"Two things are infinite, the Universe and human stupidity. And I am not sure about the Universe."
- Albert Einstein