View Full Version : UUID - Grid Event


09-10-2009, 01:21 AM
I had the following under Intitialize (server events) on the dialog but it's not working right on the grid. It creates the record, but then creates a second one. I've tried several variations (remove all but the appending of uuid, remove tbl.close, etc) but still won't work. Maybe fresh eyes will help.

The reason I'm creating this is because I want the user to see the 'newjobno' field on the screen when the job is started. The session variables are also used on submit to print the workorder.

I'm just not that well versed on how the events work in the v10 beta (or the v9 either).

job_ID= remspecial(api_uuidcreate())

tbl = table.open("[PathAlias.ADB_Path]\workorder.dbf")
tbl.Jobno = alltrim(Job_ID)
datasubmitted.Jobno = Job_ID
session.Job_ID = Job_ID
session.newjob = newjob
datasubmitted.Newjobno = session.newjob

Steve Wood
09-10-2009, 03:41 AM
If you create the job_id in Initialize, there is no reason to save the record and then "re-get" the job_id from the table. Just create it the id as you are and display it on the screen, but don't create a record UNTIL they submit and then use AfterValidate to create that record.

09-13-2009, 12:18 AM
Okay I believe it have it set up right, but the newjobno which is an auto incremented field and the client's job number keeps giving me problems.

In Grid Initialize I have:

job_ID= remspecial(api_uuidcreate())

tbl.Jobno = alltrim(Job_ID)
e.rv.session.jobno = tbl.jobno
e.rv.session.newjob = tbl.newjobno

I keep getting the error using the above code in Grid Initiate:

Error executing OnGridInitialize event handler: command: e.rv.session.newjob = tbl.newjobno Property not found
tbl.newjobno subelement not found.

In OnInitalValueCalculate I have:

e.newValues.jobno = e.rv.session.jobno
e.newVaules.jobno = e.rv.session.newjob

Steve Wood
09-13-2009, 12:37 AM
I thought you were using a Dialog because you used the term Initialize without mentioning Grid. You seem to be approaching this backwards, trying to create a table record before you actually accept any information from the user, in the Grid. How about forgetting trying to pre-create a record and use myjob_id = remspecial(api_uuidcreate()) to create a job_id that, if they don't finish the record, never gets used and never creates a record.

09-13-2009, 07:31 PM
You helped me on this when I had it set up in a dialog. We needed to set up the job id so I could display the auto incremented field value (Client Job #).

I'm using the alpha 10 beta now because of the Ajax functionality so I need to do the same thing only in a grid.

I don't really need the job id. What I need to display is that auto incremented number but it says '0'.

I thought I could utilize the same commands but I don't understand the verbage on all of these grids.

Steve Wood
09-13-2009, 08:13 PM
If your # is dependent on an auto-increment in the table, then you have to create the table record and then display THAT record in the grid to get the number. I am sure, even though I have not looked at it, that the Grid AJAX does not save a record until you submit the page or otherwise save the record.

09-18-2009, 10:33 PM
So frustrated with this. I wish they would do a video on the events section.

Okay, since I can't do the above, I'd like to at least set the field 'newjobno' to a session variable then redirect to a dialog page that uses that session variable.

I tried the below in the 'onpagedirect' and set the submit to <Event> but got a 404 error saying <Self> was not found....

e.rv.session = "newjob"
e.rv.session.newjob=e.rv.v.r1.newjobno '

So now I want to just put the above info in the 'afterinsertrecord' area so when I set the submit to the dialog page it will pull the session variable.

Now I'm getting the error because I'm not describing the session variable right. What is the format for 'afterinsertrecord' event when setting up a session variable?

Steve Wood
09-18-2009, 11:16 PM
Why do you want to use a Grid as opposed to a Dialog?

Bob Moore
09-19-2009, 09:16 AM

e.rv.session = "newjob"

In v10 if you are working with a new row that has not been committed the r_ prefix is used, if my memory serves me right.

You can easily check this with Firebug.

09-19-2009, 10:27 AM
I want to use the grid because of the ajax function (edit combo and auto suggest).

That's the only reason I'm changing over. I could never get the ajax code right in the dialog form.