How Can We Help?
Nadawanie wartości domyślnych przy tworzeniu nowego obiektu
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.
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).