public CustomDataLayoutItem(bool isWfDesignMode, ValueDataField field)
            : this()
        {
            IsWfDesignMode = isWfDesignMode;
            Name           = field.Name;

            LabelPosition = field.LabelPosition.To(LayoutItemLabelPosition.Left);
            if (field.LabelPosition.EqIgnoreCase(ValueDataFieldConstants.None))
            {
                LabelVisibility = Visibility.Collapsed;
            }

            Visibility    = field.Visible ? Visibility.Visible : Visibility.Collapsed;
            DisplayFormat = field.DisplayFormat;
            IsReadOnly    = !(field.IsEnabled.HasValue && field.IsEnabled.Value);

            DisplayName     = field.Caption;
            FieldType       = field.FieldType;
            LookUpCode      = field.LookupCode;
            LookUpFilterExt = field.LookupFilterExt;
            CloseDialog     = field.CloseDialog;
            SetFocus        = field.SetFocus;
            BackGroundColor = field.BackGroundColor;

            IsMemoView = field.IsMemoView;

            Binding = new Binding(string.IsNullOrEmpty(field.FieldName) ? field.Name : field.FieldName)
            {
                UpdateSourceTrigger   = UpdateSourceTrigger.PropertyChanged,
                ValidatesOnDataErrors = true
            };

            //Проставляем Properties
            InitializeProperties(field);
        }
Esempio n. 2
0
        private Parameters GetParameters(NativeActivityContext context)
        {
            // отображаем окно запроса данных
            var fFile = new ValueDataField();

            fFile.Name      = "File";
            fFile.FieldName = fFile.Name;
            fFile.FieldType = typeof(string);
            //fFile.SourceName = fFile.Name;
            fFile.Caption               = "Файл";
            fFile.IsRequired            = true;
            fFile.IsLabelFontWeightBold = true;

            var fMandant = new ValueDataField();

            fMandant.Name      = "Mandant";
            fMandant.FieldName = fMandant.Name;
            //fMandant.SourceName = fMandant.Name;
            fMandant.FieldType             = typeof(decimal?);
            fMandant.Caption               = "Мандант";
            fMandant.IsRequired            = true;
            fMandant.LookupCode            = "MANDANT_MANDANTID";
            fMandant.IsLabelFontWeightBold = true;

            var fABCD = new ValueDataField();

            fABCD.Name      = "ABCD";
            fABCD.FieldName = fABCD.Name;
            //fABCD.SourceName = fABCD.Name;
            fABCD.FieldType             = typeof(string);
            fABCD.Caption               = "ABCD";
            fABCD.IsRequired            = true;
            fABCD.LookupCode            = "ENUM_ART";
            fABCD.IsLabelFontWeightBold = true;

            // создадим модель
            var model = new ExpandoObjectViewModelBase
            {
                Fields = new ObservableCollection <ValueDataField>(new[] { fFile, fMandant, fABCD })
            };

            model.PanelCaption = "Загрузка файла My Universal";
            model.SetSuffix("5CF7EA23-7B12-4211-9F18-45878562C0A7");

            var vs = IoC.Instance.Resolve <wmsMLC.General.PL.WPF.Services.IViewService>();

            if (vs.ShowDialogWindow(model, true, false, "30%", "10%") == true)
            {
                return new Parameters
                       {
                           FileName  = (string)model[fFile.FieldName],
                           ABCD      = (string)model[fABCD.FieldName],
                           MandantId = (decimal?)model[fMandant.FieldName]
                       }
            }
            ;

            return(null);
        }
Esempio n. 3
0
 public static int GetColumn(ValueDataField menuItem, int index)
 {
     if (menuItem == null || !menuItem.Properties.ContainsKey((ValueDataFieldConstants.Column)))
     {
         return(index % 2);
     }
     return(menuItem.Get <int>(ValueDataFieldConstants.Column));
 }
Esempio n. 4
0
        public static void AddFooterMenuItem(FooterMenu footerMenuControl, ValueDataField menuItem, int index, ICommand command, double fontSize, bool isWfDesignMode)
        {
            var button = CreateCustomButton(menuItem, command, fontSize, isWfDesignMode);

            FooterMenu.SetRow(button, GetRow(menuItem, index));
            FooterMenu.SetColumn(button, GetColumn(menuItem, index));
            footerMenuControl.Menu.Add(button);
        }
Esempio n. 5
0
        public TETypeListViewModel()
        {
            LayoutValue   = ModelLayout;
            IsMenuVisible = false;
            var fields     = Fields;
            var teTypeGrid = new ValueDataField
            {
                Name          = TeTypeFieldName,
                FieldName     = TeTypeFieldName,
                SourceName    = TeTypeFieldName,
                Caption       = "Список",
                LabelPosition = "Top",
                Order         = 0,
                IsEnabled     = true,
                Visible       = true,
                FieldType     = typeof(TEType),
                SetFocus      = true,
                LookupCode    = "TETYPE_NAME"
            };

            teTypeGrid.Properties.Add(ValueDataFieldConstants.LookupType, RclLookupType.SelectGridControl.ToString());
            teTypeGrid.Properties.Add(ValueDataFieldConstants.ShowControlMenu, "True");
            teTypeGrid.Properties.Add(ValueDataFieldConstants.CloseDialogOnSelectedItemChanged, "True");
            fields.Add(teTypeGrid);

            var menuItem = new ValueDataField
            {
                Name          = MenuName,
                FieldName     = MenuName,
                SourceName    = MenuName,
                Caption       = MenuName,
                LabelPosition = "Left",
                Order         = 1,
                IsEnabled     = true,
                Visible       = true,
                FieldType     = typeof(IFooterMenu),
            };

            menuItem.Properties[ValueDataFieldConstants.FooterMenu] = new[]
            {
                new ValueDataField
                {
                    Name       = EscapeMenuName,
                    FieldName  = EscapeMenuName,
                    SourceName = EscapeMenuName,
                    Order      = 0,
                    Caption    = "Отмена",
                    IsEnabled  = true,
                    Value      = "Escape",
                    FieldType  = typeof(Button),
                    Visible    = true
                }
            };
            fields.Add(menuItem);

            UpdateSource();
        }
