public frmColumnCustomFormula(int entityID, int columnID) { InitializeComponent(); EntityID = entityID; ColumnID = columnID; lokFormula.EditItemEnabled = true; lokFormula.NewItemEnabled = true; lokFormula.EditItemClicked += LokFormula_EditItemClicked; SetFromulas(); Message = bizColumn.GetCustomFormula(ColumnID); if (Message == null) { Message = new ColumnCustomFormulaDTO(); } ShowMessage(); }
//private void RelatedDataColumnValueChanged(object sender, RelatedDataColumnValueChangedArg e, FormulaDTO formula, DP_DataRepository dataItem, int columnID) //{ //} public void CalculateProperty(EntityInstanceProperty dataProperty, ColumnCustomFormulaDTO columnCustomFormula, DP_DataRepository dataItem, bool asDefault) { var key = "formulaCalculated" + "_" + dataProperty.ColumnID; EditArea.RemoveDataItemMessage(dataItem, key); if (columnCustomFormula.OnlyOnNewData) { if (!dataItem.IsNewItem) { AddDataMessageItem(dataItem, key, ControlItemPriority.Normal, "فرمول" + " " + columnCustomFormula.Formula.Name + " " + "بروی داده موجود اعمال نمی شود"); return; } } if (columnCustomFormula.OnlyOnEmptyValue) { if (dataProperty.Value != null && !string.IsNullOrEmpty(dataProperty.Value.ToString())) { AddDataMessageItem(dataItem, key, ControlItemPriority.Normal, "فرمول" + " " + columnCustomFormula.Formula.Name + " " + "بروی خصوصیت دارای مقدار اعمال نمی شود"); return; } } var result = AgentUICoreMediator.GetAgentUICoreMediator.formulaManager.CalculateFormula(columnCustomFormula.Formula.ID, dataItem, AgentUICoreMediator.GetAgentUICoreMediator.GetRequester()); dataProperty.FormulaID = columnCustomFormula.Formula.ID; dataProperty.FormulaException = null; dataProperty.FormulaUsageParemeters = result.FormulaUsageParemeters; if (result.Exception == null) { //dataProperty.Value = result.Result; // AddDataMessageItem(dataItem, key, ControlItemPriority.Normal, "محاسبه شده توسط فرمول" + " " + columnCustomFormula.Formula.Title); } else { dataProperty.FormulaException = result.Exception.Message; // dataProperty.Value = ""; //اینجا خطا روی ستون یا رابطه بدهد AddDataMessageItem(dataItem, key, ControlItemPriority.Normal, "خطا در محاسبه فرمول" + " " + columnCustomFormula.Formula.Title + ":" + " " + dataProperty.FormulaException); } if (asDefault) { dataProperty.Value = result.Result; } else { var uiColumnValue = new UIColumnValueDTO(); uiColumnValue.ColumnID = columnCustomFormula.ID; //ابجکت نشه؟ExactValue uiColumnValue.ExactValue = result.Result.ToString(); uiColumnValue.EvenHasValue = !columnCustomFormula.OnlyOnEmptyValue; uiColumnValue.EvenIsNotNew = !columnCustomFormula.OnlyOnNewData; List <UIColumnValueDTO> uIColumnValues = new List <UIColumnValueDTO>() { uiColumnValue }; EditArea.SetColumnValueFromState(dataItem, uIColumnValues, null, columnCustomFormula.Formula); } }