private void EvaluateValueExpr(EbMobileControl ctrl, string trigger_control, string parent) { string expr = ctrl.ValueExpr.GetCode(); string computed = GetComputedExpression(expr, ctrl.Name, parent); try { object value = evaluator.Execute(computed); ctrl.SetValue(value); ctrl.ValueChanged(trigger_control); } catch (Exception ex) { EbLog.Info($"Value script evaluation error in control '{ctrl.Name}'"); EbLog.Error(ex.Message); } }
public Color GetBackGroundColor(MobileTableRow row) { Color color = Color.White; if (RowColorExprCode != null) { try { SetRowData(row); string hexcolur = evaluator.Execute <string>(RowColorExprCode); if (!string.IsNullOrWhiteSpace(hexcolur)) { color = Color.FromHex(hexcolur); } } catch (Exception ex) { } } return(color); }
public ApiScript Execute(ApiGlobalParent global) { ApiScript script = new ApiScript(); try { if (this.EvaluatorVersion == EvaluatorVersion.Version_1) { Script evaluator = GetScriptEvaluatorV1(); ScriptState result = evaluator.RunAsync(global as ApiGlobals).Result; if (result.ReturnValue != null) { script.Data = JsonConvert.SerializeObject(result.ReturnValue); } else { script.Data = "script executed without any return"; } } else { evaluator.Context = global as ApiGlobalsCoreBase; evaluator.EvaluateVariable += EvaluateVariable; object o = evaluator.Execute(this.Script.Code.Trim()); script.Data = JsonConvert.SerializeObject(o); } } catch (Exception e) { if (e.InnerException is ExplicitExitException) { throw e.InnerException; } else { throw new Exception("Execution Error: " + e.Message); } } return(script); }
public object ExecuteExpression(string code, int irow, EbPdfGlobals globals, string[] _dataFieldsUsed, bool Isprocessed) { object value = null; try { string processedCode; if (Isprocessed) { processedCode = code; } else { processedCode = GetProcessedCode(code, _dataFieldsUsed); } foreach (string calcfd in _dataFieldsUsed) { string TName = calcfd.Split('.')[0]; string fName = calcfd.Split('.')[1]; int tableIndex = Convert.ToInt32(TName.Substring(1)); int RowIndex = (tableIndex == this.DetailTableIndex) ? irow : 0; globals[TName].Add(fName, new PdfNTV { Name = fName, Type = (PdfEbDbTypes)(int)this.DataSet.Tables[tableIndex].Columns[fName].Type, Value = this.DataSet.Tables[tableIndex].Rows[irow][fName] }); } AddParamsNCalcsInGlobal(globals); SetVariable(globals); value = evaluator.Execute(processedCode); } catch (Exception e) { string s = e.Message + e.StackTrace; } return(value); }