Beispiel #1
0
        protected override void RaiseQueryPopUp(CancelEventArgs e)
        {
            if (CheckReadOnly())
            {
                e.Cancel = true;
                return;
            }

            SetDataSource(this, new EventArgs());

            if (ListHandler != null && !(ListHandler is EmptyLookupListHandler) && !ListHandler.ReadOnly)
            {
                base.RaiseQueryPopUp(e);

                //Modus mit ListHandler DataSource
                DisplayMember = ListHandler.ValuePropertyName;
                ValueMember   = ListHandler.ValuePropertyName;

                DataSource = ListHandler.GetList();

                if (Columns.Count == 0)
                {
                    PopulateColumns();
                    foreach (LookUpColumnInfo colInfo in Columns)
                    {
                        if (ListHandler.VisibleProperties.HasProperty(colInfo.FieldName))
                        {
                            var property = ListHandler.VisibleProperties.GetProperty(colInfo.FieldName);
                            colInfo.Caption = property.DisplayName;

                            switch (property.SortOrder)
                            {
                            case ESortDirection.Ascending:
                                colInfo.SortOrder = ColumnSortOrder.Ascending;
                                break;

                            case ESortDirection.Descending:
                                colInfo.SortOrder = ColumnSortOrder.Descending;
                                break;

                            case ESortDirection.None:
                                colInfo.SortOrder = ColumnSortOrder.None;
                                break;

                            default:
                                colInfo.SortOrder = ColumnSortOrder.None;
                                break;
                            }

                            colInfo.Visible = property.Visible;
                        }
                        else
                        {
                            colInfo.Visible = false;
                        }
                    }
                }

                var list = DataSource as IList;
                if (list != null && (DataSource != null && list.Count < 10))
                {
                    DropDownRows = (DataSource as IList).Count + 1;
                }
            }
            else
            {
                //ListHandler not set or readonly mode
                e.Cancel = true;
            }
        }
        protected override void RaiseQueryPopUp(CancelEventArgs e)
        {
            View.OptionsView.ShowAutoFilterRow = true;

            SetDataSource(this, new EventArgs());

            if (ListHandler != null && !(ListHandler is EmptyLookupListHandler) && !ListHandler.ReadOnly)
            {
                base.RaiseQueryPopUp(e);

                // Wenn im Designer Display/Value Member gesetzt wurden dann diese nehmen.
                // Ein aufrufendes Form hat evtl. nicht den ganzen Lookuptyp als Property Implementiert sondern nur eine string oder int Property
                // Beispiel Refcode (Display Member = RvMeaning -> Anzeige, ValueMember = RvAbbreviation -> Wert der in die Property zurückgeschrieben wird.
                if (string.IsNullOrEmpty(DisplayMember))
                {
                    DisplayMember = ListHandler.ValuePropertyName;
                }
                if (string.IsNullOrEmpty(ValueMember))
                {
                    ValueMember = ListHandler.ValuePropertyName;
                }

                DataSource = ListHandler.GetList();
                View.GridControl.ForceInitialize();

                ListHandler.VisibleProperties.GetProperties(true);

                foreach (GridColumn gc in View.Columns)
                {
                    if (ListHandler.VisibleProperties.HasProperty(gc.FieldName))
                    {
                        var property = ListHandler.VisibleProperties.GetProperty(gc.FieldName);
                        gc.Caption      = property.DisplayName;
                        gc.VisibleIndex = ListHandler.VisibleProperties.IndexOf(property.Key);

                        switch (property.SortOrder)
                        {
                        case ESortDirection.Ascending:
                            gc.SortOrder = ColumnSortOrder.Ascending;
                            break;

                        case ESortDirection.Descending:
                            gc.SortOrder = ColumnSortOrder.Descending;
                            break;

                        case ESortDirection.None:
                            gc.SortOrder = ColumnSortOrder.None;
                            break;

                        default:
                            gc.SortOrder = ColumnSortOrder.None;
                            break;
                        }

                        switch (property.AutoFilterCondition)
                        {
                        case EAutoFilterCondition.Equals:
                            gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Equals;
                            break;

                        case EAutoFilterCondition.Like:
                            gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Like;
                            break;

                        case EAutoFilterCondition.Contains:
                            gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
                            break;

                        default:
                            gc.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Default;
                            break;
                        }

                        gc.Visible = property.Visible;
                    }
                    else
                    {
                        gc.Visible = false;
                    }
                }

                View.BestFitMaxRowCount = BestFitMaxRowCountValue;
                View.BestFitColumns();
            }
            else
            {
                //ListHandler not set or readonly mode
                e.Cancel = true;
            }
        }