Пример #1
0
        /// <summary>
        /// Cобытие EditClick.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HandleEditClick(object sender, EventArgs e)
        {
            if (sys.IsEmpty(EditFormName))
            {
                if (ObjRef != null)
                {
                    string EntityBriefLocal;
                    string EntityBriefLink;
                    string NeedAttr;
                    if (!ObjRef.GetLinkEntityBrief(AttrBrief, out EntityBriefLocal, out EntityBriefLink, out NeedAttr))
                    {
                        return;
                    }
                    if (EntityBriefLink == "")
                    {
                        return;
                    }
                    if (NeedAttr == "")
                    {
                        return;
                    }

                    var Params = new DirectoryParams();
                    Params.EntityBrief     = EntityBriefLink;
                    Params.ObjectID        = ObjectID;
                    Params.Multiselect     = false;
                    Params.showMode        = ShowMode.ExecMSQL;
                    Params.OuterWHERE      = OuterWHERE;
                    Params.СustomMSQLQuery = СustomQuery;
                    Params.ReturnAttrBrief = NeedAttr;
                    //EntityBriefLink, ObjectID, false, true, "Exec", OuterWHERE, СustomQuery, NeedAttr
                    //var F = new FormDirectory(EntityBriefLink, ObjectID, false, true, "Exec", OuterWHERE, СustomQuery, NeedAttr);
                    var F = new FormDirectory(EntityBriefLink, ref Params);
                    if (!F.FilterSet)
                    {
                        return;
                    }
                    F.ShowDialog();
                    if (Params.ReturnObjectID != "")
                    {
                        //Форма закрылась по кнопке Ок.
                        this.ObjectID = Params.ReturnObjectID;
                        if (Params.ReturnAttrValue == "")
                        {
                            string msqlLocal = "SELECT " + NeedAttr + " FROM " + EntityBriefLink + " WHERE " + ParserData.KeyBrief.ObjectID + " = " + Params.ReturnObjectID;
                            string sqlLocal  = sys.Parse(msqlLocal);
                            this.Text = sys.GetValue(DirectionQuery.Remote, sqlLocal);
                        }
                        else
                        {
                            this.Text = Params.ReturnAttrValue;
                        }
                    }
                }
            }
            this.OnEditClick(e); //Пользовательское событие показа формы справочника.
        }
Пример #2
0
        /// <summary>
        /// Простой показ справочника, остальные параметры по умолчанию.
        /// </summary>
        /// <param name="entityBrief">Cущность,которую показываем.</param>
        /// <param name="formProject">Это имя DLL, где находится форма свойств с именем FormName. Форма свойств появляется при двойном клике на строке грида.</param>
        /// <param name="formName">Имя самой формы свойства объекта. Если в DLL всего одна форма, то formProject и formName совпадают.</param>
        /// <param name="objectID">ИД объекта, которые будет выделено по умолчанию</param>
        /// <param name="listObjectID">Список ИД объектов, которые показываем</param>
        /// <param name="customSQL">Произвольный текст запроса SQL</param>
        /// <param name="customMSQL">Произвольный текст запроса MSQL</param>
        /// <returns>Форма справочника тип FormFBA</returns>
        public static FormFBA ShowDirectorySimple(string entityBrief,
                                                  string formProject,
                                                  string formName,
                                                  string objectID,
                                                  string[] listObjectID,
                                                  string customSQL,
                                                  string customMSQL)
        {
            //FBALink.Entity:ДогСтрах,ObjectID:41297
            //FBALink.Entity:ДогСтрах,ObjectID:63600
            //FBALink.Entity:ДогСтрах,ObjectID:2459
            string[] ids = null;
            if (listObjectID != null)
            {
                //ids = new string[ListObjectID.Length];
                entityBrief = StrBetweenStr(listObjectID[0], "FBALink.Entity:", ",ObjectID");
                int p  = listObjectID[0].IndexOfEx("ObjectID:");
                var sb = new StringBuilder();

                for (int i = 0; i < listObjectID.Length; i++)
                {
                    string id = listObjectID[i].SubStringEnd(p + 9);
                    if ((id != "") && (id != Var.CR))
                    {
                        sb.Append(id);
                    }
                }
                ids = sb.ToString().Split('\r');
            }

            var listParams = new DirectoryParams();

            listParams.EntityBrief     = entityBrief;
            listParams.ObjectID        = objectID;
            listParams.Multiselect     = true;
            listParams.showMode        = ShowMode.Filter;
            listParams.FormProject     = formProject;
            listParams.FormName        = formName;
            listParams.ListObjectID    = ids;
            listParams.СustomMSQLQuery = customMSQL;
            listParams.СustomSQLQuery  = customSQL;
            if (!string.IsNullOrEmpty(customMSQL))
            {
                listParams.showMode = ShowMode.ExecMSQL;
            }
            if (!string.IsNullOrEmpty(customSQL))
            {
                listParams.showMode = ShowMode.ExecSQL;
            }

            if ((!string.IsNullOrEmpty(customMSQL)) || (!string.IsNullOrEmpty(customSQL)))
            {
                listParams.ButtonFilter = false;
                listParams.ButtonAdd    = false;
                listParams.ButtonEdit   = false;
                listParams.ButtonDelete = false;
            }

            var fObj = new FormDirectory(entityBrief, ref listParams);

            fObj.Show();
            return(fObj);
        }