Esempio n. 6
0
        public static string GetLayoutGroupNameFromField(ValueDataField valueDataField, bool isWfDesignMode)
        {
            string svalue;

            return(DataField.TryGetFieldProperties(valueDataField, ValueDataFieldConstants.LayoutGroupName,
                                                   isWfDesignMode, out svalue)
                ? svalue
                : null);
        }
Esempio n. 7
0
        private decimal?SelectWorker(string filter)
        {
            var workerModel = new DialogSourceViewModel
            {
                PanelCaption  = Resources.StringResources.SelectWorkerPanelCaption,
                FontSize      = 14,
                IsMenuVisible = false,
            };

            var lstWorkers = new ValueDataField
            {
                Name          = "lstWorkers",
                LabelPosition = "Top",
                Caption       = Resources.StringResources.WorkerList
            };

            lstWorkers.FieldName                   = lstWorkers.Name;
            lstWorkers.SourceName                  = lstWorkers.Name;
            lstWorkers.FieldType                   = typeof(Object);
            lstWorkers.LookupCode                  = "WORKER_WORKERFIO_RCL";
            lstWorkers.LookupFilterExt             = filter;
            lstWorkers.Properties["MaxRowsOnPage"] = 6;
            lstWorkers.Properties["CloseDialogOnSelectedItemChanged"] = true;
            lstWorkers.Properties["LookupType"] = "SelectControl";
            lstWorkers.SetFocus = true;
            workerModel.Fields.Add(lstWorkers);
            workerModel.UpdateSource();

            var vs = IoC.Instance.Resolve <IViewService>();

            while (true)
            {
                if (vs.ShowDialogWindow(workerModel, false) != true)
                {
                    vs.ShowDialog(Resources.StringResources.RCL, Resources.StringResources.WorkerNotSelect, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK);
                    continue;
                }

                switch (workerModel.MenuResult)
                {
                case "Value":
                    var     worker = workerModel["lstWorkers"];
                    decimal workerId;
                    if (!decimal.TryParse(worker.ToString(), out workerId))
                    {
                        throw new DeveloperException(string.Format("Bad workerId value '{0}'.",
                                                                   worker));
                    }

                    return(workerId);

                default:
                    continue;
                }
            }
        }
Esempio n. 8
0
        private void OnSelect(ValueDataField parameter)
        {
            if (!CanSelect(parameter))
            {
                return;
            }

            CommandParameter = ValueDataFieldConstants.CreateDefaultParameter(ValueDataFieldConstants.Value);
            ExecuteCommandSource(this);
        }
        private DialogSourceViewModel CreateDialogModel(ValueDataField[] footerMenu)
        {
            var result = new DialogSourceViewModel
            {
                PanelCaption  = "Активные манданты",
                FontSize      = FontSize.Get(_context),
                IsMenuVisible = true,
            };

            var field = new ValueDataField
            {
                Name          = FieldName,
                FieldType     = typeof(User2Mandant),
                Caption       = string.Empty,
                LabelPosition = "Left",
                IsEnabled     = true,
                SetFocus      = true,
                CloseDialog   = true
            };

            field.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectGridControl.ToString());
            field.Set(ValueDataFieldConstants.ShowTotalRow, false);
            field.Set(ValueDataFieldConstants.ShowControlMenu, false);
            field.Set(ValueDataFieldConstants.AllowAutoShowAutoFilterRow, true);
            field.Set(ValueDataFieldConstants.ShowAutoFilterRow, false);
            field.Set(ValueDataFieldConstants.DoNotActionOnEnterKey, true);

            //Получаем поля для грида
            var names     = new[] { User2Mandant.User2MandantIsActivePropertyName, User2Mandant.MandantCodePropertyName, User2Mandant.MandantNamePropertyName, User2Mandant.MandantIDPropertyName };
            var fieldList = names.Select(propertyName => DataFieldHelper.Instance.GetDataFields(typeof(User2Mandant), SettingDisplay.List).ToList().FirstOrDefault(p => p.Name.EqIgnoreCase(propertyName)))
                            .Where(f => f != null)
                            .ToArray();


            fieldList[0].Set(ValueDataFieldConstants.ColumnWidth, "60");
            fieldList[1].Set(ValueDataFieldConstants.ColumnWidth, "100");
            fieldList[2].Set(ValueDataFieldConstants.ColumnWidth, "250");

            field.Set(ValueDataFieldConstants.Fields, fieldList);
            field.Set(ValueDataFieldConstants.ItemsSource, _user2MandantList);

            if (footerMenu != null)
            {
                field.Set(ValueDataFieldConstants.FooterMenu, footerMenu);
            }

            field.FieldName  = field.Name;
            field.SourceName = field.Name;
            result.Fields.Add(field);

            result.UpdateSource();
            return(result);
        }
Esempio n. 10
0
        private DialogSourceViewModel GetMainModel(NativeActivityContext context, ValueDataField property, bool canMovePrev = true)
        {
            var model = new DialogSourceViewModel
            {
                PanelCaption  = PanelCaption.Get(context),
                FontSize      = FontSize.Get(context),
                IsMenuVisible = false,
            };

            // добавим параметр
            property.SetFocus = true;
            model.Fields.Add(property);

            var footerMenuItem = new ValueDataField
            {
                Name      = "footerMenu",
                FieldType = typeof(IFooterMenu),
                Visible   = true,
                IsEnabled = true
            };

            footerMenuItem.FieldName  = footerMenuItem.Name;
            footerMenuItem.SourceName = footerMenuItem.Name;
            model.Fields.Add(footerMenuItem);

            var footerMenu = new List <ValueDataField>();

            if (canMovePrev)
            {
                var prevBtn = new ValueDataField {
                    Name = "F2", Caption = "Назад", FieldType = typeof(Button)
                };
                prevBtn.FieldName  = prevBtn.Name;
                prevBtn.SourceName = prevBtn.Name;
                prevBtn.Value      = prevBtn.Name;
                footerMenu.Add(prevBtn);
            }

            var nextBtn = new ValueDataField {
                Name = "F1", Caption = "Далее", FieldType = typeof(Button)
            };

            nextBtn.FieldName  = nextBtn.Name;
            nextBtn.SourceName = nextBtn.Name;
            nextBtn.Value      = nextBtn.Name;
            footerMenu.Add(nextBtn);

            footerMenuItem.Set(ValueDataFieldConstants.FooterMenu, footerMenu.ToArray());

            model.UpdateSource();
            return(model);
        }
