$PBExportHeader$eaf_n_cst_itemchanged.sru forward global type eaf_n_cst_itemchanged from n_cst_component end type end forward global type eaf_n_cst_itemchanged from n_cst_component end type global eaf_n_cst_itemchanged eaf_n_cst_itemchanged type variables Long row Long currentrow String data //0 pass //1 don't pass and do not allow focus to change //2 don't pass and allow focus to change //-1 don't need to execute //1 need to execute Long returncode = 0 // if it is executed from creating meta file Boolean ib_metadatamode = false String is_requestedcolumns String is_linkedcolumns String is_setitemcolumns[] n_datastore idw_requestor n_cst_helperservice ui_nvo_helper n_cst_argumentservice inv_argument string is_returnsyntax end variables forward prototypes public function integer aftermasterconfirm () public function any getitem (string as_column) public function any getlinkedcolumnvalue (string as_column, ref any aa_value) public function boolean iscolumnexist (string columnname) public function long itemchanged (ref n_cst_datasetattrib anv_datasetattrib) public function integer itemchanged (string as_column, string as_data) public function long masterconfirm (ref n_cst_datasetattrib anv_datasetattrib) public function integer setitem (string colname, any columnvalue) public subroutine setlinkedcolumns (string as_linkedcolumns) public subroutine setrequestedcolumns (string as_requestedcolumns) public subroutine setreturncode (long retcode) public subroutine setreturnsyntax (string as_syntax) end prototypes public function integer aftermasterconfirm ();//No action return 0 end function public function any getitem (string as_column);constant string METHOD_NAME = "GetItem ( )" String ls_data, ls_coltype Any la_ret if inv_argument.GetArgument(as_column, ls_data) = 1 then ls_coltype = idw_requestor.Describe(as_column + ".coltype") la_ret = ui_nvo_helper.StringToAny(ls_coltype, ls_data) else la_ret = idw_requestor.GetItemAny(currentrow, as_column) if IsNull(la_ret) then AddError(METHOD_NAME, "Failed to get argument " + as_column) end if end if return la_ret end function public function any getlinkedcolumnvalue (string as_column, ref any aa_value);constant string METHOD_NAME = "GetLinkedColumnValue( )" String ls_data, ls_coltype if inv_argument.GetArgument(as_column, ls_data) = 1 then // Hard code the datatype choose case as_column case "trdate" ls_coltype = "datetime" case "yea", "mon", "reference_id" ls_coltype = "long" case "trnqy1", "taxrate" ls_coltype = "decimal" case else ls_coltype = "string" end choose aa_value = ui_nvo_helper.StringToAny(ls_coltype, ls_data) else AddError(METHOD_NAME, "Failed to get value of linked column " + as_column) end if return 1 end function public function boolean iscolumnexist (string columnname);return idw_requestor.iscolumnexist(columnname) end function public function long itemchanged (ref n_cst_datasetattrib anv_datasetattrib);constant string METHOD_NAME = "Itemchanged (REF anv_datasetattrib)" inv_log.traceLog (METHOD_NAME, "") String ls_row String ls_runtimeerror String ls_column String ls_document String ls_rowstatus string ls_setitemcolumns long ll_row n_cst_classdefinitionservice lnvo_classdefinitionservice try lnvo_classdefinitionservice = create n_cst_classdefinitionservice anv_datasetattrib.inv_argumentservice.GetArgument("column", ls_column) if ls_column = "" then addError(METHOD_NAME, "Invalid column argument, value is empty") return -1 end if if lnvo_classdefinitionservice.iseventdefined(ClassName(this), ls_column) then anv_datasetattrib.inv_argumentservice.GetArgument("row", ls_row) if ls_row = "" or not IsNumber(ls_row) then addError(METHOD_NAME, "Invalid row argument") return -1 else row = Long(ls_row) end if anv_datasetattrib.inv_argumentservice.GetArgument("data", data) idw_requestor = anv_datasetattrib.ids_working idw_requestor.InsertRow(0) currentrow = 1 anv_datasetattrib.inv_argumentservice.GetArgument("rowstatus", ls_rowstatus) if Lower(ls_rowstatus) = "datamodified" then idw_requestor.SetItemStatus(1, 0, Primary!, DataModified!) else idw_requestor.SetItemStatus(1, 0, Primary!, NewModified!) end if anv_datasetattrib.inv_argumentservice.ToXML(ls_document) inv_argument.initialize(ls_document) this.TriggerEvent(ls_column) end if // set return columns for ll_row = 1 to UpperBound(is_setitemcolumns) if ls_setitemcolumns <> "" then ls_setitemcolumns += "," ls_setitemcolumns += is_setitemcolumns[ll_row] next if ls_setitemcolumns <> "" then inv_messaging.Add("setitemcolumns", ls_setitemcolumns) end if // set return syntax inv_messaging.add("returnsyntax", is_returnsyntax) // set return code inv_messaging.Add("returncode", String(returncode)) catch ( RuntimeError re ) ls_runtimeerror = "Runtime Error:" + inv_constants.CRLF + inv_constants.CRLF ls_runtimeerror += "Error Code: " + string(re.number) + inv_constants.CRLF ls_runtimeerror += "Object: " + re.objectName + inv_constants.CRLF ls_runtimeerror += "Class: " + re.class + inv_constants.CRLF ls_runtimeerror += "Function/Event: " + re.routineName + inv_constants.CRLF ls_runtimeerror += "Line: " + string(re.line) + inv_constants.CRLF addError( METHOD_NAME, "Runtime Error: " + ls_runtimeerror ) return -1 finally anv_datasetattrib.inv_messaging.append( inv_messaging ) if IsValid(lnvo_classdefinitionservice) then destroy lnvo_classdefinitionservice end if end try return 1 end function public function integer itemchanged (string as_column, string as_data);constant string METHOD_NAME = "Itemchanged ()" inv_log.traceLog (METHOD_NAME, "") String ls_data Long ll_ret, ll_returncode String ls_runtimeerror n_cst_classdefinitionservice lnvo_classdefinitionservice try ll_ret = 0 if idw_requestor.iscolumnexist(as_column) then lnvo_classdefinitionservice = create n_cst_classdefinitionservice if lnvo_classdefinitionservice.iseventdefined(ClassName(this), as_column) then // Save current status ls_data = data ll_returncode = returncode // Trigger Itemchanged data = as_data this.TriggerEvent(as_column) ll_ret = returncode // Restore returncode = ll_returncode data = ls_data end if end if catch ( RuntimeError re ) ls_runtimeerror = "Runtime Error:" + inv_constants.CRLF + inv_constants.CRLF ls_runtimeerror += "Error Code: " + string(re.number) + inv_constants.CRLF ls_runtimeerror += "Object: " + re.objectName + inv_constants.CRLF ls_runtimeerror += "Class: " + re.class + inv_constants.CRLF ls_runtimeerror += "Function/Event: " + re.routineName + inv_constants.CRLF ls_runtimeerror += "Line: " + string(re.line) + inv_constants.CRLF addError( METHOD_NAME, "Runtime Error: " + ls_runtimeerror ) return -1 finally if IsValid(lnvo_classdefinitionservice) then destroy lnvo_classdefinitionservice end if end try return ll_ret end function public function long masterconfirm (ref n_cst_datasetattrib anv_datasetattrib);constant string METHOD_NAME = "MasterConfirm (REF anv_datasetattrib)" inv_log.traceLog (METHOD_NAME, "") String ls_runtimeerror String ls_document Long ll_ret try anv_datasetattrib.inv_argumentservice.ToXML(ls_document) inv_argument.initialize(ls_document) idw_requestor = anv_datasetattrib.ids_working ll_ret = aftermasterconfirm() catch ( RuntimeError re ) ls_runtimeerror = "Runtime Error:" + inv_constants.CRLF + inv_constants.CRLF ls_runtimeerror += "Error Code: " + string(re.number) + inv_constants.CRLF ls_runtimeerror += "Object: " + re.objectName + inv_constants.CRLF ls_runtimeerror += "Class: " + re.class + inv_constants.CRLF ls_runtimeerror += "Function/Event: " + re.routineName + inv_constants.CRLF ls_runtimeerror += "Line: " + string(re.line) + inv_constants.CRLF addError( METHOD_NAME, "Runtime Error: " + ls_runtimeerror ) return -1 finally anv_datasetattrib.inv_messaging.append( inv_messaging ) end try return ll_ret end function public function integer setitem (string colname, any columnvalue);constant string METHOD_NAME = "SetItem (string, any)" String ls_runtimeerror Long ll_rc try if idw_requestor.iscolumnexist(colname) then idw_requestor.SetItem(currentrow, colname, columnvalue) inv_messaging.Add(colname, String(columnvalue)) is_setitemcolumns[UpperBound(is_setitemcolumns) + 1] = colname ll_rc = 1 else ll_rc = 0 end if catch ( RuntimeError re ) ls_runtimeerror = "Runtime Error:" + inv_constants.CRLF + inv_constants.CRLF ls_runtimeerror += "Error Code: " + string(re.number) + inv_constants.CRLF ls_runtimeerror += "Object: " + re.objectName + inv_constants.CRLF ls_runtimeerror += "Class: " + re.class + inv_constants.CRLF ls_runtimeerror += "Function/Event: " + re.routineName + inv_constants.CRLF ls_runtimeerror += "Line: " + string(re.line) + inv_constants.CRLF addError( METHOD_NAME, "Runtime Error: " + ls_runtimeerror ) ll_rc = -1 finally end try return ll_rc end function public subroutine setlinkedcolumns (string as_linkedcolumns);if as_linkedcolumns <> "" and not IsNull(as_linkedcolumns) then if Pos("," + is_linkedcolumns + "," , "," + as_linkedcolumns + ",") = 0 then if is_linkedcolumns <> "" then is_linkedcolumns += "," end if is_linkedcolumns += as_linkedcolumns end if end if end subroutine public subroutine setrequestedcolumns (string as_requestedcolumns);if as_requestedcolumns <> "" and not IsNull(as_requestedcolumns) then if Pos("," + is_requestedcolumns + "," , "," + as_requestedcolumns + ",") = 0 then if is_requestedcolumns <> "" then is_requestedcolumns += "," end if is_requestedcolumns += as_requestedcolumns end if end if end subroutine public subroutine setreturncode (long retcode);returncode = retcode end subroutine public subroutine setreturnsyntax (string as_syntax);if is_returnsyntax <> "" then is_returnsyntax += "|" end if is_returnsyntax += as_syntax return end subroutine on eaf_n_cst_itemchanged.create call super::create end on on eaf_n_cst_itemchanged.destroy call super::destroy end on event constructor;call super::constructor;ui_nvo_helper = create n_cst_helperservice inv_argument = create n_cst_argumentservice end event event destructor;call super::destructor;if IsValid(ui_nvo_helper) then destroy ui_nvo_helper destroy inv_argument end event
File: eaf_n_cst_itemchanged.sru
Size: 10978
Date: Tue, 22 Jan 2008 23:40:37 +0100
Size: 10978
Date: Tue, 22 Jan 2008 23:40:37 +0100
- n_cst_component eaf_n_cst_itemchanged(sru)
- aftermasterconfirm () returns integer
- getitem (string as_column) returns any
- getlinkedcolumnvalue (string as_column, ref any aa_value) returns any
- iscolumnexist (string columnname) returns boolean
- itemchanged (ref n_cst_datasetattrib anv_datasetattrib) returns long
- itemchanged (string as_column, string as_data) returns integer
- masterconfirm (ref n_cst_datasetattrib anv_datasetattrib) returns long
- setitem (string colname, any columnvalue) returns integer
- setlinkedcolumns (string as_linkedcolumns)
- setrequestedcolumns (string as_requestedcolumns)
- setreturncode (long retcode)
- setreturnsyntax (string as_syntax)