/// <summary> /// Calculation field user control for group templates with data /// </summary> public ucCalculationFieldGroupTemplate(CalculationFieldTemplate calculationFieldTemplate) { InitializeComponent(); cbxCalculationPrecision.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; cbxFieldType.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; cbxValidationPrecision.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; this.calculationFieldTemplate = calculationFieldTemplate; }
/// <summary> /// Calculates the content of a CalculationFieldTemplate based on the given datafields /// </summary> /// <param name="calculationField"></param> /// <param name="datafields"></param> /// <returns></returns> public CalculationFieldResult CompareExpressionResults(CalculationFieldTemplate calculationField, List <DataFieldResult> datafields) { var retVal = CompareExpressionResults(calculationField.CalculationExpression, calculationField.CalculationExpressionPrecision, calculationField.ValidationExpressions, calculationField.CalculationExpressionPrecision, datafields); retVal.Name = calculationField.Name; retVal.FieldType = calculationField.FieldType; return(retVal); }
private CalculationFieldTemplate GetCalculationFieldTemplateFromUcCalculationField(Control ucCalculationFieldControl) { var retVal = new CalculationFieldTemplate(); var ucCalculationFieldGroupTemplate = ucCalculationFieldControl as ucCalculationFieldGroupTemplate; if (ucCalculationFieldGroupTemplate != null) { retVal.Name = ucCalculationFieldGroupTemplate.NameText; retVal.FieldType = (DataFieldType)(ucCalculationFieldGroupTemplate.FieldTypeInt); retVal.CalculationExpression = ucCalculationFieldGroupTemplate.CalculationExpressionText; retVal.CalculationExpressionPrecision = ucCalculationFieldGroupTemplate.CalculationPrecisionInt; retVal.ValidationExpressionPrecision = ucCalculationFieldGroupTemplate.ValidationPrecisionInt; var splitArray = new string[1]; splitArray[0] = Environment.NewLine; var valexArray = ucCalculationFieldGroupTemplate.ValidationExpressionText.Split(splitArray, StringSplitOptions.RemoveEmptyEntries); foreach (var item in valexArray) { retVal.ValidationExpressions.Add(item); } } return(retVal); }
/// <summary> /// Calculates the value for a given calculation field based on the supplied datafields (if datafields are part of the calculation expression) /// </summary> /// <param name="calculationField"></param> /// <param name="datafields"></param> /// <returns></returns> public double Calculate(CalculationFieldTemplate calculationField, List <DataFieldResult> datafields) { return(Calculate(calculationField.CalculationExpression, calculationField.CalculationExpressionPrecision, datafields)); }