Esempio n. 11
0
        public void SetLabelProperties(ValueDataField field)
        {
            if (field == null)
            {
                return;
            }

            LabelPosition = field.LabelPosition.To(LayoutItemLabelPosition.Left);
            if (field.LabelPosition.EqIgnoreCase(ValueDataFieldConstants.None))
            {
                LabelVisibility = Visibility.Collapsed;
            }
        }
        private DialogSourceViewModel CreateDialogModel(ActivityContext context, ValueDataField property)
        {
            var model = new DialogSourceViewModel
            {
                PanelCaption  = "Введите значение",
                FontSize      = FontSize.Get(context),
                IsMenuVisible = false,
            };

            // добавим параметр
            property.SetFocus = true;
            model.Fields.Add(property);

            var footerMenu = new List <ValueDataField>();

            var footerMenuItem = new ValueDataField
            {
                Name    = "Menu0",
                Caption = "Назад",
                Value   = "Escape"
            };

            footerMenuItem.Set(ValueDataFieldConstants.Row, 0);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 0);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu1",
                Caption = "Далее",
                Value   = "Enter"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 0);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 1);
            footerMenu.Add(footerMenuItem);

            var footerMenufield = new ValueDataField
            {
                Name      = ValueDataFieldConstants.FooterMenu,
                Caption   = ValueDataFieldConstants.FooterMenu,
                FieldType = typeof(FooterMenu),
                IsEnabled = true
            };

            footerMenufield.Set(ValueDataFieldConstants.FooterMenu, footerMenu.ToArray());
            model.Fields.Add(footerMenufield);

            model.UpdateSource();
            return(model);
        }
Esempio n. 13
0
        private void OnMenuCommand(ValueDataField parameter)
        {
            MenuResult = null;
            if (!CanMenuCommand(parameter))
            {
                return;
            }

            var hotkey = parameter.Value.To(Key.None);

            MenuResult     = hotkey == Key.None ? parameter.Value.To(string.Empty) : hotkey.ToString();
            MenuActionName = parameter.Name;
            if (MenuAction != null)
            {
                MenuAction(parameter);
            }
        }
        private DialogSourceViewModel GetMainModel(List <Product> prdList)
        {
            if (_mainModel == null)
            {
                _mainModel = new DialogSourceViewModel
                {
                    PanelCaption  = "Выбор товара",
                    IsMenuVisible = false,
                    FontSize      = 15
                };

                var prdLst = new ValueDataField
                {
                    Name          = ProductListModelPropertyName,
                    Caption       = string.Empty,
                    FieldType     = typeof(Product),
                    LabelPosition = "None",
                    IsEnabled     = true,
                    SetFocus      = true,
                    CloseDialog   = true
                };

                prdLst.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectGridControl.ToString());
                prdLst.Set(ValueDataFieldConstants.ShowControlMenu, true);
                prdLst.Set(ValueDataFieldConstants.AllowAutoShowAutoFilterRow, false);
                prdLst.Set(ValueDataFieldConstants.ShowAutoFilterRow, false);
                prdLst.Set(ValueDataFieldConstants.DoNotActionOnEnterKey, false);
                prdLst.Set(ValueDataFieldConstants.ItemsSource, prdList);
                prdLst.Set(ValueDataFieldConstants.CloseDialogOnSelectedItemChanged, true);

                var grdFields = GetGridFields(prdLst.FieldType, DisplaySetting);

                prdLst.Set(ValueDataFieldConstants.Fields, grdFields.ToArray());

                _mainModel.Fields.Add(prdLst);
            }
            else
            {
                _mainModel.GetField(ProductListModelPropertyName).Set(ValueDataFieldConstants.ItemsSource, prdList);
            }

            _mainModel.UpdateSource();

            return(_mainModel);
        }
Esempio n. 15
0
        private DialogSourceViewModel GetMainModel(List <MutableTuple <Int32, PL, TE> > activePlList)
        {
            if (_mainModel == null)
            {
                _mainModel = new DialogSourceViewModel
                {
                    PanelCaption  = "Списки пикинга",
                    IsMenuVisible = false,
                    FontSize      = 15
                };

                var plLst = new ValueDataField
                {
                    Name          = PlListPropertyName,
                    Caption       = string.Empty,
                    FieldType     = typeof(MutableTuple <Int32, PL, TE>),
                    LabelPosition = "Left",
                    IsEnabled     = true,
                    SetFocus      = true,
                    CloseDialog   = true
                };

                plLst.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectGridControl.ToString());
                plLst.Set(ValueDataFieldConstants.ShowControlMenu, true);
                plLst.Set(ValueDataFieldConstants.AllowAutoShowAutoFilterRow, false);
                plLst.Set(ValueDataFieldConstants.ShowAutoFilterRow, false);
                plLst.Set(ValueDataFieldConstants.DoNotActionOnEnterKey, false);
                plLst.Set(ValueDataFieldConstants.ItemsSource, activePlList);
                plLst.Set(ValueDataFieldConstants.CloseDialogOnSelectedItemChanged, true);

                var grdFields = GetGridFields(plLst.FieldType, DisplaySetting);

                plLst.Set(ValueDataFieldConstants.Fields, grdFields.ToArray());

                _mainModel.Fields.Add(plLst);
            }
            else
            {
                _mainModel.GetField(PlListPropertyName).Set(ValueDataFieldConstants.ItemsSource, activePlList);
            }

            _mainModel.UpdateSource();

            return(_mainModel);
        }
Esempio n. 16
0
        private DialogSourceViewModel GetMainModel(NativeActivityContext context, ValueDataField property)
        {
            var model = new DialogSourceViewModel
            {
                PanelCaption  = "Введите значение",
                FontSize      = FontSize.Get(context),
                IsMenuVisible = false,
            };

            // добавим параметр
            property.SetFocus = true;
            model.Fields.Add(property);

            var footerMenuItem = new ValueDataField
            {
                Name      = "footerMenu",
                FieldType = typeof(IFooterMenu),
                Visible   = true,
                IsEnabled = true
            };

            footerMenuItem.FieldName  = footerMenuItem.Name;
            footerMenuItem.SourceName = footerMenuItem.Name;
            model.Fields.Add(footerMenuItem);

            var nextBtn = new ValueDataField
            {
                Name      = "F1",
                Caption   = "Далее",
                FieldType = typeof(Button),
            };

            nextBtn.FieldName  = nextBtn.Name;
            nextBtn.SourceName = nextBtn.Name;
            nextBtn.Value      = nextBtn.Name;
            nextBtn.Set(ValueDataFieldConstants.Row, 0);
            nextBtn.Set(ValueDataFieldConstants.Column, 1);

            footerMenuItem.Set(ValueDataFieldConstants.FooterMenu, new[] { nextBtn });

            model.UpdateSource();
            return(model);
        }
