用XML操纵rdlc报表的方法集合类

 
//实现多列表头
//  增加页眉内容
public void AddTableHaderFirstRowSingleCell(string colname, string paramvalue)
        {
            XmlNode node = null;
            XmlNodeList refCd = root.SelectNodes("//default:Report//default:Body//default:ReportItems//default:Table//default:Header//default:TableRows//default:TableRow//default:TableCells", xnm);
            XmlElement docFrag = doc.CreateElement("TableCell", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            node = CreateNode("ReportItems");
            XmlElement textbox = doc.CreateElement("Textbox", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            textbox.SetAttribute("Name", colname);
            node.AppendChild(textbox);
            XmlNode zindex = CreateNode("ZIndex", "12");
            textbox.AppendChild(zindex);
            XmlNode style = CreateNode("Style");
            XmlNode borderstyle = CreateNode("BorderStyle");
            style.AppendChild(borderstyle);
            XmlNode defaul = CreateNode("Default", "Solid");
            borderstyle.AppendChild(defaul);
            XmlNode textalign = CreateNode("TextAlign", "Center");
            style.AppendChild(textalign);
            XmlNode PaddingLeft = CreateNode("PaddingLeft", "2pt");
            style.AppendChild(PaddingLeft);
            XmlNode PaddingBottom = CreateNode("PaddingBottom", "2pt");
            style.AppendChild(PaddingBottom);
            XmlNode FontFamily = CreateNode("FontFamily", "宋体");
            style.AppendChild(FontFamily);
            XmlNode FontWeight = CreateNode("FontWeight", "700");
            style.AppendChild(FontWeight);
            XmlNode VerticalAlign = CreateNode("VerticalAlign", "Bottom");
            style.AppendChild(VerticalAlign);
            XmlNode PaddingTop = CreateNode("PaddingTop", "2pt");
            style.AppendChild(PaddingTop);
            XmlNode PaddingRight = CreateNode("PaddingRight", "2pt");
            style.AppendChild(PaddingRight);
            textbox.AppendChild(style);
            XmlNode cangrow = CreateNode("CanGrow", "true");
            textbox.AppendChild(cangrow);
            XmlNode value = CreateNode("Value", paramvalue);
            textbox.AppendChild(value);
            docFrag.AppendChild(node);
            refCd[0].InsertAfter(docFrag, refCd[0].LastChild);
            doc.Save(filename);
        }
//表类型报表多列表头增加表头列的第一行
        public void AddTableHaderFirstRowCell(string colname, string paramvalue)
        {
            XmlNode node =null;
            XmlNodeList refCd = root.SelectNodes("//default:Report//default:Body//default:ReportItems//default:Table//default:Header//default:TableRows//default:TableRow//default:TableCells", xnm);
            XmlElement docFrag = doc.CreateElement("TableCell", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            node = CreateNode("ColSpan", "2");
            docFrag.AppendChild(node);
            node = CreateNode("ReportItems");
              XmlElement textbox = doc.CreateElement("Textbox", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
              textbox.SetAttribute("Name", colname);
              node.AppendChild(textbox);
                 XmlNode zindex = CreateNode("ZIndex", "16");
                 textbox.AppendChild(zindex);
                 XmlNode style = CreateNode("Style");
                     XmlNode borderstyle = CreateNode("BorderStyle");
                     style.AppendChild(borderstyle);
                        XmlNode defaul = CreateNode("Default", "Solid");
                        borderstyle.AppendChild(defaul);
                     XmlNode textalign = CreateNode("TextAlign", "Center");
                     style.AppendChild(textalign);
                     XmlNode PaddingLeft = CreateNode("PaddingLeft", "2pt");
                     style.AppendChild(PaddingLeft);
                     XmlNode PaddingBottom = CreateNode("PaddingBottom", "2pt");
                     style.AppendChild(PaddingBottom);
                     XmlNode FontFamily = CreateNode("FontFamily", "宋体");
                     style.AppendChild(FontFamily);
                     XmlNode FontWeight = CreateNode("FontWeight", "700");
                     style.AppendChild(FontWeight);
                     XmlNode VerticalAlign = CreateNode("VerticalAlign", "Bottom");
                     style.AppendChild(VerticalAlign);
                     XmlNode PaddingTop = CreateNode("PaddingTop", "2pt");
                     style.AppendChild(PaddingTop);
                     XmlNode PaddingRight = CreateNode("PaddingRight", "2pt");
                     style.AppendChild(PaddingRight);
                 textbox.AppendChild(style);
                 XmlNode cangrow = CreateNode("CanGrow", "true");
                 textbox.AppendChild(cangrow);
                 XmlNode value = CreateNode("Value", paramvalue);
                 textbox.AppendChild(value);        
            docFrag.AppendChild(node);                 
            refCd[0].InsertAfter(docFrag, refCd[0].LastChild);
            doc.Save(filename);
        }
        //Parameters!dwmc.Value
//增加表头的第二行
        public void AddTableHaderSecondRowCell(string colname,string paramvalue)
        {
            XmlNodeList refCd = root.SelectNodes("//default:Report/default:Body/default:ReportItems/default:Table/default:Header/default:TableRows/default:TableRow/default:TableCells", xnm);
            XmlElement docFrag = doc.CreateElement("TableCell", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            XmlNode reportitems = CreateNode("ReportItems");
               XmlElement textbox = doc.CreateElement("Textbox", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
                  textbox.SetAttribute("Name", colname);
                  XmlNode zindex = CreateNode("ZIndex", "9");
                  textbox.AppendChild(zindex);
                  XmlNode style = CreateNode("Style");
                  XmlNode borderstyle = CreateNode("BorderStyle");
                  style.AppendChild(borderstyle);
                  XmlNode defaul = CreateNode("Default", "Solid");
                  borderstyle.AppendChild(defaul);
                  XmlNode textalign = CreateNode("TextAlign", "Center");
                  style.AppendChild(textalign);
                  XmlNode PaddingLeft = CreateNode("PaddingLeft", "2pt");
                  style.AppendChild(PaddingLeft);
                  XmlNode PaddingBottom = CreateNode("PaddingBottom", "2pt");
                  style.AppendChild(PaddingBottom);
                  XmlNode FontFamily = CreateNode("FontFamily", "宋体");
                  style.AppendChild(FontFamily);                
                  XmlNode VerticalAlign = CreateNode("VerticalAlign", "Middle");
                  style.AppendChild(VerticalAlign);
                  XmlNode PaddingTop = CreateNode("PaddingTop", "2pt");
                  style.AppendChild(PaddingTop);
                  XmlNode PaddingRight = CreateNode("PaddingRight", "2pt");
                  style.AppendChild(PaddingRight);
                  textbox.AppendChild(style);
                  XmlNode cangrow = CreateNode("CanGrow", "true");
                  textbox.AppendChild(cangrow);
                  XmlNode value = CreateNode("Value", paramvalue);
                  textbox.AppendChild(value);
                  reportitems.AppendChild(textbox);
            docFrag.AppendChild(reportitems);
            refCd[1].InsertAfter(docFrag, refCd[1].LastChild);
            doc.Save(filename);
        }
       
//动态增加详细列 
public void AddDetailsCell(string ColName,string ColValue)
        {
            XmlNode refCd = root.SelectSingleNode("//default:Report//default:Body//default:ReportItems//default:Table//default:Details//default:TableRows//default:TableRow//default:TableCells", xnm);
            XmlElement docFrag = doc.CreateElement("TableCell", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            XmlNode reportitems = CreateNode("ReportItems");
            XmlElement textbox = doc.CreateElement("Textbox", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            textbox.SetAttribute("Name", ColName);
            XmlNode zindex = CreateNode("ZIndex", "9");
            textbox.AppendChild(zindex);
            XmlNode style = CreateNode("Style");
            textbox.AppendChild(style);
            XmlNode borderstyle = CreateNode("BorderStyle");
            style.AppendChild(borderstyle);
            XmlNode defaul = CreateNode("Default", "Solid");
            borderstyle.AppendChild(defaul);
            XmlNode textalign = CreateNode("TextAlign", "Center");
            style.AppendChild(textalign);
            XmlNode PaddingLeft = CreateNode("PaddingLeft", "2pt");
            style.AppendChild(PaddingLeft);
            XmlNode PaddingBottom = CreateNode("PaddingBottom", "2pt");
            style.AppendChild(PaddingBottom);
            XmlNode FontFamily = CreateNode("FontFamily", "宋体");
            style.AppendChild(FontFamily);
            XmlNode VerticalAlign = CreateNode("VerticalAlign", "Middle");
            style.AppendChild(VerticalAlign);
            XmlNode PaddingTop = CreateNode("PaddingTop", "2pt");
            style.AppendChild(PaddingTop);
            XmlNode PaddingRight = CreateNode("PaddingRight", "2pt");
            style.AppendChild(PaddingRight);
            XmlNode cangrow = CreateNode("CanGrow", "true");
            textbox.AppendChild(cangrow);
            XmlNode value = CreateNode("Value", ColValue);
            textbox.AppendChild(value);
            reportitems.AppendChild(textbox);
            docFrag.AppendChild(reportitems);
            refCd.InsertAfter(docFrag, refCd.LastChild);
            doc.Save(filename);
       
        }
    //向数据集增加字段定义
        public void AddDataSetColumn(string fieldname,string filetype)
        {
            XmlNode refCd = root.SelectSingleNode("//default:Report//default:DataSets//default:DataSet//default:Fields", xnm);
            XmlElement docFrag = doc.CreateElement("Field", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");           
            docFrag.SetAttribute("Name",fieldname);
            XmlNode x1 = doc.CreateNode(XmlNodeType.Element, "rd:TypeName", " http://schemas.microsoft.com/SQLServer/reporting/reportdesigner");
            x1.InnerText = filetype;
            docFrag.AppendChild(x1);
            XmlNode x2 = doc.CreateNode(XmlNodeType.Element, "DataField", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            x2.InnerText = fieldname;
            docFrag.AppendChild(x2);         
            refCd.InsertAfter(docFrag, refCd.LastChild);
            doc.Save(filename);
        }
        /// <summary>
        /// 根据列数据调宽
        /// </summary>
        /// <param name="width"></param>
        public void EditPageHeaderTb28Width(decimal width)
        {
            XmlNode oldCd = root.SelectSingleNode("//default:Report//default:PageHeader//default:ReportItems//default:Textbox[@Name=/"textbox28/"]", xnm);
            XmlNode newCd = oldCd.ChildNodes[3].Clone();
            decimal aa = Convert.ToDecimal(newCd.InnerText.Replace("cm", ""));
            newCd.InnerText = Convert.ToString(aa + width) + "cm";
            oldCd.ReplaceChild(newCd, oldCd.ChildNodes[3]);
            doc.Save(filename);
        }
        public void EditPageHeaderTb29Left(decimal width)
        {
            XmlNode oldCd = root.SelectSingleNode("//default:Report//default:PageHeader//default:ReportItems//default:Textbox[@Name=/"textbox29/"]", xnm);
            XmlNode newCd = oldCd.ChildNodes[0].Clone();
            decimal aa = Convert.ToDecimal(newCd.InnerText.Replace("cm", ""));
            newCd.InnerText = Convert.ToString(aa + width) + "cm";
            oldCd.ReplaceChild(newCd, oldCd.ChildNodes[0]);
            doc.Save(filename);
        }
        public void EditPageFooterLineWidth(string name, decimal width)
        {
            XmlNode oldCd = root.SelectSingleNode(String.Format("//default:Report//default:PageFooter//default:ReportItems//default:Line[@Name=/"{0}/"]", name), xnm);
            XmlNode newCd = oldCd.ChildNodes[3].Clone();
            decimal aa = Convert.ToDecimal(newCd.InnerText.Replace("cm", ""));
            newCd.InnerText = Convert.ToString(aa + width) + "cm";
            oldCd.ReplaceChild(newCd, oldCd.ChildNodes[3]);
            doc.Save(filename);
        }
        /// <summary>
        /// 向表中增加一字段
        /// </summary>
        /// <param name="fieldwidth"></param>
        public void AddTableColumn(string fieldwidth)
        {
            XmlNode refCd = root.SelectSingleNode("//default:Report//default:Body//default:ReportItems//default:Table//default:TableColumns", xnm);
            XmlElement docFrag = doc.CreateElement("TableColumn", " http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            XmlNode aa = CreateNode("Width", fieldwidth);
            docFrag.AppendChild(aa);
            refCd.InsertAfter(docFrag, refCd.LastChild);
            doc.Save(filename);
        }
        /// <summary>
        /// 数据集中是否包含该字段
        /// </summary>-
        ///  <Field Name="belong">
        ///        <rd:TypeName>System.String</rd:TypeName>
        ///       <DataField>belong</DataField>
        ///  </Field>
        /// <param name="fieldname"></param>
        /// <returns></returns>
        public bool DataSetFieldIsExist(string fieldname)
        {
            XmlNode refCd = root.SelectSingleNode(string.Format("//default:Report//default:DataSets//default:DataSet//default:Fields//default:Field[@Name={0}]", "/"" + fieldname + "/""), xnm);
            if (refCd != null)
                return true;
            else
                return false;
        }
        /// <summary>
        /// 详细列是否存在
        /// </summary>
        /// <param name="Paramname"></param>
        /// <returns></returns>
        public bool DetailColIsExist(string Paramname)
        {
            XmlNode refCd = root.SelectSingleNode(string.Format("//default:Report//default:Body//default:ReportItems//default:Table//default:Details//default:TableRows//default:TableRow//default:TableCells//default:TableCell//default:ReportItems//default:Textbox[@Name={0}]", "/"" + Paramname + "/""), xnm);
            if (refCd != null)
                return true;
            else
                return false;
        }
        /// <summary>
        /// 表头列是否存在      
        /// </summary>
        /// <param name="Paramname"></param>
        /// <returns></returns>
        public bool TableHeaderIsExist(string Paramname)
        {
            XmlNode refCd = root.SelectSingleNode(string.Format("//default:Report//default:Body//default:ReportItems//default:Table//default:Header//default:TableRows//default:TableRow//default:TableCells//default:TableCell//default:ReportItems//default:Textbox[@Name={0}]", "/"" + Paramname + "/""), xnm);
            if (refCd != null)
                return true;
            else
                return false;
        }
        /// <summary>
        /// 参数是否存在
        /// </summary>
        /// <param name="Paramname"></param>
        /// <returns></returns>
        public bool ParamererIsExist(string Paramname)
        {
            XmlNode refCd = root.SelectSingleNode(string.Format("//default:Report/default:ReportParameters/default:ReportParameter[@Name={0}]", "/"" + Paramname + "/""), xnm);
            if (refCd != null)
                return true;
            else
                return false;
       
        }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
RDLC(Report Definition Language Client-Side)报表是Microsoft Visual Studio中的一种报表格式,用于创建.NET应用程序中的本地报表。下面是一个简单的教程,介绍如何使用RDLC报表: 1. 首先,确保你已经安装了Visual Studio,并创建了一个.NET应用程序项目。 2. 在解决方案资源管理器中,右键单击项目,选择“添加”>“新建项”。 3. 在“添加新项”对话框中,选择“报表”类别,并选择“RDLC报表”模板。然后输入报表的名称,并点击“添加”按钮。 4. 报表设计器将打开,并显示一个空白的报表。 5. 在报表设计器工具栏上,你可以找到各种工具和选项,用于设计和布局报表。你可以添加文本框、图像、表格等控件来组织报表的内容。 6. 可以通过数据绑定来填充报表数据。你可以使用数据源向报表提供数据,如数据库、对象集合或Web服务。 7. 在报表设计器中,右键单击报表空白处,选择“数据”>“添加数据源”。 8. 在“添加数据源”对话框中,选择数据源类型,并按照提示提供必要的连接信息和查询语句。 9. 一旦数据源被添加,你可以在报表的控件中使用字段和表达式来展示数据。 10. 对于复杂的报表布局,你可以使用组和排序功能来对数据进行分组和排序。 11. 在报表设计完成后,你可以预览报表,以确保其显示和数据都正确无误。 12. 在应用程序中使用报表,你可以通过代码创建报表实例,设置数据源,并将其呈现在报表查看器或打印机上。 这是一个基本的RDLC报表使用教程,希望对你有所帮助。你可以在Microsoft的官方文档中找到更多关于RDLC报表的详细信息和高级应用技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值