Пример #3
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="caption">Заголовок формы справочника</param>
        /// <param name="dirparams">Параметры открытия справочника. Тип DirectoryParams.</param>
        public FormDirectory(string caption, ref DirectoryParams dirparams)
        {
            InitializeComponent();
            this.listParams = dirparams;
            if (string.IsNullOrEmpty(caption))
            {
                if (dirparams.EntityBrief != "")
                {
                    caption = caption + dirparams.EntityBrief;
                }
                if (!sys.IsEmpty(dirparams.ObjectID))
                {
                    caption = caption.AddRightSpace() + "Object: " + dirparams.ObjectID;
                }
            }
            Text = caption;
            int Check = 0;

            if (dirparams.showMode == ShowMode.Filter)
            {
                Check = 1;
            }
            if (dirparams.showMode == ShowMode.ExecMSQL)
            {
                Check = 1;
            }
            if (dirparams.showMode == ShowMode.ExecSQL)
            {
                Check = 1;
            }
            if (Check == 0)
            {
                sys.SM("Неверно указан указан режим отображения справочника!");
                return;
            }
            tb_N1.Visible = dirparams.ButtonFilter;  //(dirparams.showMode == ShowMode.Filter) ;  //Filter
            tb_N2.Visible = dirparams.ButtonRefresh; //AllowUpdate; //Refresh
            tb_N3.Visible = dirparams.ButtonAdd;     //AllowUpdate; //New
            tb_N4.Visible = dirparams.ButtonEdit;    //AllowUpdate; //Edit
            tb_N5.Visible = dirparams.ButtonDelete;  //AllowUpdate; //Delete
            tb_N6.Visible = dirparams.ButtonSearch;  //AllowUpdate; //Delete

            btnCancel.Visible   = tb_N4.Visible;     //Если доступно изменение, то кнопка Cancel видима.
            filter.ListObjectID = dirparams.ListObjectID;
            filter.EntityBrief  = dirparams.EntityBrief;
            filter.ColumnWidth  = dirparams.ColumnWidth;

            if (dirparams.showMode == ShowMode.Filter)
            {
                Action(CommandType.Filter);
            }
            if (dirparams.showMode == ShowMode.ExecMSQL)
            {
                FormFilter.FilterRead(ref filter, false);
                if ((filter.FullQuerySQL == "") || (filter.AttrSelect == ""))
                {
                    Action(CommandType.Filter);
                }
            }

            if (dirparams.showMode == ShowMode.ExecSQL)
            {
                Action(CommandType.ExecSQL);
            }
            if (dirparams.showMode == ShowMode.ExecMSQL)
            {
                Action(CommandType.ExecMSQL);
            }

            //var clickController = new CellClickEvent();
            //grid1.Controller.AddController(clickController);
            //grid1.EndEditingRowOnValidate = false;
            // grid1.AcceptsInputChar = false;
        }