public ReportSourceControl(LibTreeNode funcNode) : this() { this._funNode = funcNode; _rptproperty = new ReportSourceProperty(); _rptproperty.Dock = DockStyle.Fill; this.splitContainer1.Panel2.Controls.Add(_rptproperty); _gridgrouplst = new List <ReportGridProperty>(); _reportFieldlst = new List <ReportFieldProperty>(); _containerlst = new List <ReportContainerProperty>(); _rowlst = new List <ReportRowProperty>(); _collst = new List <ReportColumnProperty>(); _elemlst = new List <ReportElementProperty>(); this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText; this.treeView1.HideSelection = false; this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode); }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { LibTreeNode libnode = (LibTreeNode)e.Node; if (libnode == null) { return; } bool exists = false; switch (libnode.NodeType) { case NodeType.ReportPanel: if (this._rptproperty == null) { _rptproperty = new ReportSourceProperty(); this.splitContainer1.Panel2.Controls.Add(_rptproperty); } SetPanel2ControlsVisible(_rptproperty); _rpt.ReportName = string.IsNullOrEmpty(_rpt.ReportName) ? _funNode.Text : _rpt.ReportName; _rpt.Package = string.IsNullOrEmpty(_rpt.Package) ? _funNode.Package : _rpt.Package; //if (ModelDesignProject.ExitsDataSource(_fm.FormId, _fm.Package)) //{ // _fm.DSID = _fm.FormId; //} _rptproperty.SetPropertyValue(_rpt, libnode); break; case NodeType.GridGroup: if (_gridgrouplst != null) { foreach (ReportGridProperty item in _gridgrouplst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportGridProperty gridgroupp = new ReportGridProperty(libnode.NodeId); gridgroupp.Dock = DockStyle.Fill; this._gridgrouplst.Add(gridgroupp); this.splitContainer1.Panel2.Controls.Add(gridgroupp); gridgroupp.SetPropertyValue(_rpt.GridGroups.FindFirst("GridGroupID", libnode.NodeId), libnode); SetPanel2ControlsVisible(gridgroupp); } } break; case NodeType.GridGroup_Field: if (_reportFieldlst != null) { foreach (ReportFieldProperty item in _reportFieldlst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportFieldProperty gdgroupfdp = new ReportFieldProperty(libnode.NodeId); gdgroupfdp.Dock = DockStyle.Fill; this._reportFieldlst.Add(gdgroupfdp); this.splitContainer1.Panel2.Controls.Add(gdgroupfdp); LibReportGrid librptgd = _rpt.GridGroups.FindFirst("GridGroupID", ((LibTreeNode)libnode.Parent).NodeId); gdgroupfdp.SetPropertyValue(librptgd.ReportFields.FindFirst("ID", libnode.NodeId), libnode); SetPanel2ControlsVisible(gdgroupfdp); } } break; case NodeType.ReportContainer: if (_containerlst != null) { foreach (ReportContainerProperty item in _containerlst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportContainerProperty container = new ReportContainerProperty(libnode.NodeId); container.Dock = DockStyle.Fill; this._containerlst.Add(container); this.splitContainer1.Panel2.Controls.Add(container); container.SetPropertyValue(_rpt.Containers.FindFirst("ContainerID", libnode.NodeId), libnode); SetPanel2ControlsVisible(container); } } break; case NodeType.ReportRow: if (_rowlst != null) { foreach (ReportRowProperty item in _rowlst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportRowProperty row = new ReportRowProperty(libnode.NodeId); row.Dock = DockStyle.Fill; this._rowlst.Add(row); this.splitContainer1.Panel2.Controls.Add(row); LibReportContainer container = _rpt.Containers.FindFirst("ContainerID", ((LibTreeNode)libnode.Parent).NodeId); row.SetPropertyValue(container.ReportRows.FindFirst("RowID", libnode.NodeId), libnode); SetPanel2ControlsVisible(row); } } break; case NodeType.ReportCol: if (_collst != null) { foreach (ReportColumnProperty item in _collst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportColumnProperty col = new ReportColumnProperty(libnode.NodeId); col.Dock = DockStyle.Fill; this._collst.Add(col); this.splitContainer1.Panel2.Controls.Add(col); LibReportContainer container = _rpt.Containers.FindFirst("ContainerID", ((LibTreeNode)libnode.Parent.Parent).NodeId); LibReportRow reportRow = container.ReportRows.FindFirst("RowID", ((LibTreeNode)libnode.Parent).NodeId); col.SetPropertyValue(reportRow.ReportCols.FindFirst("ColumnID", libnode.NodeId), libnode); SetPanel2ControlsVisible(col); } } break; case NodeType.ReportElement: if (_elemlst != null) { foreach (ReportElementProperty item in _elemlst) { if (string.Compare(item.Name, libnode.NodeId) == 0) { SetPanel2ControlsVisible(item); exists = true; break; } } if (!exists) //还未创建对应的控件 { ReportElementProperty ele = new ReportElementProperty(libnode.NodeId); ele.Dock = DockStyle.Fill; this._elemlst.Add(ele); this.splitContainer1.Panel2.Controls.Add(ele); LibReportContainer container = _rpt.Containers.FindFirst("ContainerID", ((LibTreeNode)libnode.Parent.Parent.Parent).NodeId); LibReportRow reportRow = container.ReportRows.FindFirst("RowID", ((LibTreeNode)libnode.Parent.Parent).NodeId); LibReportColumn column = reportRow.ReportCols.FindFirst("ColumnID", ((LibTreeNode)libnode.Parent).NodeId); ele.SetPropertyValue(column.Elements.FindFirst("ElementID", libnode.NodeId), libnode); SetPanel2ControlsVisible(ele); } } break; } }