Esempio n. 17
0
        protected override ObservableCollection <DataField> GetFields(SettingDisplay displaySetting)
        {
            var fields = base.GetFields(displaySetting);

            if (!InPropertyEditMode)
            {
                var field = new ValueDataField
                {
                    Name          = ImagePropertyName,
                    FieldName     = ImagePropertyName,
                    SourceName    = ImagePropertyName,
                    FieldType     = typeof(object),
                    Visible       = true,
                    LabelPosition = ValueDataFieldConstants.None
                };

                field.Properties[ValueDataFieldConstants.IsSubImageView] = true;
                field.Properties[ValueDataFieldConstants.ShowMenu]       = true;
                fields.Add(field);
            }
            return(fields);
        }
Esempio n. 18
0
        private string ValidateRequiredField(ValueDataField field)
        {
            var haserror = false;
            var value    = this[field.Name];

            if (Equals(value, string.Empty))
            {
                value = null;
            }

            if (field.FieldType == typeof(string))
            {
                if (value.To <string>().IsNullOrEmptyAfterTrim())
                {
                    haserror = true;
                }
            }

            if (haserror || value == null)
            {
                return(string.Format("Поле '{0}' является обязательным.", field.Caption));
            }
            return(string.Empty);
        }
Esempio n. 19
0
        public static void CreateFooterMenu(FooterMenu footerMenuControl, ValueDataField field, ICommand command, double fontSize, bool isWfDesignMode)
        {
            if (footerMenuControl == null)
            {
                footerMenuControl = new FooterMenu();
            }

            footerMenuControl.Visibility = field.Visible ? Visibility.Visible : Visibility.Collapsed;

            ValueDataField[] menu;
            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.FooterMenu, isWfDesignMode, out menu))
            {
                var index = 0;
                foreach (var menuItem in menu.Where(p => p != null).OrderBy(p => p.Order))
                {
                    AddFooterMenuItem(footerMenuControl, menuItem, index++, command, fontSize, isWfDesignMode);
                }
            }

            if (fontSize > 0)
            {
                footerMenuControl.FontSize = fontSize;
            }

            string focusNavigationDirection;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.NavigationDirectionOnGotFocus, isWfDesignMode, out focusNavigationDirection))
            {
                footerMenuControl.NavigationDirectionOnGotFocus = (FocusNavigationDirection)Enum.Parse(typeof(FocusNavigationDirection), focusNavigationDirection);
            }

            if (field.SetFocus)
            {
                footerMenuControl.BackgroundFocus();
            }
        }
Esempio n. 20
0
 private void OnFooterMenuItemClick(ValueDataField parameter)
 {
     CommandParameter = parameter;
     ExecuteCommandSource(this);
 }
        protected override void Execute(NativeActivityContext context)
        {
            var entity = Entity.Get(context);
            var obj    = entity as WMSBusinessObject;

            if (obj == null)
            {
                throw new NotImplementedException(string.Format("Тип '{0}' не поддерживается", entity.GetType()));
            }
            var objname = SourceNameHelper.Instance.GetSourceName(obj.GetType());
            // получим параметры MUST_SET
            var mustSetList    = GetProperties(context);
            var pmConfigs      = mustSetList as IList <PMConfig> ?? mustSetList.ToList();
            var mustProperties = pmConfigs.Select(pm => pm.ObjectName_r).Distinct();
            var objFields      = DataFieldHelper.Instance.GetDataFields(typeof(T), wmsMLC.General.PL.SettingDisplay.Detail);

            // проход по каждому параметру вперед и назад
            foreach (var attrName in mustProperties)
            {
                var methods     = pmConfigs.Where(pm => pm.ObjectName_r == attrName).Select(pm => pm.MethodCode_r).Distinct().ToList();
                var setNull     = methods.Exists(m => m == "SET_NULL");
                var mustSet     = methods.Exists(m => m == "MUST_SET");
                var mustCorrect = methods.Exists(m => m == "MUST_MANUAL_CORRECT");
                if (!setNull && !mustSet && !mustCorrect)
                {
                    continue;
                }

                var attrValue    = obj.GetProperty(attrName);
                var defaultValue = obj.GetPropertyDefaultValue(attrName);
                var datafield    = objFields.FirstOrDefault(i => i.Name.EqIgnoreCase(attrName));
                if (datafield == null)
                {
                    throw new DeveloperException("Ошибка в настройках менеджера товара. Задан неизвестный параметр '{0}.{1}'.", objname, attrName);
                }
                var field = new ValueDataField(datafield)
                {
                    LabelPosition = "Top"
                };
                // если у параметра есть значение по-умолчанию и оно совпадает с реальным, то необходимо подтверждение ввода
                if (!mustCorrect && !setNull && attrValue != null && !Equals(attrValue, defaultValue))
                {
                    continue;
                }

                // параметры атрибута
                field.Value = setNull
                    ? null
                    : (attrValue == null && defaultValue != null)
                        ? defaultValue
                        : attrValue;

                field.IsRequired = mustSet;

                if (string.IsNullOrEmpty(field.LookupCode))
                {
                    field.CloseDialog = true;
                }
                else //Если поле лукап
                {
                    field.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectControl.ToString());
                    field.Set(ValueDataFieldConstants.MaxRowsOnPage, MaxRowsOnPage.Get(context));
                }

                // *-* //
                var model   = GetMainModel(context, field);
                var showKey = ShowKey.Get(context);
                while (true) // делаем это для возврата на форму
                {
                    if (showKey)
                    {
                        model.PanelCaption = string.Format("Введите значение ('{0}')", obj.GetKey());
                    }

                    if (!ShowDialog(model))
                    {
                        throw new OperationException("Не были указаны обязательные параметры.");
                    }

                    var errorMessage = new StringBuilder();
                    switch (string.Format("1{0}", model.MenuResult))
                    {
                    case "1":
                    case "1F1":
                        var value = model[field.Name];
                        if (value == null && field.IsRequired)
                        {
                            errorMessage.AppendLine(string.Format("Не заполнено обязательное поле '{0}'.", field.Caption));
                        }
                        else
                        {
                            obj.SetProperty(field.Name, value);
                        }
                        break;

                    default:
                        throw new DeveloperException("Неизвестная команда.");
                    }
                    // если были ошибки, то покажем что не так и вернемся на форму
                    if (errorMessage.Length > 0)
                    {
                        var viewService = IoC.Instance.Resolve <IViewService>();
                        viewService.ShowDialog("Ошибка", errorMessage.ToString(), System.Windows.MessageBoxButton.OK,
                                               System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.OK);
                    }
                    else
                    {
                        break;
                    }
                }
            }

            Entity.Set(context, obj);
        }
