Using Sesame 2.6
Parent form ORDERS has OrderForm number, key field.
Subform ORDERLINES is naturally linked to OrderForm.
OrderForm is Unique, Text
.
Record A is exported to be imported to new record.
Pgm calls menu to use menu tree to Add new record.
New Record B is added, then imports exported record A, all is OK.
OrderForm has old number 35592 (normal)
OnFormEntry updates new OrderForm number and other fields.
New OrderForm number is L19448. (This is OK)
ORDERS record is saved.
Then process starts to update some fields in subform, including reference to new OrderForm number.
Value of OrderForm goes from L19448 back to 35592 when starting to step through the subforms loop. THIS IS THE PROBLEM!I now see new record B with blank OrderForm field, values on subform have old OrderForm values vs. new ones.
I get ERROR msg that cannot save record with OrderForm 35592 (expect that now because unique). OrderForm value is blanked out by Sesame, record cannot be saved, etc.
Here is the code:
WriteLn("Form Order, 269, before saving record: " + FormOrder)
FormCommit("ORDERS")
WriteLn("Form Order, 271, after saving record: " + FormOrder)
// UPDATE LINE ITEMS IN COPIED ORDER
vTotalLines = @FormResultSetTotal("ORDERLINES")
For vCnt = 1 to vTotalLines
WriteLn("Form Order, 276, after starting FOR in SubForm: " + FormOrder) // FormOrder is OK
FormResultSetCurrentPosition("ORDERLINES",vCnt)
WriteLn("Form Order, 279, after setting position on subform: " + FormOrder) // FormOrder is NG
FormFieldValue("ORDERLINES","Record", vCnt, @TN(@XLookUpR(@FN,999999,"ORDERLINES!Record","Record")) + 1)
FormFieldValue("ORDERLINES","AddedBy", vCnt, @ClientLocalValue("lsUserName")) // was @UserID (@ClientLocalValue("lsUserName"))
FormFieldValue("ORDERLINES","ChangedBy", vCnt, "")
FormFieldValue("ORDERLINES","DateAdded", vCnt, @Date)
FormFieldValue("ORDERLINES","TimeAdded", vCnt, @Time)
FormFieldValue("ORDERLINES","DateChanged", vCnt, "")
FormFieldValue("ORDERLINES","TimeChanged", vCnt, "")
WriteLn("Form Order, 288, before updating subform FormOrder: " + FormOrder)
FormFieldValue("ORDERLINES","ParentOrder", vCnt, FormOrder)
FormFieldValue("ORDERLINES","ParentRecord", vCnt, Record)
FormCommit("ORDERLINES")
Next // Go to Next Line
//OrderNumber = vCopyOrder
//WriteLn("Form Order, 296, before saving record: " + FormOrder)
FormCommit("ORDERS") // Save record
// End CopyForm routines
GlobalValue("gsCopyForm",0) // Clear CopyForm flag
And here are the WriteLns to track the problem. The numbers are program line numbers.
Form Order, 252, before Security ON: L19448
Form Order, 255, after turning Security ON: L19448
Form Order, 269, before saving record: L19448
Form Order, 271, after saving record: L19448
Form Order, 276, after starting FOR in SubForm: L19448
Form Order, 279, after setting position on subform: 35592
Form Order, 288, before updating subform FormOrder: 35592
Form Order, 276, after starting FOR in SubForm: 35592
1. How and Why does OrderForm lose its new value?
2. How to keep the new value of OrderForm to pass to subform?