/// <summary> /// 下移动当前项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Event_Down_ItemClick(object sender, ItemClickEventArgs e) { //只能同级移动(交换两个排序规则) TreeListNode curr = this.m_TreeListFocused.Selection[0]; if (curr == null) { return; } TreeListNode next = curr.NextNode; if (next == null) { return; } if (curr.Level != next.Level) { return; } _ObjectReport p_ObjectReport = this.m_TreeListFocused.GetDataRecordByNode(curr) as _ObjectReport; if (p_ObjectReport == null || p_ObjectReport.GetType() == typeof(NodeReport)) { return; } _ObjectReport objMove = this.m_TreeListFocused.GetDataRecordByNode(next) as _ObjectReport; bool b = next.Expanded; bool b1 = curr.Expanded; this.Exchange(p_ObjectReport, objMove); this.m_TreeListFocused.FocusedNode = this.m_TreeListFocused.FindNodeByKeyID(p_ObjectReport.ID); this.m_TreeListFocused.FocusedNode.Expanded = b1; this.m_TreeListFocused.FindNodeByKeyID(objMove.ID).Expanded = b; }
/// <summary> /// 报表列表切换行 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeList_FocusedNodeChanged(object sender, FocusedNodeChangedEventArgs e) { TreeListEx m_TreeList = sender as TreeListEx; if (m_TreeList != null) { _ObjectReport bs = m_TreeList.GetDataRecordByNode(m_TreeList.FocusedNode) as _ObjectReport; if (bs != null) { if (bs.GetType().Name == "NodeReport") { this.reportControl1.pictureEdit1.Visible = true; this.propertyGridControl1.AutoGenerateRows = true; this.propertyGridControl1.SelectedObject = null; this.reportControl1.printControl1.PrintingSystem.ClearContent(); } else { this.reportControl1.pictureEdit1.Visible = false; this.propertyGridControl1.AutoGenerateRows = true; this.propertyGridControl1.SelectedObject = bs; this.reportControl1.SetDataSource(new GenerateReport(this.propertyGridControl1.SelectedObject as _ObjectReport)); this.reportControl1.m_reportData = this.propertyGridControl1.SelectedObject; } } } }
/// <summary> /// 对象交换位置 /// </summary> /// <param name="p_obj">源对象</param> /// <param name="p_objMove">交换位置对象</param> private void Exchange(_ObjectReport p_obj, _ObjectReport p_objMove) { int sort = p_obj.ID; p_obj.ID = p_objMove.ID; p_objMove.ID = sort; Refreshs(); }
/// <summary> /// 递归批量预览 /// </summary> /// <param name="p_TreeList"></param> /// <param name="p_nodes"></param> private void TreeListChecked(TreeListEx p_TreeList, TreeListNodes p_nodes) { foreach (TreeListNode item in p_nodes) { if (item.Checked) { _ObjectReport m_ob = p_TreeList.GetDataRecordByNode(item) as _ObjectReport; if (m_ob.GetType() != typeof(NodeReport)) { this.reportControl1.SetDataSources(new GenerateReport(m_ob)); this.reportControl1.m_reportData = this.propertyGridControl1.SelectedObject; } } this.TreeListChecked(p_TreeList, item.Nodes); } }
/// <summary> /// 初始化报表 /// </summary> /// <param name="p_info">报表格式对象</param> public GenerateReport(_ObjectReport p_info) { this.ReportUnit = ReportUnit.TenthsOfAMillimeter; //使用0.1毫米计量单位 this.Dpi = 254F; this.Bands.Clear(); if (p_info != null) { switch (p_info.GetType().Name) { case "TableReport": TableReport m_info = p_info as TableReport; this.DataSource = m_info.DataSource; this.Margins = m_info.Margins; this.PaperKind = m_info.PaperKind; this.Landscape = this.IsDirection(m_info.Landscape); DetailBand new_Detail = CreateTableDetail(m_info); PageHeaderBand new_PageHeaderBand = CreateTableHeader(m_info); this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { new_PageHeaderBand, new_Detail }); break; case "PageReport": PageReport m_pinfo = p_info as PageReport; this.Margins = m_pinfo.Margins; this.PaperKind = m_pinfo.PaperKind; this.Landscape = this.IsDirection(m_pinfo.Landscape); DetailBand new_pDetail = this.CreateRowDetail(m_pinfo); this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { new_pDetail }); break; case "ExplainReport": ExplainReport m_ExplainReport = p_info as ExplainReport; this.Margins = m_ExplainReport.Margins; this.PaperKind = m_ExplainReport.PaperKind; this.DataSource = null; this.Landscape = this.IsDirection(m_ExplainReport.Landscape); DetailBand new_EDetail = this.CreateRowDetail(m_ExplainReport); PageHeaderBand new_ExplainPageHeaderBand = CreateTitleHeader(m_ExplainReport); this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { new_ExplainPageHeaderBand, new_EDetail }); break; default: break; } } }
/// <summary> /// 单位工程填空报表 /// </summary> /// <param name="p_ObjectReport"></param> private void TKBB_UnitProject(_ObjectReport p_ObjectReport) { DataRow dr_TKBB = null; if (this.ReportSource.Tables.Contains("TKBB")) { DataTable dt = this.ReportSource.Tables["TKBB"] as DataTable; if (dt != null && dt.Rows.Count == 1) { dr_TKBB = dt.Rows[0]; } } if (dr_TKBB == null) { return; } if (dr_TKBB != null && p_ObjectReport.Method.Equals("TKBB")) { DataTable dt = p_ObjectReport.DataSource as DataTable; if (dt != null && dt.Rows.Count == 1) { dt.Rows[0]["BZDW"] = dr_TKBB["BZDW"]; dt.Rows[0]["FDHSQRBZ"] = dr_TKBB["FDHSQRBZ"]; dt.Rows[0]["JSDW"] = dr_TKBB["JSDW"]; dt.Rows[0]["FDHSQRJS"] = dr_TKBB["FDHSQRJS"]; dt.Rows[0]["ZBDLR"] = dr_TKBB["ZBDLR"]; dt.Rows[0]["FDHSQRZB"] = dr_TKBB["FDHSQRZB"]; dt.Rows[0]["TBDW"] = dr_TKBB["TBDW"]; dt.Rows[0]["FDHSQRTB"] = dr_TKBB["FDHSQRTB"]; dt.Rows[0]["TBBZR"] = dr_TKBB["TBBZR"]; dt.Rows[0]["TBBZRQY"] = dr_TKBB["TBBZRQY"]; dt.Rows[0]["TBBZRQM"] = dr_TKBB["TBBZRQM"]; dt.Rows[0]["TBBZRQD"] = dr_TKBB["TBBZRQD"]; } } }
/// <summary> /// 绑定报表数据 /// </summary> /// <returns></returns> public override ArrayList BindingSource() { if (this.ReportStencil.Count > 0) { this.LoadReportSource(); this.ReportResult = new ArrayList(); NodeReport newxm = new NodeReport(); int i = 1; newxm.ID = i++; newxm.PID = -1; newxm.ReportName = this.StructSource.ModelProject.Rows[0]["Name"].ToString(); this.ReportResult.Add(newxm); _ObjectReport[] m_ObjectReport = this.ReportStencil.Cast <_ObjectReport>().Where(p => p.ReportType == "项目报表").ToArray(); foreach (_ObjectReport item in m_ObjectReport) { item.ID = i++; item.PID = 1; item.XMMC = this.StructSource.ModelProject.Rows[0]["Name"].ToString(); DataTable dt = this.ReportSource.Tables[item.Method]; if (dt != null) { item.DataSource = dt; } this.ReportResult.Add(item); } DataRow[] drs = this.StructSource.ModelProject.Select("DEEP=2", "ID"); _UnitProjectReport m_UnitProjectReport = null; foreach (DataRow item in drs) { _UnitProject info = item["UnitProject"] as _UnitProject; if (info == null) { info = new _UnitProject(); _ObjectSource.GetObject(info, item); this.CurrBusiness.Load(info); } m_UnitProjectReport = new _UnitProjectReport(); m_UnitProjectReport.UnID = info.ActiviteId != 0 ? info.ActiviteId : info.ID;//Convert.ToInt32(item["ID"]); m_UnitProjectReport.StructSource = info.StructSource; m_UnitProjectReport.ReportStencil = this.ReportStencil.Copy() as _List; m_UnitProjectReport.BindingSource(); if (m_UnitProjectReport.ReportResult != null) { _ObjectReport m_dw = m_UnitProjectReport.ReportResult.Cast <_ObjectReport>().Where(p => p is NodeReport).FirstOrDefault(); if (m_dw != null) { m_dw.ID = i++; m_dw.PID = 1; this.ReportResult.Add(m_dw); foreach (_ObjectReport item_dw in m_UnitProjectReport.ReportResult) { this.TKBB_UnitProject(item_dw); if (!(item_dw is NodeReport)) { item_dw.ID = i++; item_dw.PID = m_dw.ID; this.ReportResult.Add(item_dw); } } } } } } return(this.ReportResult); }