如图
这是我用水晶报表做的考试试题选择题的样式,现在我要用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);