Esempio n. 22
0
        protected override void Execute(NativeActivityContext context)
        {
            var entity = Entity.Get(context);
            var obj    = entity as WMSBusinessObject;

            if (obj == null)
            {
                throw new NotImplementedException(string.Format("Тип '{0}' не поддерживается", entity.GetType()));
            }

            var pos = 0;
            // получим параметры MUST_SET
            var manualCorrectList = GetManualCorrectProperies(context).ToArray();
            var objFields         = DataFieldHelper.Instance.GetDataFields(typeof(T), wmsMLC.General.PL.SettingDisplay.Detail);

            for (; pos < manualCorrectList.Length;)
            {
                var m         = manualCorrectList[pos];
                var datafield = objFields.FirstOrDefault(i => i.Name.EqIgnoreCase(m.ObjectName_r));
                if (datafield == null)
                {
                    throw new DeveloperException("Ошибка в настройках CAN_PRODUCT_MANUAL_CORRECT менеджера товара. Задан неизвестный параметр '{0}'.", m.ObjectName_r);
                }

                var vfield = new ValueDataField(datafield)
                {
                    LabelPosition = "Top",
                    Value         = obj.GetProperty(datafield.SourceName)
                };

                //Если поле лукап
                if (!string.IsNullOrEmpty(vfield.LookupCode))
                {
                    vfield.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectControl.ToString());
                    vfield.Set(ValueDataFieldConstants.MaxRowsOnPage, MaxRowsOnPage.Get(context));
                }

                var model = GetMainModel(context, vfield, pos != 0);
                while (true)
                {
                    if (ShowDialog(model) == false)
                    {
                        return;
                    }

                    var value = model[vfield.Name];
                    obj.SetProperty(vfield.SourceName, value);
                    switch (model.MenuResult)
                    {
                    case "F1":
                        pos++;
                        break;

                    case "F2":
                        pos--;
                        break;
                    }
                    break;
                }
            }
            Entity.Set(context, obj);
        }
        private ValueDataField[] CreateDialogFooterMenu()
        {
            var footerMenu     = new List <ValueDataField>();
            var footerMenuItem = new ValueDataField
            {
                Name    = "Menu0",
                Caption = "Задать",
                Value   = "F1"
            };

            footerMenuItem.Set(ValueDataFieldConstants.Row, 0);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 0);
            footerMenuItem.Set(ValueDataFieldConstants.IsNotMenuButton, true);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu1",
                Caption = "Изменить",
                Value   = "F2"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 0);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 1);
            footerMenuItem.Set(ValueDataFieldConstants.IsNotMenuButton, true);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu2",
                Caption = "Снять все",
                Value   = "F3"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 1);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 0);
            footerMenuItem.Set(ValueDataFieldConstants.IsNotMenuButton, true);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu3",
                Caption = "Выбрать все",
                Value   = "F4"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 1);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 1);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu4",
                Caption = "Фильтр",
                Value   = "F5"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 2);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 0);
            footerMenu.Add(footerMenuItem);

            footerMenuItem = new ValueDataField
            {
                Name    = "Menu5",
                Caption = "Применить",
                Value   = "Enter"
            };
            footerMenuItem.Set(ValueDataFieldConstants.Row, 2);
            footerMenuItem.Set(ValueDataFieldConstants.Column, 1);
            footerMenu.Add(footerMenuItem);
            return(footerMenu.ToArray());
        }
