/// <summary> /// Constructor /// </summary> /// <param name="gridName"></param> /// <param name="dm"></param> /// <param name="parentForm"></param> /// <param name="addressTextBox"></param> public GridRelatedAddressTaskPane(string gridName, IDisplayManager dm, IArchiveMasterForm parentForm, LinkLabel addressTextBox) { XceedUtility.SetUIStyle(this); m_parentForm = parentForm; m_dm = dm; m_addressTextBox = addressTextBox; LoadMenus(gridName); if (m_items1.Count != 0) { var archiveSeeForm = parentForm; if (archiveSeeForm != null) { archiveSeeForm.MasterGrid.GridControl.CurrentRowChanged += new EventHandler(MasterGrid_CurrentRowChanged); MasterGrid_CurrentRowChanged(archiveSeeForm.DisplayManager, System.EventArgs.Empty); } if (m_addressTextBox != null) { m_addressTextBox.Text = null; } } else { if (m_addressTextBox != null) { m_addressTextBox.Visible = false; } } }
protected override void Dispose(bool disposing) { if (disposing) { foreach (SmartItem item in this.Items) { foreach (SmartItem subItem in item.Items) { subItem.Click -= new Xceed.SmartUI.SmartItemClickEventHandler(GridGotoFormTaskPane_Click); } } this.Items.Clear(); IArchiveMasterForm archiveSeeForm = m_parentForm as IArchiveMasterForm; if (archiveSeeForm != null) { archiveSeeForm.MasterGrid.GridControl.CurrentRowChanged -= new EventHandler(MasterGrid_CurrentRowChanged); } m_parentForm = null; if (m_dm != null) { m_dm.Dispose(); m_dm = null; } } base.Dispose(disposing); }
/// <summary> /// Constructor /// </summary> /// <param name="gridName"></param> /// <param name="dm"></param> /// <param name="parentForm"></param> public GridRelatedControl(string gridName, IDisplayManager dm, IArchiveMasterForm parentForm) { InitializeComponent(); m_taskPane1 = new GridGotoFormTaskPane(gridName, dm, parentForm); m_taskPane1.Dock = DockStyle.Fill; this.panel1.Controls.Add(m_taskPane1); m_taskPane2 = new GridRelatedAddressTaskPane(gridName, dm, parentForm, linkLabelAddress); m_taskPane2.Dock = DockStyle.Fill; this.panel2.Controls.Add(m_taskPane2); }
internal static void ShowFormFromGrid(IArchiveMasterForm sourceForm, GridRelatedInfo info, bool asDetailDialog) { try { ISearchExpression se = GetSearchExpressionFromGrid(sourceForm, info, asDetailDialog); ShowFrom(info.Action.Name, se, asDetailDialog); } catch (Exception ex) { ExceptionProcess.ProcessWithNotify(ex); } }
void TaskPane_Click(object sender, Xceed.SmartUI.SmartItemClickEventArgs e) { Xceed.SmartUI.SmartItem item = sender as Xceed.SmartUI.SmartItem; TaskInfo info = item.Tag as TaskInfo; IArchiveMasterForm seeForm = ServiceProvider.GetService <IApplication>().ExecuteAction(info.Action.Name) as IArchiveMasterForm; ArchiveOperationForm operForm = seeForm as ArchiveOperationForm; if (seeForm == null) { MessageForm.ShowError("未能创建目标窗体!"); return; } switch (info.TaskType) { case TaskType.Add: operForm.DoAdd(); break; case TaskType.Edit: ISearchManager smSrc; if (m_sms.ContainsKey(info.Name)) { smSrc = m_sms[info.Name]; } else { smSrc = ServiceProvider.GetService <IManagerFactory>().GenerateSearchManager(info.SearchManagerClassName, info.SearchManagerClassParams); } ISearchManager smDest = seeForm.DisplayManager.SearchManager; if (smSrc.GetType() == smDest.GetType()) { smDest.LoadData(SearchExpression.Parse(EntityHelper.ReplaceExpression(info.SearchExpression)), null); } else { smSrc.EnablePage = false; object dataSource = smSrc.GetData(SearchExpression.Parse(EntityHelper.ReplaceExpression(info.SearchExpression)), null); IDisplayManager dm = seeForm.DisplayManager; dm.SetDataBinding(dataSource, string.Empty); dm.SearchManager.OnDataLoaded(new DataLoadedEventArgs(dataSource, 0)); } break; default: throw new NotSupportedException("Invalide TaskType"); } }
/// <summary> /// Constructor /// </summary> /// <param name="gridName"></param> /// <param name="dm"></param> /// <param name="parentForm"></param> public GridGotoFormTaskPane(string gridName, IDisplayManager dm, IArchiveMasterForm parentForm) { XceedUtility.SetUIStyle(this); LoadMenus(gridName); m_parentForm = parentForm; m_dm = dm; IArchiveMasterForm archiveSeeForm = parentForm; if (archiveSeeForm != null) { archiveSeeForm.MasterGrid.GridControl.CurrentRowChanged += new EventHandler(MasterGrid_CurrentRowChanged); MasterGrid_CurrentRowChanged(archiveSeeForm.DisplayManager, System.EventArgs.Empty); } }
public static bool DoView(IArchiveMasterForm masterForm) { if (masterForm.ArchiveDetailForm == null) { MessageForm.ShowError("您只能通过表格来查看数据!"); return(false); } //if (this.DisplayManager.CurrentItem == null) //{ // MessageForm.ShowError("请选择要查看的记录!"); // return false; //} masterForm.ShowArchiveDetailForm(); return(true); }
void TaskPaneAlert_Click(object sender, Xceed.SmartUI.SmartItemClickEventArgs e) { Xceed.SmartUI.SmartItem item = sender as Xceed.SmartUI.SmartItem; AlertInfo info = item.Tag as AlertInfo; IArchiveMasterForm seeForm = ServiceProvider.GetService <IApplication>().ExecuteAction(info.Action.Name) as IArchiveMasterForm; if (seeForm == null) { MessageForm.ShowError("未能创建目标窗体!"); return; } ISearchManager sm = seeForm.DisplayManager.SearchManager; sm.LoadData(SearchExpression.Parse(info.SearchExpression), null); FixIt(info); }
protected override void Dispose(bool disposing) { if (disposing) { foreach (SmartItem item in this.Items) { foreach (SmartItem subItem in item.Items) { subItem.Click -= new Xceed.SmartUI.SmartItemClickEventHandler(GridGotoFormTaskPane_Click); } } this.Items.Clear(); var archiveSeeForm = m_parentForm; if (archiveSeeForm != null) { archiveSeeForm.MasterGrid.GridControl.CurrentRowChanged -= new EventHandler(MasterGrid_CurrentRowChanged); } m_parentForm = null; if (m_dm != null) { m_dm.Dispose(); m_dm = null; } } base.Dispose(disposing); }
internal static ISearchExpression GetSearchExpressionFromGrid(IArchiveMasterForm sourceForm, GridRelatedInfo info, bool onlyFirstOne) { if (sourceForm == null) { throw new ArgumentException("未能找到父窗体!", "sourceForm"); } if (info.RelatedType == GridRelatedType.ByRows) { if (sourceForm.MasterGrid == null) { throw new ArgumentException("未能找到主表格!", "sourceForm"); } List<object> selectedEntities = new List<object>(); if (sourceForm.MasterGrid.GridControl.SelectedRows.Count == 0) { Xceed.Grid.Row row = sourceForm.MasterGrid.CurrentRow; Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow != null && dataRow.Visible && (info.GridLevel == Feng.Grid.MyGrid.GetGridLevel(dataRow.ParentGrid) || string.IsNullOrEmpty(info.GridLevel))) { selectedEntities.Add(dataRow.Tag); } } else { foreach (Xceed.Grid.Row row in sourceForm.MasterGrid.GridControl.SelectedRows) { if (!row.Visible) { continue; } Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow == null) { continue; } if (info.GridLevel == Feng.Grid.MyGrid.GetGridLevel(dataRow.ParentGrid) || string.IsNullOrEmpty(info.GridLevel)) { selectedEntities.Add(dataRow.Tag); } else { foreach(Xceed.Grid.DetailGrid dg in dataRow.DetailGrids) { GetDetailGridRows(info, dg, selectedEntities); } } if (onlyFirstOne && selectedEntities.Count > 0) { break; } } } if (selectedEntities.Count == 0) { throw new InvalidOperationException("请选择表格行!"); } Dictionary<string, string> exps = new Dictionary<string, string>(); foreach (object entity in selectedEntities) { //if (entity.GetType() != Feng.Utils.ReflectionHelper.GetTypeFromName(info.EntityType)) // continue; string exp = EntityHelper.ReplaceEntity(info.SearchExpression, entity); exps[exp] = exp; } ISearchExpression se = null; foreach (string exp in exps.Keys) { ISearchExpression subSearch = SearchExpression.Parse(exp); if (se == null) { se = subSearch; } else { se = SearchExpression.Or(se, subSearch); } } return se; //string[] fromColumns = info.FromColumnName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //for (int i = 0; i < fromColumns.Length; ++i) //{ // fromColumns[i] = fromColumns[i].Replace(":", "."); //} //int count = fromColumns.Length; //string[] toColumns = info.ToColumnName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //Debug.Assert(count == toColumns.Length, "FromColumnName必须和ToColumnName内容个数相同"); //ArrayList[] selected = new ArrayList[count]; //for (int i = 0; i < count; ++i) //{ // selected[i] = new ArrayList(); // string columnName = fromColumns[i]; // foreach (object entity in selectedEntities) // { // object o = EntityHelper.GetPropertyValue(entity, columnName); // //if (o != null && !string.IsNullOrEmpty(o.ToString())) // { // selected[i].Add(o); // } // } //} } else { throw new NotSupportedException("Not Supported now!"); } }
internal static ISearchExpression GetSearchExpressionFromGrid(IArchiveMasterForm sourceForm, GridRelatedAddressInfo info, bool onlyFirstOne) { if (sourceForm == null) { throw new ArgumentException("未能找到父窗体!", "sourceForm"); } if (info.RelatedType == GridRelatedType.ByRows) { if (sourceForm.MasterGrid == null) { throw new ArgumentException("未能找到主表格!", "sourceForm"); } List <object> selectedEntities = new List <object>(); if (sourceForm.MasterGrid.GridControl.SelectedRows.Count == 0) { Xceed.Grid.Row row = sourceForm.MasterGrid.CurrentRow; Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow != null && dataRow.Visible && (Feng.Grid.MyGrid.GetGridLevel(dataRow.ParentGrid) == info.GridLevel || string.IsNullOrEmpty(info.GridLevel))) { selectedEntities.Add(dataRow.Tag); } } else { foreach (Xceed.Grid.Row row in sourceForm.MasterGrid.GridControl.SelectedRows) { if (!row.Visible) { continue; } Xceed.Grid.DataRow dataRow = row as Xceed.Grid.DataRow; if (dataRow == null) { continue; } if (Feng.Grid.MyGrid.GetGridLevel(dataRow.ParentGrid) == info.GridLevel || string.IsNullOrEmpty(info.GridLevel)) { selectedEntities.Add(dataRow.Tag); } else { foreach (Xceed.Grid.DetailGrid dg in dataRow.DetailGrids) { GetDetailGridRows(info, dataRow.DetailGrids[0], selectedEntities); } } if (onlyFirstOne && selectedEntities.Count > 0) { break; } } } if (selectedEntities.Count == 0) { throw new InvalidOperationException("请选择表格行!"); } Dictionary <string, string> exps = new Dictionary <string, string>(); foreach (object entity in selectedEntities) { //if (entity.GetType() != Feng.Utils.ReflectionHelper.GetTypeFromName(info.EntityType)) // continue; string exp = EntityHelper.ReplaceEntity(info.SearchExpression, entity); exps[exp] = exp; } ISearchExpression se = null; foreach (string exp in exps.Keys) { ISearchExpression subSearch = SearchExpression.Parse(exp); if (se == null) { se = subSearch; } else { se = SearchExpression.Or(se, subSearch); } } return(se); //string[] fromColumns = info.FromColumnName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //for (int i = 0; i < fromColumns.Length; ++i) //{ // fromColumns[i] = fromColumns[i].Replace(":", "."); //} //int count = fromColumns.Length; //string[] toColumns = info.ToColumnName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //Debug.Assert(count == toColumns.Length, "FromColumnName必须和ToColumnName内容个数相同"); //ArrayList[] selected = new ArrayList[count]; //for (int i = 0; i < count; ++i) //{ // selected[i] = new ArrayList(); // string columnName = fromColumns[i]; // foreach (object entity in selectedEntities) // { // object o = EntityHelper.GetPropertyValue(entity, columnName); // //if (o != null && !string.IsNullOrEmpty(o.ToString())) // { // selected[i].Add(o); // } // } //} } else { throw new NotSupportedException("Not Supported now!"); } }
public static bool DoView(IArchiveMasterForm masterForm) { if (masterForm.ArchiveDetailForm == null) { MessageForm.ShowError("��ֻ��ͨ��������鿴���ݣ�"); return false; } //if (this.DisplayManager.CurrentItem == null) //{ // MessageForm.ShowError("��ѡ��Ҫ�鿴�ļ�¼��"); // return false; //} masterForm.ShowArchiveDetailForm(); return true; }