Both forms must have a unique key field (a formula for this can be found here). There must be a hidden view of the destination documents with the first column being the unique key. Variables are passed using environment variables. This code would go in the source form's update button:
@If(@IsNewDoc; ""; @Do(@Command([FileSave]); @Command([FileCloseWindow]); @Return(""))); ENVIRONMENT CTDB1 := @Trim(UniqueID); ENVIRONMENT CTDB5 := @Trim(@Text(Qty)); @Command([OpenView]; "(SpecialView1)"; CTDB1); @Command([ToolsRunMacro]; "(UpdateReceivedQty)"); @Command([FileSave]); @Command([FileCloseWindow]); @Command([FileSave]); @Command([FileCloseWindow]); @Command([EditDocument])
The UpdateReceivedQty macro would then do the following:
FIELD QtyInStock := QtyInStock; @If(UniqueId != @Environment("CTDB1"); @Do(@Prompt([OK]; "Error"; "UniqueId Number " + @Environment("CTDB1") + "cannot be found"); @Return("")); ""); @SetField("QtyInStock"; (QtyInStock + @TextToNumber(@Environment("CTDB5")))); SELECT @All