Nadawanie wartości domyślnych przy tworzeniu nowego obiektu

< Cofnij

Określenie wartości domyślnych dla właściwości odbywa się poprzez edycję modelu.

Aby określić wartość domyślna dla danej właściwości klasy należy odnaleźć ją w gałęzi BOModel OwnMembers.

 

 

Następnie dla wybranej właściwości określić DefaultValue.

  • W przypadku właściwości, której typ to KLASA należy w DefaultValue podać Oid obiektu, który ma zostać przypisany. ( przykład powyżej )
  • W przypadku właściwości, której typ to ENUM należy podać nazwę wartości (nie nazwę wyświetlaną) lub wartość liczbową odpowiadającą danej wartości. Nazwę wartości enum możemy znaleźć w gałęzi Localization->Enums
  • W przypadku właściwości, której typ to DATETIME możemy podać wartość: today, tommorow, yesterday lub datę
  • W przypadku właściwości z pozostałymi typami wystarczy wprowadzić wartość odpowiadającą danemu typowi.

UWAGA!

Od programisty zależy czy będziemy mogli przypisać wartość domyślną dla właściwości.
Informację na temat możliwości przypisania wartości domyślnej jest zapisana w polu AllowDefaultValue.

 

Informacje dla programistów:

W celu umożliwienia nadawania wartości domyślnej w model editor należy podczas projektowania klasy i jej właściwości określić dla każdej właściwości z osobna atrybut AllowDefaultValue(true/false).

  • W przypadku ustawienia atrybutu z parametrem TRUE. Użytkownik edytując model będzie miał możliwość wprowadzenia wartości domyślnej dla właściwości.
  • W przypadku ustawienia atrybutu na FALSE lub braku atrybutu AllowDefaultValue przy właściwości, użytkownik nie będzie mógł wprowadzić wartości domyślnej.

 

W momencie gdy użytkownik wprowadzi wartość domyślną a następnie wygeneruje nowy obiekt używając standardowych mechanizmów ( przycisk NEW ) dla obiektu zostaną nadane wartości zgodnie z tymi wprowadzonymi w modelu aplikacji. Obsługuje to kontroler:

 

public partial class DocDefaultValueController : ViewController
    {
        private NewObjectViewController newObjectViewController;
        public DocDefaultValueController()
        {
            InitializeComponent();
            // Target required Views (via the TargetXXX properties) and create their Actions.
        }
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.

            newObjectViewController = Frame.GetController<NewObjectViewController>();
            if (newObjectViewController != null)
            {
                newObjectViewController.ObjectCreated += NewObjectViewController_ObjectCreated;
            }
        }

        private void NewObjectViewController_ObjectCreated(object sender, ObjectCreatedEventArgs e)
        {
            DocDefaultValue.NadajWartosciPoczatkowe(Application, e.ObjectSpace, e.CreatedObject);

        }

        protected override void OnViewControlsCreated()
        {
            base.OnViewControlsCreated();
            // Access and customize the target View control.
        }
        protected override void OnDeactivated()
        {
            if (newObjectViewController != null)
            {
                newObjectViewController.ObjectCreated -= NewObjectViewController_ObjectCreated;
            }
            // Unsubscribe from previously subscribed events and release other references and resources.
            base.OnDeactivated();
        }
    }

W przypadku generowania nowego obiektu z kodu należy użyć metody statycznej NadajWartosciPoczatkowe, która znajduje się w statycznej klasie DocDefaultValue:
NadajWartosciPoczatkowe(XafApplication Application, IObjectSpace ObjectSpace, object obj)
.

Dalej >