protected override void OnChanged(string propertyName, object oldValue, object newValue) { base.OnChanged(propertyName, oldValue, newValue); if (!this.Session.IsObjectToDelete(this)) { switch (propertyName) { case "Anlage": if (newValue != null) { boAnlage selectedAnlage = this.Session.GetObjectByKey <boAnlage>(this.Anlage.Oid); if (selectedAnlage.Liegenschaft != null) { this.Liegenschaft = this.Session.GetObjectByKey <boLiegenschaft>(selectedAnlage.Liegenschaft.Oid); //den Mandanten auch gleich setzen this.Mandant = this.Session.GetObjectByKey <boMandant>(selectedAnlage.Liegenschaft.Mandant.Oid); this.Betreff = selectedAnlage.AnlagenNummer; } } else { this.Betreff = null; this.Liegenschaft = null; this.Mandant = null; } break; } } }
private void createMenue(SingleChoiceAction action) { IObjectSpace os = this.ObjectSpace; DetailView curView = (DetailView)View; boAnlage curAnlage = os.GetObjectByKey <boAnlage>(((boAnlage)curView.CurrentObject).Oid); action.Items.Clear(); switch (action.Id) { case ("doAddMessung"): { boAnlagenArt curArt = os.GetObjectByKey <boAnlagenArt>(curAnlage.AnlagenArt.Oid); action.ImageName = "system_monitor"; if (curArt.lstMesstypen != null) { foreach (boMesstyp messtyp in curArt.lstMesstypen) { ChoiceActionItem curItem = new ChoiceActionItem(messtyp.Oid.ToString(), messtyp.Bezeichnung, messtyp); curItem.ImageName = "system_monitor"; action.Items.Add(curItem); } } break; } } }
public void doAddAnlage_Execute(object sender, SingleChoiceActionExecuteEventArgs e) { //IObjectSpace os = this.ObjectSpace; IObjectSpace os = Application.CreateObjectSpace(); DetailView curView = (DetailView)View; boLiegenschaft curLiegenschaft = os.GetObjectByKey <boLiegenschaft>(((boLiegenschaft)curView.CurrentObject).Oid); //allgemein -> Auswahl der Parameter und dann DetailView öffnen ChoiceActionItem currentSelection = e.SelectedChoiceActionItem; boAnlage mainUnit; if (currentSelection.ParentItem != null) { boAnlage result = null; boAnlagenArt selectedArt = os.GetObjectByKey <boAnlagenArt>(((boAnlagenArt)currentSelection.Data).Oid); if (currentSelection.ParentItem.Data.GetType() == typeof(LgHaustechnikKomponente)) { //1. Anlage zu einer bestehenden Komponente hinzufügen LgHaustechnikKomponente curKomponente = os.GetObjectByKey <LgHaustechnikKomponente>(((LgHaustechnikKomponente)currentSelection.ParentItem.Data).Oid); if (curKomponente != null) { //gibt es eine Hauptanlage? mainUnit = curKomponente.lstAnlagen.Where(t => t.ParentAnlage == null).FirstOrDefault(); if (mainUnit != null) { //welche Anlagenart? result = os.CreateObject <boAnlage>(); result.Liegenschaft = curLiegenschaft; result.HaustechnikKomponente = curKomponente; result.ParentAnlage = os.GetObjectByKey <boAnlage>(mainUnit.Oid); } //die Hauptanlage der Komponente finden result.AnlagenArt = selectedArt; } } //2. Anlage zur Liegenschaft hinzufügen //Wenn ein Item gewählt wurde das als Data die Gruppe hat: if (currentSelection.ParentItem.Data.GetType() == typeof(boLiegenschaft)) { result = os.CreateObject <boAnlage>(); result.Liegenschaft = curLiegenschaft; if (currentSelection.Data.GetType() == typeof(boAnlagenKategorie)) { result.AnlagenKategorie = os.GetObjectByKey <boAnlagenKategorie>(((boAnlagenKategorie)currentSelection.Data).Oid); } else { result.AnlagenArt = selectedArt; } } if (result != null) { DetailView dv = Application.CreateDetailView(os, result); e.ShowViewParameters.CreatedView = dv; } } }
protected override void OnActivated() { base.OnActivated(); // Perform various tasks depending on the target View. curView = (DetailView)View; curAnlage = (boAnlage)curView.CurrentObject; // XPObjectSpace os = (XPObjectSpace)curView.ObjectSpace; if (curAnlage != null) { if (curAnlage.Typ != null) { fiHerstellerProdukt curProdukt = curView.ObjectSpace.GetObjectByKey <fiHerstellerProdukt>(curAnlage.Typ.Oid); if (curProdukt != null) { curAnlage.generateAnlagenparameter(curProdukt); curAnlage.Save(); curView.ObjectSpace.CommitChanges(); } } if (curAnlage.AnlagenArt != null) { boAnlagenArt curAnlagenart = curView.ObjectSpace.GetObjectByKey <boAnlagenArt>(curAnlage.AnlagenArt.Oid); if (curAnlagenart != null) { curAnlage.generateAnlagenparameter(curAnlagenart); curAnlage.Save(); curView.ObjectSpace.CommitChanges(); } } createStatusAction(); if (!curView.ObjectSpace.IsNewObject(curAnlage)) //if (curAnlage.AnlagenArt != null) { createMenue(doAddKomponente); } curAnlage.checkAnlagenActions(); curAnlage.Save(); curView.ObjectSpace.CommitChanges(); curAnlage.checkProduktActions(); curAnlage.Save(); curView.ObjectSpace.CommitChanges(); this.View.Refresh(); } }
private void doOpenBuildingDesigner_Execute(object sender, PopupWindowShowActionExecuteEventArgs e) { //abspeichern des Begäudes //das Gebäude gleich in die Anlagenkomponente schreiben IObjectSpace workingOs = Application.CreateObjectSpace(); DetailView curView = (DetailView)View; fiGebaeude curbuilding = (fiGebaeude)e.PopupWindowViewCurrentObject; curbuilding.Save(); e.PopupWindowView.ObjectSpace.CommitChanges(); boAnlage curAnlage = (boAnlage)curView.CurrentObject; }
private void doOpenBuildingDesigner_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e) { IObjectSpace workingOs = Application.CreateObjectSpace(); DetailView curView = (DetailView)View; boAnlage curAnlage = (boAnlage)curView.CurrentObject; fiGebaeude workingBuilding; boLiegenschaft curLiegenschaft = workingOs.GetObjectByKey <boLiegenschaft>(curAnlage.Liegenschaft.Oid); //ein neues Gebäude erstellen //ist bereits ein Gebäude gewählt dann dieses übernehmen if (curAnlage.Gebaeude != null) { workingBuilding = workingOs.GetObjectByKey <fiGebaeude>(curAnlage.Gebaeude.Oid); } else { workingBuilding = workingOs.CreateObject <fiGebaeude>(); workingBuilding.Liegenschaft = curLiegenschaft; } e.View = Application.CreateDetailView(workingOs, workingBuilding); }
private void doChangeAnlagenStatus_Execute(object sender, SingleChoiceActionExecuteEventArgs e) { IObjectSpace os = this.ObjectSpace; DetailView curView = (DetailView)View; boAnlage curAnlage = os.GetObjectByKey <boAnlage>(((boAnlage)curView.CurrentObject).Oid); boAnlage workingAnlage; curAnlage.Anlagenstatus = (enmAnlagenStatus)e.SelectedChoiceActionItem.Data; //den History-Eintrag setzens curAnlage.Save(); // wenn es unteranlagen gibt müssen diese auch den neuen Status erhalten if (curAnlage.lstUnteranlagen != null) { for (int i = 0; i < curAnlage.lstUnteranlagen.Count; i++) { workingAnlage = os.GetObjectByKey <boAnlage>(curAnlage.lstUnteranlagen[i].Oid); workingAnlage.Anlagenstatus = (enmAnlagenStatus)e.SelectedChoiceActionItem.Data; } } os.CommitChanges(); }
private void doAddHaustechnikKomponente_Execute(object sender, SingleChoiceActionExecuteEventArgs e) { //die Haustechnikkomponente muss ja auch noch in die Liegenschaft integriert werden //IObjectSpace os = this.ObjectSpace; IObjectSpace workingOs = Application.CreateObjectSpace(); DetailView curView = (DetailView)View; boLiegenschaft curLiegenschaft = workingOs.GetObjectByKey <boLiegenschaft>(((boLiegenschaft)curView.CurrentObject).Oid); //was wurde gewählt ChoiceActionItem chosenOption = e.SelectedChoiceActionItem; //die Haustechnikkomponente auch gleich erstellen var message = string.Empty; if (chosenOption.Data != null) { fiTechnikeinheit chosenUnit = (fiTechnikeinheit)e.SelectedChoiceActionItem.Data; fiTechnikeinheit workingUnit = workingOs.GetObjectByKey <fiTechnikeinheit>(chosenUnit.Oid); message = chosenUnit.SystemBezeichnung; //wird aktuell nicht benötigt //prüfen ob die Maximalanzahl überschritten wurde // fiTechnikDefinition relatedDefinition = workingOs.FindObject<fiTechnikDefinition>(new GroupOperator(new //BinaryOperator("FiObjekt.Objekttyp", curLiegenschaft.GetType(), BinaryOperatorType.Equal), new BinaryOperator("Anlagenart.Oid", chosenUnit.Basisanlage.Oid, BinaryOperatorType.Equal))); LgHaustechnikKomponente addedKomponente = workingOs.CreateObject <LgHaustechnikKomponente>(); addedKomponente.Liegenschaft = curLiegenschaft; addedKomponente.Technikeinheit = workingUnit; //jetzt das Detailview dazu öffnen und die Werte anschreiben addedKomponente.Save(); //hier brauch ich ein Popup das mir die Einstellung aufmacht, um die Bezeichnung zu setzen //für jede zugeordnete Anlagengruppe eine Anlage anlegen //ich brauch ja die Hauptanlage auch noch //die Hauptanlage erstellen boAnlage parentAnlage = workingOs.CreateObject <boAnlage>(); parentAnlage.AnlagenArt = workingOs.GetObjectByKey <boAnlagenArt>(chosenUnit.Basisanlage.Oid); parentAnlage.Liegenschaft = curLiegenschaft; parentAnlage.Save(); addedKomponente.lstAnlagen.Add(parentAnlage); addedKomponente.Save(); //os.CommitChanges(); if (chosenUnit.lstAnlagenarten != null) { foreach (boAnlagenArt item in workingUnit.lstAnlagenarten) { boAnlage subAnlage = workingOs.CreateObject <boAnlage>(); subAnlage.ParentAnlage = parentAnlage; subAnlage.AnlagenArt = workingOs.GetObjectByKey <boAnlagenArt>(item.Oid); subAnlage.Liegenschaft = curLiegenschaft; subAnlage.Save(); addedKomponente.lstAnlagen.Add(subAnlage); addedKomponente.Save(); } } DetailView dv = Application.CreateDetailView(workingOs, addedKomponente, true); e.ShowViewParameters.CreatedView = dv; } refreshDetailView(); // createMenue(doAddAnlage); }