/// <summary>
        ///
        /// </summary>
        /// <param name="info"></param>
        /// <param name="asView"></param>
        /// <returns></returns>
        public static string GetNameValueMappingName(GridColumnInfo info, bool asView)
        {
            string initParam = asView ? info.CellViewerManagerParam : info.CellEditorManagerParam;

            if (string.IsNullOrEmpty(initParam))
            {
                return(null);
            }

            //string filter = asView ? string.Empty : info.CellEditorManagerParamFilter;
            string nvName;

            if (initParam.StartsWith(GridColumnInfoHelper.StartWithBigEnum, StringComparison.Ordinal))
            {
                Type type = GridColumnInfoHelper.CreateTypeFromEnumInitParam(GridColumnInfoHelper.CreateType(info), initParam);
                System.Diagnostics.Debug.Assert(type != null, info.GridColumnName + "'s ControlInitParam should be valid");
                //ControlDataLoad.InitDataControl(control, type, false, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter));
                nvName = NameValueMappingCollection.Instance.Add(type, false);
            }
            else if (initParam.StartsWith(GridColumnInfoHelper.StartWithLittleEnum, StringComparison.Ordinal))
            {
                Type type = GridColumnInfoHelper.CreateTypeFromEnumInitParam(GridColumnInfoHelper.CreateType(info), initParam);
                System.Diagnostics.Debug.Assert(type != null, info.GridColumnName + "'s ControlInitParam should be valid");
                //ControlDataLoad.InitDataControl(control, type, true, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter));
                nvName = NameValueMappingCollection.Instance.Add(type, true);
            }
            else
            {
                nvName = initParam;
                //ControlDataLoad.InitDataControl(control, info.CellViewerManagerParam,
                //    info.CellEditorManagerParam, (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter));
            }
            return(nvName);
        }
예제 #2
0
        private string GetViewerText(object value, GridColumnInfo info)
        {
            if (value == null || string.IsNullOrEmpty(value.ToString()))
            {
                return(null);
            }

            if (!m_viewers.ContainsKey(info))
            {
                string nvName = GridColumnInfoHelper.GetNameValueMappingName(info, true);
                m_viewers[info] = nvName;
            }

            return(Feng.Utils.NameValueControlHelper.GetMultiString(m_viewers[info], value));
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="column"></param>
        /// <param name="info"></param>
        public static void CreateCellViewerManager(Xceed.Grid.Column column, GridColumnInfo info, IDisplayManager dm)
        {
            try
            {
                Xceed.Grid.Viewers.CellViewerManager viewer = ControlFactory.CreateCellViewerManager(dm.Name,
                                                                                                     info.CellViewerManager, info.CellViewerManagerParam, GridColumnInfoHelper.CreateType(info));
                if (viewer != null)
                {
                    column.CellViewerManager = viewer;

                    System.Collections.IComparer comp = ControlFactory.CreateColumnDataComparer(
                        info.CellViewerManager, info.CellViewerManagerParam, GridColumnInfoHelper.CreateType(info));
                    if (comp != null)
                    {
                        column.DataComparer = comp;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ArgumentException("GridColumnInfo of " + info.Name + " is Invalid when CreateCellViewerManager!", ex);
            }
        }
예제 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="column"></param>
 /// <param name="info"></param>
 public static void CreateCellEditorManager(Xceed.Grid.Column column, GridColumnInfo info, IDisplayManager dm)
 {
     try
     {
         Xceed.Grid.Editors.CellEditorManager editor = ControlFactory.CreateCellEditorManager(dm.Name,
                                                                                              info.CellEditorManager, info.CellEditorManagerParam, GridColumnInfoHelper.CreateType(info), (string)ParamCreatorHelper.TryGetParam(info.CellEditorManagerParamFilter),
                                                                                              info.CellViewerManagerParam);
         if (editor != null)
         {
             column.CellEditorManager = editor;
         }
     }
     catch (Exception ex)
     {
         throw new ArgumentException("GridColumnInfo of " + info.Name + " is Invalid when CreateCellEditorManager!", ex);
     }
 }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="gridName"></param>
        /// <returns></returns>
        public Dictionary <string, object> Process(object entity, string gridName)
        {
            Dictionary <string, object> r = new Dictionary <string, object>();

            // grid
            if (!Authority.AuthorizeByRule(ADInfoBll.Instance.GetGridInfo(gridName).Visible))
            {
                return(r);
            }

            // row
            if (!Permission.AuthorizeByRule(ADInfoBll.Instance.GetGridRowInfo(gridName).Visible, entity))
            {
                return(r);
            }

            // column
            foreach (GridColumnInfo info in ADInfoBll.Instance.GetGridColumnInfos(gridName))
            {
                object v = null;
                if ((m_useColumnVisible && !Authority.AuthorizeByRule(info.ColumnVisible)) ||
                    (!m_useColumnVisible && !Authority.AuthorizeByRule(info.DataControlVisible)))
                {
                    continue;
                }
                else
                {
                    if (info.GridColumnType != GridColumnType.Normal &&
                        info.GridColumnType != GridColumnType.ExpressionColumn)
                    {
                        continue;
                    }
                    if (string.IsNullOrEmpty(info.PropertyName))
                    {
                        v = null;
                    }
                    else if (info.GridColumnType == GridColumnType.Normal)
                    {
                        v = EntityScript.GetPropertyValue(entity, info.Navigator, info.PropertyName);
                    }
                    else if (info.GridColumnType == GridColumnType.ExpressionColumn)
                    {
                        if (info.PropertyName.Contains("%"))
                        {
                            v = EntityScript.CalculateExpression(info.PropertyName, entity);
                        }
                        else
                        {
                            v = ProcessInfoHelper.TryExecutePython(info.PropertyName,
                                                                   new Dictionary <string, object>()
                            {
                                { "entity", entity }
                            });
                        }
                    }
                    else
                    {
                        continue;
                    }
                }

                if (v == System.DBNull.Value)
                {
                    v = null;
                }
                if (v == null)
                {
                    r[info.GridColumnName] = null;
                    continue;
                }

                string vs = null;
                if (GridColumnInfoHelper.CreateType(info).IsEnum)
                {
                    vs = v.ToString();
                }

                switch (info.CellViewerManager)
                {
                case "Combo":
                case "MultiCombo":
                    vs = GetViewerText(v, info);
                    break;

                case "Object":
                    vs = EntityHelper.ReplaceEntity(info.CellViewerManagerParam, v, null);
                    break;

                case "Numeric":
                case "Integer":
                case "Long":
                case "Currency":
                    vs = Convert.ToDouble(v).ToString(GetFormatString(info));
                    break;

                case "Date":
                case "DateTime":
                    vs = Convert.ToDateTime(v).ToString(GetFormatString(info));
                    break;

                default:
                    vs = v.ToString();
                    break;
                }

                r[info.GridColumnName] = vs;

                //// cell
                //foreach (GridCellInfo info in GridSettingInfoCollection.Instance[gridName].GridCellInfos)
                //{
                //}
            }

            return(r);
        }