Esempio n. 24
0
        protected override void Execute(NativeActivityContext context)
        {
            var reportCode = ReportCode.Get(context);

            if (!_oldReportCode.Equals(reportCode) && Parameters.Count < 1)
            {
                if (reportCode != null)
                {
                    var val = reportCode.Replace("\"", string.Empty);
                    var prm = GetParams(val);
                    foreach (var p in prm)
                    {
                        var argument = new InArgument <string> {
                            Expression = p.EpsConfigValue
                        };
                        Parameters.Add(p.EpsConfigParamCode, argument);
                    }
                }
                _oldReportCode = reportCode ?? string.Empty;
            }

            var parameters = new List <NameValueObject>();

            foreach (var p in Parameters)
            {
                parameters.Add(new NameValueObject {
                    Name = p.Key, DisplayName = p.Key, Value = p.Value.Get(context)
                });
            }
            // проверим корректность данных
            if (!CheckParams(parameters))
            {
                // Запрещена ли печать при ошибке
                if (DoNotPrint)
                {
                    return;
                }

                // если нужно спросить пользователя
                if (RequestUser)
                {
                    var fields = new List <ValueDataField>();
                    foreach (var p in parameters)
                    {
                        var name  = p.Name.Replace("{", string.Empty).Replace("}", string.Empty);
                        var field = new ValueDataField
                        {
                            Name       = name,
                            SourceName = name,
                            Caption    = p.DisplayName,
                            FieldName  = name,
                            FieldType  = typeof(string),
                            Value      = p.Value
                        };
                        fields.Add(field);
                    }

                    var model = new ExpandoObjectViewModelBase();
                    model.Fields       = new ObservableCollection <ValueDataField>(fields);
                    model.PanelCaption = DialogCaption;
                    if (!ShowDialog(model))
                    {
                        return;
                    }

                    foreach (var p in parameters)
                    {
                        p.Value = model[p.Name.Replace("{", string.Empty).Replace("}", string.Empty)].ToString();
                    }

                    // проверяем последний раз
                    if (!CheckParams(parameters))
                    {
                        // игнорировать ошибки
                        if (!IgnoreErrors)
                        {
                            return;
                        }
                    }
                }
                // если не игнорируем ошибки
                else if (!IgnoreErrors)
                {
                    return;
                }
            }

            // заполняем параметры отчета
            var outputParams = new List <OutputParam>();

            foreach (var p in parameters)
            {
                outputParams.Add(new OutputParam
                {
                    OutputParamCode  = p.Name,
                    OutputParamType  = string.Empty,    // заполнится в менеджере
                    OutputParamValue = p.Value != null ? p.Value.ToString() : null
                });
            }

            // определяем id манданта по коду
            decimal?mandantId = null;

            if (!string.IsNullOrEmpty(MandantCode))
            {
                var mandantMgr     = IoC.Instance.Resolve <IBaseManager <Mandant> >();
                var codeFilterName = SourceNameHelper.Instance.GetPropertySourceName(typeof(Mandant), Mandant.MANDANTCODEPropertyName);
                var filter         = string.Format("{0} = '{1}'", codeFilterName, MandantCode);
                var mandants       = mandantMgr.GetFiltered(filter).ToArray();
                if (mandants.Length > 1)
                {
                    throw new DeveloperException("Получено более одного Манданта с кодом " + MandantCode);
                }

                if (mandants.Length == 1)
                {
                    mandantId = mandants[0].MandantId;
                }
            }

            // поехали!
            var reportMgr = IoC.Instance.Resolve <Report2EntityManager>();
            var uow       = BeginTransactionActivity.GetUnitOfWork(context);

            if (uow != null)
            {
                reportMgr.SetUnitOfWork(uow);
            }
            var result = reportMgr.PrintReport(mandantId, reportCode.Replace("\"", string.Empty), Barcode, outputParams);

            // возвращает статус задания
            Result.Set(context, result);

            // возвращает код задания
            //Result.Set(context, result.Job);
        }
