/// <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); //Пользовательское событие показа формы справочника. }
/// <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); }
/// <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; }