当前位置: 代码迷 >> .NET报表 >> RDLC报表新人
  详细解决方案

RDLC报表新人

热度:238   发布时间:2016-05-05 01:37:52.0
RDLC报表新人求助
如图

这是我用水晶报表做的考试试题选择题的样式,现在我要用rdlc报表重做,
问题是这样的样式怎么调都调不过来,刚接触rdlc,不会弄,到网上查竟然没有人
问这个问题,我这么菜?。。。。请高手赐教。
------解决方案--------------------
http://blog.csdn.net/keisuoy/article/details/1731528
http://www.cnblogs.com/SkySoot/archive/2011/11/24/2261952.html

参考这个,你的类似。
------解决方案--------------------
绘制饼图显示全国名胜旅游投票结果
   public void CreatePieImage()
    {
        //定义数据库连接字符串
        string connString = System.Configuration.ConfigurationManager.AppSettings["conn"].ToString();
        //建立与数据库连接的对象
        SqlConnection conn = new SqlConnection(connString);
        //打开数据库连接
        conn.Open();
        //定义查询数据库的SQL语句
        string cmdtxt = "select * from tb_vote";
        //定义一个SqlCommand命令对象
        SqlCommand comm = new SqlCommand(cmdtxt, conn);
        //定义一个数据集
        DataSet ds = new DataSet();
        //定义一个数据适配器
        SqlDataAdapter da = new SqlDataAdapter(comm);
        //填充数据集
        da.Fill(ds);
        conn.Close();
        float Total = 0.0f, Tmp;
        int iLoop;
        for (iLoop = 0; iLoop < ds.Tables[0].Rows.Count; iLoop++)
        {
            //转换成单精度,也可以写成Convert.ToInt32
            Tmp = Convert.ToSingle(ds.Tables[0].Rows[iLoop]["投票数量"]);
            Total += Tmp;
        }//CodeGo.net/
        //设置字体,fontTitle为主标题的字体
        Font fontLegend = new Font("verdana",9),fontTitle = new Font("verdana",10,FontStyle.Bold);
        //设置背景宽
        int width = 250;
        int bufferspase = 15;
        int legendheight = fontLegend.Height * (ds.Tables[0].Rows.Count + 1) + bufferspase;
        int titleheight = fontTitle.Height+bufferspase;
        //设置白色背景高
        int height = width + legendheight + titleheight + bufferspase;
        int pieheight = width;
        Rectangle pierect = new Rectangle(0,titleheight,width,pieheight);
        //加上各种随机色
        ArrayList colors = new ArrayList();
        //生成伪随机生成器
        Random rnd = new Random();
        for (iLoop = 0; iLoop < ds.Tables[0].Rows.Count; iLoop++)
            colors.Add(new SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))));
        //创建一个bitmap实例
        Bitmap objbitmap = new Bitmap(width,height);
        Graphics objgraphics = Graphics.FromImage(objbitmap);
        //画一个白色背景
        objgraphics.FillRectangle(new SolidBrush(Color.White), 0, 0, width, height);
        //画一个亮黄色背景
        objgraphics.FillRectangle(new SolidBrush(Color.LightYellow),pierect);
        //以下为画饼型图(有几行row画几个)
        float currentdegree = 0.0f;
        for(iLoop = 0; iLoop<ds.Tables[0].Rows.Count;iLoop++)
        {
            objgraphics.FillPie((SolidBrush)colors[iLoop],pierect,currentdegree,
                Convert.ToSingle(ds.Tables[0].Rows[iLoop]["投票数量"]) / Total * 360);