prerowupdate
Use prerowupdate and postrowupdate with objProperty
         and objPropertySet. You can make changes as a result of a
         row being changed. 
This prerowupdate script tests the value of the QUANTITY field. Then, it uses
            objPropertySet to update the SECTION column for the row that was changed. Both
         changes to the row are saved when the object is saved. The ingr detail code precedes the prerowupdate function. 
Option Strict Off
imports System
imports System.Data
imports System.Diagnostics
Imports Microsoft.VisualBasic
Class HookScript
Inherits FcProcFuncSetEventHook
Function ingrprerowupdate() As Long
 Dim qty As Double = FcType.FixDouble(objProperty("Quantity.Ingr"))
 If qty > 100 Then
 objPropertySet("BIG", 0, "SECTIONNAME.INGR")
 Else
 objPropertySet( "Small", 0, "SECTIONNAME.INGR")
 End If
 Return 1
End Function
end Class
      In this example, the quantity in row 6 changed. Consequently, a change is made to the Section column before the object is saved.
      The postrowupdate function updates related
         information outside the row that depends on the row update being successful. You cannot
         change the value in a row using postrowupdate. 
DataRowCurrent and DataRowProposed are not available in
         the secured scripting environment. They have been replaced by
            GetCurrentRowValue, GetProposedRowValue, and
            SetProposedRowValue.
You can use GetCurrentRowValue, GetProposedRowValue, and SetProposedRowValue to access a single value on the row, not the entire row.
         This is quicker than using ObjProperty and ObjPropertySet
         for this type of work. 
Option Strict Off
Imports System
Imports System.Data
Imports System.Diagnostics
Imports Microsoft.VisualBasic
Class HookScript
 Inherits FcProcFuncSetEventHook
 Function ingrprerowupdate() As Long
 Dim currVal as Object = Context.GetCurrentRowValue("UOM_CODE")
 MessageList("currVal = " & currVal.ToString())
 Dim propVal as Object  = Context.GetProposedRowValue("UOM_CODE")
 MessageList("propVal  = " & propVal.ToString())
 Context.SetProposedRowValue("UOM_CODE", "LB")  ' This change will be honored
 End Function
End Class
      Additionally, you can return a negative value from your
            PreRowUpdate script hook. The RowUpdate process is
         halted by the system. 
Function ingrprerowupdate() As Long
…
MessageList("Error processing Ingredient Row Update script.")
Return -1
End Function