xml

基于xml来实现报表的打印? xml 一般可当做数据源,可放图表等各种类型数据,
我认为,如果有开发环境的话 还是用它做 数据源比较省力。用dataset把它多过来就可以 随意使用了。 
也许 它有更好的方法,我不会而已, 帮你顶吧

解决方案 »

  1.   

    xml作为数据源来用。要打印,首先设计报表,填充数据,和其他数据源一样用
      

  2.   


    public void ExportExcel(DataSet ds)        //以DataSet- 导出Excel文件   
            {
                if (ds == null) return;
                Microsoft.office.Interop.Excel.Application xlApp = new Microsoft.office.Interop.Excel.Application();            if (xlApp == null)
                {
                    MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                Microsoft.office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                Microsoft.office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.office.Interop.Excel.Worksheet worksheet = (Microsoft.office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得Sheet1
                Microsoft.office.Interop.Excel.Range range;
                long totalCount = ds.Tables[0].Rows.Count;            long rowRead = 0;
                float percent = 0;            //worksheet.Cells[1, 1] = "报表标题";            //写入字段
                for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                {
                    worksheet.Cells[1, i + 1] = ds.Tables[0].Columns[i].ColumnName;
                    range = (Microsoft.office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
                    range.Interior.ColorIndex = 15;
                    range.Font.Bold = true;
                }
                //写入数值
                for (int r = 0; r < ds.Tables[0].Rows.Count; r++)
                {
                    for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                    {
                        worksheet.Cells[r + 2, i + 1] = ds.Tables[0].Rows[r][i];
                    }
                    rowRead++;
                    percent = ((float)(100 * rowRead)) / totalCount;
                }
                xlApp.Visible = true;
            }这是dataset的导入到Excel,你将你的xml转成dataset导出Excel再打印吧
      

  3.   

    看过sharpdevelop里实现的xmlform,可以学着自己写写,应该是有相通之处的;