Esempio n. 25
0
        private DialogSourceViewModel GetTimerFormModel()
        {
            var result = new DialogSourceViewModel
            {
                PanelCaption  = DialogTitle.Get(_context),
                FontSize      = FontSize.Get(_context),
                IsMenuVisible = false,
            };

            var footerMenu = new List <ValueDataField>();
            var menuNext   = new ValueDataField
            {
                Name    = "Menu0",
                Caption = "Далее",
                Value   = Key.Enter.ToString()
            };

            menuNext.Set(ValueDataFieldConstants.Row, 0);
            menuNext.Set(ValueDataFieldConstants.Column, 1);
            footerMenu.Add(menuNext);

            ValueDataField field;
            var            message = Message.Get(_context);

            if (!string.IsNullOrEmpty(message))
            {
                field = new ValueDataField
                {
                    Name          = "txtMessage",
                    FieldType     = typeof(string),
                    LabelPosition = "None",
                    IsEnabled     = false,
                    Value         = message
                };
                field.FieldName  = field.Name;
                field.SourceName = field.Name;
                result.Fields.Add(field);
            }

            var dateFrom = DateFrom.Get(_context);

            if (dateFrom.HasValue)
            {
                field = new ValueDataField
                {
                    Name          = "dtDateFrom",
                    Caption       = "С",
                    FieldType     = typeof(DateTime),
                    LabelPosition = "Left",
                    Value         = dateFrom.Value,
                    DisplayFormat = DefaultDateTimeFormat,
                    IsEnabled     = false,
                    SetFocus      = false,
                    CloseDialog   = false
                };
                field.FieldName  = field.Name;
                field.SourceName = field.Name;
                result.Fields.Add(field);
            }

            var timevalue = TimeSpan.FromSeconds(dateFrom.HasValue ? (DateTime.Now - dateFrom.Value).TotalSeconds - TimerOffset.Get(_context) : 0);

            field = new ValueDataField
            {
                Name          = TimerFieldName,
                Caption       = "Таймер",
                FieldType     = typeof(TimeSpan),
                LabelPosition = "Left",
                DisplayFormat = "hh\\:mm\\:ss",
                Value         = timevalue,
                IsEnabled     = false,
                SetFocus      = false,
                CloseDialog   = false
            };
            field.FieldName  = field.Name;
            field.SourceName = field.Name;
            result.Fields.Add(field);

            var fieldFooterMenu = new ValueDataField
            {
                Name      = "footerMenu",
                FieldType = typeof(IFooterMenu)
            };

            fieldFooterMenu.FieldName  = fieldFooterMenu.Name;
            fieldFooterMenu.SourceName = fieldFooterMenu.Name;
            fieldFooterMenu.Properties["FooterMenu"] = footerMenu.ToArray();
            result.Fields.Add(fieldFooterMenu);

            result.UpdateSource();
            return(result);
        }
        protected override void Execute(NativeActivityContext context)
        {
            const string isnullerrorformat = "Свойство '{0}' должно быть задано.";

            var entities = Entities.Get(context);

            if (entities == null)
            {
                throw new DeveloperException(isnullerrorformat, EntitiesDisplayName);
            }

            var artcodepropertyname = ArtCodePropertyName.Get(context);

            if (string.IsNullOrEmpty(artcodepropertyname))
            {
                throw new DeveloperException(isnullerrorformat, ArtCodePropertyNameDisplayName);
            }

            var operationCode = OperationCode.Get(context);

            if (string.IsNullOrEmpty(operationCode))
            {
                throw new DeveloperException(isnullerrorformat, OperationCodeDisplayName);
            }

            var boEntities = entities.OfType <WMSBusinessObject>().ToArray();

            //Получаем список артикулов из Entities
            var arts = boEntities.Select(p => p.GetProperty <string>(artcodepropertyname)).Distinct().ToArray();

            var result = boEntities.ToArray();

            var objFields = DataFieldHelper.Instance.GetDataFields(typeof(T), SettingDisplay.Detail);

            foreach (var artcode in arts)
            {
                var propList = GetPmMethodProperies(artcode, operationCode, context);
                var boEntity = result.FirstOrDefault(p => p.GetProperty <string>(artcodepropertyname) == artcode);
                if (boEntity == null)
                {
                    continue;
                }

                foreach (var method in propList.Keys)
                {
                    foreach (var property in propList[method])
                    {
                        var compareValues = result.Select(p => p.GetProperty(property)).Distinct().ToArray();
                        if (compareValues.Length <= 1)
                        {
                            continue; //Пропускаем
                        }
                        var datafield = objFields.FirstOrDefault(i => i.Name.EqIgnoreCase(property));
                        if (datafield == null)
                        {
                            throw new DeveloperException(
                                      "Ошибка в настройках '{0}' PM. Задан неизвестный параметр '{1}'.", method, property);
                        }

                        var field = new ValueDataField(datafield)
                        {
                            LabelPosition = "Top"
                        };
                        if (method == PMMethods.MUST_COMPARE_VISIBLE)
                        {
                            field.Value = boEntity.GetProperty(property);
                        }

                        if (string.IsNullOrEmpty(field.LookupCode))
                        {
                            field.CloseDialog = true;
                        }
                        else //Если поле лукап
                        {
                            field.LabelPosition = "None";
                            field.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectControl.ToString());
                            field.Set(ValueDataFieldConstants.MaxRowsOnPage, MaxRowsOnPage.Get(context));
                        }

                        var model = CreateDialogModel(context, field);
                        while (true) // делаем это для возврата на форму
                        {
                            if (!ShowDialog(model))
                            {
                                throw new OperationException("Значения полей не были указаны.");
                            }

                            var errorMessage = new StringBuilder();
                            switch (string.Format("1{0}", model.MenuResult))
                            {
                            case "1":
                            case "1Return":
                                var value = model[field.Name];
                                if (!compareValues.Any(p => Equals(value, p)))
                                {
                                    errorMessage.AppendLine(string.Format("Неверное значение поля '{0}'.",
                                                                          field.Caption));
                                }
                                else
                                {
                                    result = result.Where(p => Equals(value, p.GetProperty(property))).ToArray();
                                }
                                break;

                            default:
                                throw new DeveloperException("Неизвестная команда.");
                            }
                            // если были ошибки, то покажем что не так и вернемся на форму
                            if (errorMessage.Length > 0)
                            {
                                var viewService = IoC.Instance.Resolve <IViewService>();
                                viewService.ShowDialog("Ошибка", errorMessage.ToString(), MessageBoxButton.OK,
                                                       MessageBoxImage.Error, MessageBoxResult.OK);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
            }

            Result.Set(context, result.OfType <T>().ToArray());
        }
Esempio n. 27
0
        protected override void Execute(NativeActivityContext context)
        {
            var entity = Entity.Get(context);
            var obj    = entity as WMSBusinessObject;

            if (obj == null)
            {
                throw new NotImplementedException(string.Format("Тип '{0}' не поддерживается", entity.GetType()));
            }
            // получим параметры MUST_SET
            var mustSetList = GetMustSetProperies(context).ToArray();

            var objFields = DataFieldHelper.Instance.GetDataFields(typeof(T), wmsMLC.General.PL.SettingDisplay.Detail);
            var history   = HistoryPropertyValue.Get(context);

            // проход по каждому параметру вперед и назад
            foreach (var m in mustSetList)
            {
                // если у параметра есть значение, то оно может быть по умолчанию
                var defaultValue = obj.GetPropertyDefaultValue(m.PmConfig.ObjectName_r);
                if (obj.GetProperty(m.PmConfig.ObjectName_r) == null || defaultValue != null || m.Show)
                {
                    var datafield = objFields.FirstOrDefault(i => i.Name.EqIgnoreCase(m.PmConfig.ObjectName_r));
                    if (datafield == null)
                    {
                        throw new DeveloperException("Ошибка в настройках {1} менеджера товара. Задан неизвестный параметр '{0}'.", m.PmConfig.ObjectName_r, m.PmConfig.MethodCode_r);
                    }

                    var field = new ValueDataField(datafield)
                    {
                        LabelPosition = "Top"
                    };

                    if (defaultValue != null)
                    {
                        field.Value = defaultValue;
                    }

                    if (m.Show)
                    {
                        field.Value = obj.GetProperty(m.PmConfig.ObjectName_r);
                    }

                    //Массовый ввод
                    if (m.Set && m.PmConfig.PMCONFIGINPUTMASS == true && history != null && history.ContainsKey(field.Name))
                    {
                        field.Value = history[field.Name];
                    }

                    if (string.IsNullOrEmpty(field.LookupCode))
                    {
                        field.CloseDialog = true;
                    }
                    else //Если поле лукап
                    {
                        field.LabelPosition = "None";
                        field.Set(ValueDataFieldConstants.LookupType, RclLookupType.SelectControl.ToString());
                        field.Set(ValueDataFieldConstants.MaxRowsOnPage, MaxRowsOnPage.Get(context));
                    }

                    var model = GetMainModel(context, field);
                    if (m.Show)
                    {
                        model.PanelCaption = model.PanelCaption + " [Опционально]";
                    }

                    while (true) // делаем это для возврата на форму
                    {
                        var show = ShowDialog(model);
                        if (!show && m.Set)
                        {
                            throw new OperationException("Не были указаны обязательные параметры.");
                        }

                        if (!show && m.Show)
                        {
                            break;
                        }

                        var errorMessage = new StringBuilder();
                        switch (string.Format("1{0}", model.MenuResult))
                        {
                        case "1":
                        case "1F1":
                            var value = model[field.Name];
                            if (value == null && m.Set)
                            {
                                errorMessage.AppendLine(string.Format("Не заполнено обязательное поле '{0}'.",
                                                                      field.Caption));
                            }
                            else
                            {
                                //Дополнительные параметры PMConfig
                                if (m.Set && !string.IsNullOrEmpty(m.PmConfig.PMCONFIGINPUTMASK) && value is string)
                                {
                                    var expressions = Regex.Matches((string)value, m.PmConfig.PMCONFIGINPUTMASK,
                                                                    RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
                                    if (expressions.Count > 0)
                                    {
                                        errorMessage.AppendLine(string.Format("Поле '{0}' не прошло проверку по маске.", field.Caption));
                                    }
                                }

                                if (errorMessage.Length == 0)
                                {
                                    obj.SetProperty(field.Name, value);
                                    if (history != null)
                                    {
                                        history[field.Name] = value;
                                    }
                                }
                            }
                            break;

                        default:
                            throw new DeveloperException("Неизвестная команда.");
                        }
                        // если были ошибки, то покажем что не так и вернемся на форму
                        if (errorMessage.Length > 0)
                        {
                            var viewService = IoC.Instance.Resolve <IViewService>();
                            viewService.ShowDialog("Ошибка", errorMessage.ToString(),
                                                   System.Windows.MessageBoxButton.OK,
                                                   System.Windows.MessageBoxImage.Error, System.Windows.MessageBoxResult.OK);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }

            Entity.Set(context, obj);
            if (history != null)
            {
                HistoryPropertyValue.Set(context, history);
            }
        }
Esempio n. 28
0
 private bool CanMenuCommand(ValueDataField parameter)
 {
     return(!WaitIndicatorVisible && Fields != null && Fields.Count > 0);
 }
Esempio n. 29
0
        private void InitializeProperties(ValueDataField field)
        {
            string svalue;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.LookupType, IsWfDesignMode, out svalue))
            {
                LookupType = (RclLookupType)Enum.Parse(typeof(RclLookupType), svalue);
            }

            int ivalue;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.MaxRows, IsWfDesignMode, out ivalue))
            {
                MaxRows = ivalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.MaxRowsOnPage, IsWfDesignMode, out ivalue))
            {
                MaxRowsOnPage = ivalue;
            }

            bool bvalue;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.CloseDialogOnSelectedItemChanged,
                                                IsWfDesignMode, out bvalue))
            {
                CloseDialogOnSelectedItemChanged = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.UseFunctionKeys, IsWfDesignMode,
                                                out bvalue))
            {
                UseFunctionKeys = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ParentKeyPreview, IsWfDesignMode,
                                                out bvalue))
            {
                ParentKeyPreview = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.HotKey, IsWfDesignMode, out svalue))
            {
                HotKey = (Key)Enum.Parse(typeof(Key), svalue);
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.CustomDisplayMember, IsWfDesignMode,
                                                out svalue))
            {
                CustomDisplayMember = svalue;
            }

            object listValue;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ItemsSource, IsWfDesignMode,
                                                out listValue))
            {
                var list = listValue as IList;
                if (list == null)
                {
                    var listSource = listValue as IListSource;
                    if (listSource != null)
                    {
                        list = listSource.GetList();
                    }
                }

                ItemsSource = list;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ValueMember, IsWfDesignMode, out svalue))
            {
                ValueMember = svalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.DisplayMember, IsWfDesignMode, out svalue))
            {
                DisplayMember = svalue;
            }

            ValueDataField[] valueDataFields;
            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.FooterMenu, IsWfDesignMode,
                                                out valueDataFields))
            {
                FooterMenu = valueDataFields;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ShowControlMenu, IsWfDesignMode,
                                                out bvalue))
            {
                ShowControlMenu = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.IsDoNotMovedFocusOnNextControl,
                                                IsWfDesignMode, out bvalue))
            {
                IsDoNotMovedFocusOnNextControl = bvalue;
            }

            DataField[] dataFields;
            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.Fields, IsWfDesignMode, out dataFields))
            {
                Fields = dataFields;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.DisplaySetting, IsWfDesignMode,
                                                out svalue))
            {
                DisplaySetting = (SettingDisplay)Enum.Parse(typeof(SettingDisplay), svalue);
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ShowAutoFilterRow, IsWfDesignMode,
                                                out bvalue))
            {
                ShowAutoFilterRow = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.AllowAutoShowAutoFilterRow,
                                                IsWfDesignMode,
                                                out bvalue))
            {
                AllowAutoShowAutoFilterRow = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.ShowTotalRow,
                                                IsWfDesignMode,
                                                out bvalue))
            {
                ShowTotalRow = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.DoNotActionOnEnterKey,
                                                IsWfDesignMode,
                                                out bvalue))
            {
                DoNotActionOnEnterKey = bvalue;
            }

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.DoNotAllowUpdateShowAutoFilterRowFromXml,
                                                IsWfDesignMode,
                                                out bvalue))
            {
                DoNotAllowUpdateShowAutoFilterRowFromXml = bvalue;
            }

            string[] bestFitColumnNames;
            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.BestFitColumnNames, IsWfDesignMode,
                                                out bestFitColumnNames))
            {
                BestFitColumnNames = bestFitColumnNames;
            }

            IEnumerable <FormatConditionInfo> formatConditions;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.FormatConditions, true,
                                                out formatConditions))
            {
                FormatConditions = formatConditions;
            }
        }
