コード例 #1
0
 protected override void OnDeactivated()
 {
     printSelectionBaseController = Frame.GetController <PrintSelectionBaseController>();
     if (printSelectionBaseController != null)
     {
         printSelectionBaseController.ShowInReportAction.Execute -= ShowInReportAction_Execute;
     }
     base.OnDeactivated();
 }
コード例 #2
0
        protected override void OnActivated()
        {
            base.OnActivated();

            novc = Frame.GetController <NewObjectViewController>();
            if (novc != null)
            {
                bool exists = false;
                for (int i = 0; i < novc.NewObjectAction.Items.Count; i++)
                {
                    if (novc.NewObjectAction.Items[i].Id == idCustom)
                    {
                        exists = true;
                        break;
                    }
                }
                if (!exists && novc.NewObjectAction.Items.Count > 0)
                {
                    // Смена заголовка на кнопке создания пустой служебной записки
                    novc.NewObjectAction.Items[0].Caption = captionStandart;

                    // Создать по образцу
                    ChoiceActionItem NewByTemplate = new ChoiceActionItem(idCustom, captionCustom, novc.NewObjectAction.Items[0].Data);
                    NewByTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName;
                    novc.NewObjectAction.Items.Add(NewByTemplate);

                    /*
                     * // Сохранить как шаблон
                     * ChoiceActionItem SaveTemplate = new ChoiceActionItem(idSaveAsTemplate, captionCustomAsTemplate, novc.NewObjectAction.Items[0].Data);
                     * SaveTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName;
                     * novc.NewObjectAction.Items.Add(SaveTemplate);
                     */
                }
                novc.NewObjectAction.Execute += new SingleChoiceActionExecuteEventHandler(CustomNewActionController_Execute);

                // Настройка способа реакции на кнопке
                novc.NewObjectAction.ShowItemsOnClick = !(novc.NewObjectAction.Items.Count < 2);
            }

            View.CurrentObjectChanged += new EventHandler(View_CurrentObjectChanged);

            View.ObjectSpace.ObjectChanged += new EventHandler <ObjectChangedEventArgs>(ObjectSpace_ObjectChanged);
            View.ObjectSpace.ObjectSaved   += new EventHandler <ObjectManipulatingEventArgs>(ObjectSpace_ObjectSaved);

            EnableButton();

            psbc = Frame.GetController <PrintSelectionBaseController>();
            if (psbc != null)
            {
                psbc.ShowInReportAction.SelectionDependencyType = SelectionDependencyType.RequireSingleObject;
            }

            // Настройка фильтров
            csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser;

            //csCSecurityUser user = ObjectSpace.FindObject<csCSecurityUser>(new BinaryOperator("UserName", "PERSONAL\\12222"));

            user = ObjectSpace.GetObjectByKey <csCSecurityUser>(user.Oid);
            if ((View is ListView) & (View.ObjectTypeInfo.Type == typeof(fmPaymentRequestMemorandum)))
            {
                csCSecurityRole  administratorRole = ObjectSpace.FindObject <csCSecurityRole>(new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName), true);
                CriteriaOperator criteriaOr        = null;
                if (user != null && administratorRole != null)
                {
                    bool isAdmin = false;
                    foreach (var role in user.Roles)
                    {
                        if (role.Name == SecurityStrategy.AdministratorRoleName)
                        {
                            isAdmin = true;
                            break;
                        }
                    }
                    if (!isAdmin)
                    {
//                    if (true) {

/*
 *                      // Список пользователей, ассоциированных с группами текущего пользователя
 *                      List<csCSecurityUser> userList = new List<csCSecurityUser>();
 *                      foreach (csCSecurityRole role in GetMainBuhRole(ObjectSpace).ChildRoles) {
 *                          if (user.Roles.IndexOf(role) != -1) {
 *                              foreach (SecurityUserWithRolesBase userOfGroupBase in role.Users) {
 *                                  csCSecurityUser userOfGroup = userOfGroupBase as csCSecurityUser;
 *                                  if (userOfGroup != null && !userList.Contains(userOfGroup)) {
 *                                      userList.Add(userOfGroup);
 *                                  }
 *                              }
 *                          }
 *                      }
 *
 *                      // Список всех доступных служебных записок reqMemoListTotal
 *                      List<fmPaymentRequestMemorandum> reqMemoListTotal = new List<fmPaymentRequestMemorandum>();
 *                      foreach (csCSecurityUser person in userList) {
 *                          XPQuery<fmPaymentRequestMemorandum> RMs = new XPQuery<fmPaymentRequestMemorandum>(((ObjectSpace)ObjectSpace).Session);
 *                          List<fmPaymentRequestMemorandum> queryRM = (from rm in RMs
 *                                                                      where rm.Creator == person
 *                                                                         //&& user.Roles.IndexOf(rm.OwnerRole) != 0
 *                                                                      select rm).ToList();
 *                          foreach (fmPaymentRequestMemorandum rm in queryRM) {
 *                              if (user.Roles.IndexOf(rm.OwnerRole) != -1) {
 *                                  reqMemoListTotal.Add(rm);
 *                              }
 *                          }
 *                          //reqMemoListTotal.AddRange(queryRM);
 *                      }
 *
 *                      Guid[] reqMemoIdListTotal = (from r in reqMemoListTotal
 *                                                   select r.Oid).ToArray();
 */
                        //CriteriaOperator UserHasAdminRole = CriteriaOperator.Parse("Creator.Roles[Name = 'Administrator'].Count() > 0");
                        //CriteriaOperator isTemplate = CriteriaOperator.Parse("State == 'TEMPLATE'");
                        criteriaOr = CriteriaOperator.Or
                                     (
                            new BinaryOperator(new OperandProperty("FBKReceiver"), new ConstantValue(user.Staff), BinaryOperatorType.Equal)
                            , new BinaryOperator(new OperandProperty("Creator"), new ConstantValue(user), BinaryOperatorType.Equal)
                            , new BinaryOperator(new OperandProperty("Requester"), new ConstantValue(user.Staff), BinaryOperatorType.Equal)
                            , new BinaryOperator(new OperandProperty("FirstSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal)
                            , new BinaryOperator(new OperandProperty("SecondSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal)
                            //,isTemplate
                            , new InOperator("OwnerRole", fmCPRPaymentRequestBusinesLogic.GetActualRoles(ObjectSpace, user).ToArray())
                                     );
                    }
                }
                ((ListView)View).CollectionSource.Criteria["MemorandumFilter"] = criteriaOr;
            }
        }
コード例 #3
0
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.
            PrintSelectionBaseController PrintSelectionController = Frame.GetController <PrintSelectionBaseController>();

            if (PrintSelectionController != null && PrintSelectionController.Actions.Count > 0)
            {
                if (PrintSelectionController.Actions["ShowInReportV2"] != null)
                {
                    if (checkObjectType())
                    {
                        PrintSelectionController.Actions["ShowInReportV2"].Active.SetItemValue("EnableAction", false);
                    }
                    //PrintSelectionController.Actions["ShowInReportV2"].Executing += FilterCopyFromController_Executing;
                }
            }

            ShowInPlaceReportAction.Items.Clear();
            if (checkObjectType())
            {
                bool             found = false;
                SystemUsers      user  = (SystemUsers)SecuritySystem.CurrentUser;
                ChoiceActionItem setStatusItem;
                foreach (FilteringCriterion criterion in ObjectSpace.GetObjects <FilteringCriterion>())
                {
                    if (criterion.ObjectType == typeof(ReportDataV2))
                    {
                        if (criterion.Roles.Count > 0)
                        {
                            foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>(CriteriaOperator.Parse(criterion.Criterion)))
                            {
                                if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString())
                                {
                                    //if (criterion.Criterion.Contains("DataTypeCaption"))
                                    //{
                                    found = true;

                                    foreach (IPermissionPolicyRole role in user.Roles)
                                    {
                                        if (criterion.Roles.Where(p => p.FilterRole.Name == role.Name).Count() > 0)
                                        {
                                            if (rpt.IsInplaceReport)
                                            {
                                                if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null)
                                                {
                                                    setStatusItem = new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName);
                                                    ShowInPlaceReportAction.Items.Add(setStatusItem);
                                                }
                                            }
                                        }
                                    }
                                    //}
                                }
                            }
                        }
                        else
                        {
                            foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>(CriteriaOperator.Parse(criterion.Criterion)))
                            {
                                if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString())
                                {
                                    //if (criterion.Criterion.Contains("DataTypeCaption"))
                                    //{
                                    found = true;

                                    if (rpt.IsInplaceReport)
                                    {
                                        if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null)
                                        {
                                            if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null)
                                            {
                                                setStatusItem = new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName);
                                                ShowInPlaceReportAction.Items.Add(setStatusItem);
                                            }
                                        }
                                    }
                                    //}
                                }
                            }
                        }
                    }
                }
                if (!found)
                {
                    foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>())
                    {
                        if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString() && rpt.IsInplaceReport)
                        {
                            if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null)
                            {
                                ShowInPlaceReportAction.Items.Add(new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName));
                            }
                        }
                    }
                }

                if (View.GetType() == typeof(DetailView))
                {
                    this.ShowInPlaceReportAction.Active.SetItemValue("Enabled", ((DetailView)View).ViewEditMode == ViewEditMode.View);
                    ((DetailView)View).ViewEditModeChanged += MyCustomInplaceReportController_ViewEditModeChanged;
                }
            }
        }