Index: forms/orderDialog.frm =================================================================== --- forms/orderDialog.frm (revision 6) +++ forms/orderDialog.frm (working copy) @@ -306,6 +306,7 @@ } ], name:"orderDialog", +onShowMethodID:"962B7BCF-6075-499C-9DBD-8BB3B609346C", paperPrintScale:100, showInMenu:true, size:"400,470", Index: forms/orderDialog.js =================================================================== --- forms/orderDialog.js (revision 6) +++ forms/orderDialog.js (working copy) @@ -1,10 +1,12 @@ -/** * - * @param event - * - * @properties={typeid:24,uuid:"D48CBC8C-D9D1-412D-9F19-F5758F6532EA"} +/** + * @properties={typeid:35,uuid:"CF2372D8-BB0B-4CD0-B773-35AC29EABA09",variableType:-4} */ -function validate(event) { - var requiredFields = { +var errors = []; + +/** + * @properties={typeid:35,uuid:"A9994A6A-6D12-4354-9896-39F0BFD62E2E",variableType:-4} + */ +var requiredFields = { freight : 'Freight', orderdate : 'Order Date', requireddate : 'Required Date', @@ -15,12 +17,64 @@ shippostalcode : 'Postal Code', shipvia : 'Ship Via' }; - + +/** + * @param {JSEvent} event + * + * @properties={typeid:24,uuid:"D48CBC8C-D9D1-412D-9F19-F5758F6532EA"} + */ +function validate(event) { + errors = []; for(field in requiredFields){ if(!foundset.getDataProviderValue(field)){ - errorMessage = 'Missing required field: '+ requiredFields[field]; - return false; + errors.push(field); } } - return _super.validate(event) + if (errors.length > 0) { + updateUI(event); + return false; + } + return _super.validate(event); } + +/** + * @param {JSEvent} event + * + * + * @properties={typeid:24,uuid:"72BA1A9E-F095-4F0E-B637-DD006F4B01C9"} + */ +function updateUI(event) { + var frm = solutionModel.getForm(controller.getName()); + var labels = frm.getLabels(); + if (errors.length > 0) { + while(errors.length > 0) { + var field = errors.pop(); + for(var i in labels) { + var label = labels[i]; + if (label.labelFor == field) { + label.foreground = '#FF0000'; + } + } + } + } else { + for(var i in labels) { + var label = labels[i]; + label.foreground = '#000000'; + } + } + controller.recreateUI(); + _super.updateUI(event); +} + +/** + * Callback method for when form is shown. + * + * @param {Boolean} firstShow form is shown first time after load + * @param {JSEvent} event the event that triggered the action + * + * @properties={typeid:24,uuid:"962B7BCF-6075-499C-9DBD-8BB3B609346C"} + */ +function onShow(firstShow, event) { + errors = []; + return _super.onShow(firstShow, event) +}