求大神帮忙,给个思路,给个源码

小马嘎嘎 2014-07-08 09:54:13
...全文
278 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lekai_2858203051 2014-07-15
  • 打赏
  • 举报
回复
用折线分析商品价格走势图 private void CreateImage(int ID) { int height = 440, width = 600; System.Drawing.Bitmap image = new System.Drawing.Bitmap(width,height); Graphics g = Graphics.FromImage(image); try { //清空图片背景色 g.Clear(Color.White); Font font = new System.Drawing.Font("Arial", 9,FontStyle.Regular); Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular); Font font2 = new System.Drawing.Font("Arial", 8, FontStyle.Regular); System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue,Color.Blue, 1.2f, true); g.FillRectangle(Brushes.AliceBlue, 0, 0, width, height); Brush brush1 = new SolidBrush(Color.Blue); Brush brush2 = new SolidBrush(Color.SaddleBrown); string str = "SELECT * FROM tb_Ware WHERE ID=" + Request["ID"] + ""; SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["ConSql"]); Con.Open(); SqlCommand Com = new SqlCommand(str, Con); SqlDataReader dr = Com.ExecuteReader(); dr.Read(); if (dr.HasRows) { g.DrawString(""+dr["Name"].ToString()+"各月份价格走势", font1, brush1, new PointF(130, 30)); } dr.Close(); //画图片的边框线 g.DrawRectangle(new Pen(Color.Blue), 0,0, image.Width - 1, image.Height - 1); Pen mypen = new Pen(brush,1); Pen mypen2 = new Pen(Color.Red,2); //绘制线条 //绘制纵向线条 int x = 60; for (int i = 0; i < 12; i++) { g.DrawLine(mypen,x, 80, x, 340); x = x+40; } Pen mypen1 = new Pen(Color.Blue,2); g.DrawLine(mypen1, x-480, 80, x-480, 340); //绘制横向线条 int y = 106; for (int i = 0; i <9; i++) { g.DrawLine(mypen,60, y, 540, y); y = y + 26; } g.DrawLine(mypen1, 60, y, 540, y); //x轴 String[] n = {" 一月", " 二月", " 三月", " 四月", " 五月", " 六月", " 七月", " 八月", " 九月", " 十月", "十一月", "十二月"}; x = 35; for (int i = 0; i < 12; i++) { g.DrawString(n[i].ToString(),font,Brushes.Red, x, 348); //设置文字内容及输出位置 x = x + 40; } //y轴 String[] m = {"4500元", " 4000元", " 3500元", " 3000元", " 2500元", " 2000元", " 1500元", " 1000元", " 500元"}; y = 100; for (int i = 0; i < 9; i++) { g.DrawString(m[i].ToString(),font, Brushes.Red, 10, y); //设置文字内容及输出位置 y = y + 26; }//CodeGo.net/ int[] Count = new int[12]; string cmdtxt2 = "SELECT * FROM tb_Ware WHERE ID=" + ID + ""; SqlCommand Com1 = new SqlCommand(cmdtxt2, Con); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = Com1; DataSet ds = new DataSet(); da.Fill(ds); int j = 0; for(j=0;j<12;j++) { Count[j] = Convert.ToInt32(ds.Tables[0].Rows[0][j+2].ToString()) *26/ 500 ; } //显示折线效果 SolidBrush mybrush = new SolidBrush(Color.Red); Point[] points = new Point[12]; points[0].X = 60; points[0].Y = 340 - Count[0]; points[1].X = 100; points[1].Y = 340 - Count[1]; points[2].X = 140; points[2].Y = 340 - Count[2]; points[3].X = 180; points[3].Y = 340 - Count[3]; points[4].X = 220; points[4].Y = 340 - Count[4]; points[5].X = 260; points[5].Y = 340 - Count[5]; points[6].X = 300; points[6].Y = 340 - Count[6]; points[7].X = 340; points[7].Y = 340 - Count[7]; points[8].X = 380; points[8].Y = 340 - Count[8]; points[9].X = 420; points[9].Y = 340 - Count[9]; points[10].X = 460; points[10].Y = 340 - Count[10]; points[11].X = 500; points[11].Y = 340 - Count[11]; g.DrawLines(mypen2, points); //绘制折线 System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); }
BrightFireOfCy 2014-07-11
  • 打赏
  • 举报
回复
说说我现在的项目怎么整的吧 因为限制比较多,所以不能整那些第三方的东西 所以直接服务器端用gc手动画的
  • 打赏
  • 举报
回复
貌似网上有插件,以前见一个版主推荐过这个插件。忘了啥名字了
纤纤素水 2014-07-11
  • 打赏
  • 举报
回复
highcharts echarts 刚弄过~~
  • 打赏
  • 举报
回复
网上一大堆 不要做伸手党
yancongmin 2014-07-11
  • 打赏
  • 举报
回复
FusionCharts非常方便,到网上找个DEMO,不难用。
卧_槽 2014-07-10
  • 打赏
  • 举报
回复
免费的js报表不要太多啊。
wubing1111 2014-07-10
  • 打赏
  • 举报
回复
好像用个 NPI的插件可以实现,以前弄过
十三- 2014-07-08
  • 打赏
  • 举报
回复
xiaoye8218 2014-07-08
  • 打赏
  • 举报
回复
用chart,很久以前弄过一个,直接贴以前的破代码吧
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="YearChart.aspx.cs" Inherits="Student_Chart_YearChart" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server" layoutH="0">
    <div>
        <asp:Chart ID="Chart1" runat="server" Width="800px">
            <Series>
                <asp:Series Name="去年" IsValueShownAsLabel="True" ChartArea="ChartArea1" 
                    Legend="Legend1">
                </asp:Series>
                <asp:Series ChartArea="ChartArea1" Name="今年" IsValueShownAsLabel="True" 
                    Legend="Legend1">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                </asp:ChartArea>
            </ChartAreas>
            <Legends>
                <asp:Legend Alignment="Center" Docking="Bottom" Name="Legend1" Title="招生人数报表">
                </asp:Legend>
            </Legends>
        </asp:Chart>
        <br />
        <asp:Chart ID="Chart2" runat="server" Width="800px" Height="300px">
            <Series>
                <asp:Series Name="去年" ChartArea="ChartArea1" Legend="Legend1" IsValueShownAsLabel="True">
                </asp:Series>
                <asp:Series ChartArea="ChartArea1" Name="今年" Legend="Legend1" IsValueShownAsLabel="True">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                </asp:ChartArea>
            </ChartAreas>
            <Legends>
                <asp:Legend Alignment="Center" Docking="Bottom" Name="Legend1" Title="实际收款报表">
                </asp:Legend>
            </Legends>
        </asp:Chart>
    </div>
    </form>
</body>
</html>

using System;
using System.Linq;
using System.Data;

public partial class Student_Chart_YearChart : System.Web.UI.Page
{
    DataClassesDataContext DC = new DataClassesDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {

        DataTable dt = new DataTable();
        dt.Columns.Add("Date");
        dt.Columns.Add("Volume1");
        dt.Columns.Add("Volume2");
        DataRow dr;
        var result = from s in DC.学生
                     where s.删除 == false && s.报名时间.Value.Year == DateTime.Now.Year -1
                     group s by s.报名时间.Value.Month into groups
                     select new { sj = groups.Key, zs = groups.Count() };
        foreach (var stu in result)
        {
            dr = dt.NewRow();
            dr["Date"] = stu.sj + "月";
            dr["Volume1"] = stu.zs;
            dr["Volume2"] = DC.学生.Where(m => (m.删除 == false && m.报名时间.Value.Year == DateTime.Now.Year && m.报名时间.Value.Month == stu.sj)).Count();
            dt.Rows.Add(dr);
        }

        Chart1.DataSource = dt;
        Chart1.Series[0].YValueMembers = "Volume1";
        Chart1.Series[1].YValueMembers = "Volume2";
        Chart1.Series[0].XValueMember = "Date";
        Chart1.DataBind();
        Chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
        DataTable dt2 = new DataTable();
        var result2 = DC.学生.Where(m => (m.删除 == false));
        dt2.Columns.Add("Date");
        dt2.Columns.Add("LastYear");
        dt2.Columns.Add("ThisYear");
        foreach (var zs in result)
        {
            dr = dt2.NewRow();
            dr["Date"] = zs.sj + "月";
            var qnyj1 = result2.Where(m => (m.报名时间.Value.Year == (DateTime.Now.Year - 1) && m.报名时间.Value.Month == zs.sj)).Sum(m => m.已交款);
            qnyj1 = qnyj1 == null ? 0 : qnyj1;
            var qnyj2 = result2.Where(m => (m.款2日期.Value.Year == (DateTime.Now.Year - 1) && m.款2日期.Value.Month == zs.sj)).Sum(m => m.款2);
            qnyj2 = qnyj2 == null ? 0 : qnyj2;
            var qnyj3 = result2.Where(m => (m.款3日期.Value.Year == (DateTime.Now.Year - 1) && m.款3日期.Value.Month == zs.sj)).Sum(m => m.款3);
            qnyj3 = qnyj3 == null ? 0 : qnyj3;
            var qnyj4 = result2.Where(m => (m.款4日期.Value.Year == (DateTime.Now.Year - 1) && m.款4日期.Value.Month == zs.sj)).Sum(m => m.款4);
            qnyj4 = qnyj4 == null ? 0 : qnyj4;
            dr["LastYear"] = qnyj1 + qnyj2 + qnyj3 + qnyj4;
            var jnyj1 = result2.Where(m => (m.报名时间.Value.Year == (DateTime.Now.Year) && m.报名时间.Value.Month == zs.sj)).Sum(m => m.已交款);
            jnyj1 = jnyj1 == null ? 0 : jnyj1;
            var jnyj2 = result2.Where(m => (m.款2日期.Value.Year == (DateTime.Now.Year) && m.款2日期.Value.Month == zs.sj)).Sum(m => m.款2);
            jnyj2 = jnyj2 == null ? 0 : jnyj2;
            var jnyj3 = result2.Where(m => (m.款3日期.Value.Year == (DateTime.Now.Year) && m.款3日期.Value.Month == zs.sj)).Sum(m => m.款3);
            jnyj3 = jnyj3 == null ? 0 : jnyj3;
            var jnyj4 = result2.Where(m => (m.款4日期.Value.Year == (DateTime.Now.Year) && m.款4日期.Value.Month == zs.sj)).Sum(m => m.款4);
            jnyj4 = jnyj4 == null ? 0 : jnyj4;
            dr["ThisYear"] = jnyj1 + jnyj2 + jnyj3 + jnyj4;
            dt2.Rows.Add(dr);
        }
        Chart2.DataSource = dt2;
        Chart2.Series[0].YValueMembers = "LastYear";
        Chart2.Series[1].YValueMembers = "ThisYear";
        Chart2.Series[0].XValueMember = "Date";
        Chart2.DataBind();
        Chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1;
    }
}
我本良人 2014-07-08
  • 打赏
  • 举报
回复
水晶报表应该可以
wylp_19 2014-07-08
  • 打赏
  • 举报
回复
funcharts 百度吧 一堆这个
小马嘎嘎 2014-07-08
  • 打赏
  • 举报
回复
如何用asp.net 制作出这张表,可以动态绑定数据
yzf86211861 2014-07-08
  • 打赏
  • 举报
回复
rdlc 虽然丑点 完全可以实现你这个功能
rabbit0310 2014-07-08
  • 打赏
  • 举报
回复
StringBuilder strSql = new StringBuilder(); strSql.Append("select measurement_detail_id,wave_data ,comment ,"); strSql.Append("'Late(ms):'||cast(latency as numeric )||'<br/>'||"); strSql.Append("'Amp(μV):'||cast(Sum(amplitude_negative+amplitude_positive) as numeric )||'<br/>'||"); strSql.Append("'Neg: '||cast(amplitude_negative as numeric )||'<br/>'||"); strSql.Append("'Pos: '||cast(amplitude_positive as numeric )||'<br/>'||"); strSql.Append("'Dur(ms): '||cast(sum(duration_start+duration_end) as numeric )||'<br/>'||"); strSql.Append("'Start: '||cast(duration_start as numeric )||'<br/>'||"); strSql.Append("'End: '||cast(duration_end as numeric ) latency "); strSql.Append("from n_measurement_detail "); strSql.Append( " where measurement_id='" + strID + "'"); strSql.Append(" group by measurement_detail_id"); cDBMgr.openDB(); DataSet ds = cDBMgr.getDataSet(strSql.ToString()); cDBMgr.closeDB(); gwChatList.DataSource = ds; gwChatList.DataBind(); String strType = ""; if (strCV.Equals("MCV")) { strType = "mV"; } else if (strCV.Equals("SCV")) { strType = "μV"; } //追加パルス図 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { gwChatList.Rows[i].Cells[1].Text = (i + 1).ToString(); string strByteArray = Encoding.UTF8.GetString((byte[])ds.Tables[0].Rows[0][1]); String[] strSplitEnter = strByteArray.Split('\n'); Chart chart = new Chart(); ChartArea cArea = new ChartArea("Area" + i); Series series1 = new Series(""); series1.ChartArea = "Area" + i; series1.ChartType = SeriesChartType.Line; series1.BorderWidth = 3; for (int j = 0; j < 500; j++) { series1.Points.AddXY(strSplitEnter[j].Split(',').GetValue(0), strSplitEnter[j].Split(',').GetValue(1)); } chart.ChartAreas.Add(cArea); chart.Series.Add(series1); chart.ChartAreas["Area" + i].AxisX.Title = "時間/s"; chart.ChartAreas["Area" + i].AxisX.TitleAlignment = StringAlignment.Far; chart.ChartAreas["Area" + i].AxisY.Title = strType; chart.ChartAreas["Area" + i].AxisY.TextOrientation = TextOrientation.Horizontal; chart.ChartAreas["Area" + i].AxisY.TitleAlignment = StringAlignment.Far; chart.ChartAreas["Area" + i].AxisX.Maximum = 500; chart.Height = 260; chart.Width =500; Control container = new Control(); container.Controls.Add(chart); gwChatList.Rows[i].Cells[2].Controls.Add(container); }
rabbit0310 2014-07-08
  • 打赏
  • 举报
回复
ms chart 微软自己的图标插件
书香卷气 2014-07-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/enoch_service/article/details/7369091

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