private void CpMenuFormulaCalculation_MenuClicked(object sender, ConrolPackageMenuArg e, SimpleColumnControl columnControl) { DP_DataRepository dataItem = null; if (EditArea is I_EditEntityAreaOneData) { dataItem = EditArea.GetDataList().First(); } else { dataItem = e.data as DP_DataRepository; } FormulaCalculationAreaInitializer initializer = new FormulaCalculationAreaInitializer(); initializer.DataItem = dataItem; initializer.FomulaManager = this; initializer.ColumnCustomFormula = columnControl.Column.ColumnCustomFormula; initializer.ColumnControl = columnControl; var formulaCalculationArea = new FormulaCalculationArea(initializer); if (formulaCalculationArea.View != null) { var window = AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetDialogWindow(); window.ShowDialog(formulaCalculationArea.View, "محاسبه فرمول", Enum_WindowSize.Big); } }
public FormulaCalculationArea(FormulaCalculationAreaInitializer initializer) { AreaInitializer = initializer; View = AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetViewOfFormulaCalculationArea(); View.CloseRequested += View_CloseRequested; View.FromulaExpression = initializer.ColumnCustomFormula.Formula.Tooltip; var dataProperty = initializer.DataItem.GetProperty(initializer.ColumnControl.Column.ID); if (dataProperty != null) { AreaInitializer.FomulaManager.CalculateProperty(dataProperty, AreaInitializer.ColumnCustomFormula, AreaInitializer.DataItem, false); if (string.IsNullOrEmpty(dataProperty.FormulaException)) { View.ResultString = dataProperty.Value; } else { View.ResultString = "Error"; View.AddException(dataProperty.FormulaException); View.ExceptionTabSelect(); } if (dataProperty.FormulaUsageParemeters.Any()) { View.ClearTree(); foreach (var item in dataProperty.FormulaUsageParemeters) { AddFormulaParameteNode(null, item); } } //if (FormulaOption == null) //{ // //همون اول اگر پراپرتی دیتیل یا خطا داره لود بشه // //FormulaOption = AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetFormulaOptionForm(); // //FormulaOption.ClaculateRequested += (sender1, e1) => FormulaOption_ClaculateRequested(sender1, e1, e.data as DP_DataRepository); // //FormulaOption.ErrorDetailRequested += (sender1, e1) => FormulaOption_ErrorDetailRequested(sender1, e1, e.data as DP_DataRepository); // //FormulaOption.ClaculationDetailsRequested += (sender1, e1) => FormulaOption_ClaculationDetailsRequested(sender1, e1, e.data as DP_DataRepository); //} //SetCalculatoinButtons(dataProperty); } else { throw new Exception("asdasdF"); } }