Esempio n. 30
0
        public static CustomButton CreateCustomButton(ValueDataField field, ICommand command, double fontSize, bool isWfDesignMode)
        {
            var hotkey = field.Value.To(Key.None);

            var    hotkey2 = Key.None;
            string svalue;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.HotKey2, isWfDesignMode, out svalue))
            {
                hotkey2 = svalue.To(Key.None);
            }

            var button = new CustomButton
            {
                Text = field.Caption,
                HorizontalContentAlignment = HorizontalAlignment.Left,
                HotKey           = hotkey,
                HotKey2          = hotkey2,
                Command          = command,
                CommandParameter = field,
                IsEnabled        = field.IsEnabled.HasValue && field.IsEnabled.Value,
                Visibility       = field.Visible ? Visibility.Visible : Visibility.Collapsed,
            };

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.SuffixText, isWfDesignMode, out svalue))
            {
                button.SuffixText = svalue;
            }

            bool isNotMenuButton;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.IsNotMenuButton, isWfDesignMode, out isNotMenuButton))
            {
                button.IsNotMenuButton = isNotMenuButton;
            }

            bool transferHotKeyToControls;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.TransferHotKeyToControls, isWfDesignMode, out transferHotKeyToControls))
            {
                button.TransferHotKeyToControls = transferHotKeyToControls;
            }

            ICommand icommand;

            if (DataField.TryGetFieldProperties(field, ValueDataFieldConstants.Command, isWfDesignMode, out icommand))
            {
                button.Command = icommand;
            }

            if (fontSize > 0)
            {
                button.FontSize = fontSize;
            }

            if (field.SetFocus)
            {
                button.BackgroundFocus();
            }

            return(button);
        }