示例#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);
        }