4
<asp:Chart ID="chartSellThru" runat="server" Height="400px" Width="1200px" >
    <Series>                       
        <asp:Series Name="ActualsQTD">
        </asp:Series>
        <asp:Series Name="ForecastQTD">
        </asp:Series>
        <asp:Series Name="QTDRatio" ChartType="Line">
        </asp:Series>
        <asp:Series Name="TargetAttain" ChartType="Line">
        </asp:Series>
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="SellThruChartArea">
        </asp:ChartArea>
    </ChartAreas>

chartSellThru.Series["ActualsQTD"].XValueMember = "ProductGroup";
chartSellThru.Series["ActualsQTD"].YValueMembers = "ActualsQTD";

上記のコード行を default.aspx ページに記述し、最後の 2 行のコードを default.aspx.cs ページに記述しました。データはチャートにバインドされています。

折れ線グラフのコードの書き方。値がデータベースからバインドされていることを確認してください。SQL サーバーから折れ線グラフに値をバインドする方法。

4

3 に答える 3

5

2 つのシリーズをチャートにバインドする必要があると思います。そうであれば、以下のコードを配置します。

aspxページで

  <asp:Chart ID="ChartDemo" runat="server" Height="400px" Width="1200px">
                <Series>
                    <asp:Series Name="ActualsQTD">
                    </asp:Series>
                    <asp:Series Name="ForecastQTD">
                    </asp:Series>
                    <asp:Series Name="QTDAttainMent">
                    </asp:Series>
                    <asp:Series Name="QTDRatio">
                    </asp:Series>
                </Series>
                <ChartAreas>
                    <asp:ChartArea Name="SellThruChartArea">
                    </asp:ChartArea>
                </ChartAreas>
            </asp:Chart>

そして aspx.cs ページで

      DataSet ds = new DataSet();
        ds = SrcObj.GetSellThruChartData(ddlFiscalMonth.SelectedValue.ToString(), ddlReportWeek.SelectedValue.ToString(), ddlArea.SelectedValue.ToString());
        //Column Chart
        ChartDemo.Series["ActualsQTD"].ChartType = SeriesChartType.Column;
        ChartDemo.Series["ActualsQTD"]["PointWidth"] = "0.9";            
        ChartDemo.Series["ActualsQTD"]["BarLabelStyle"] = "Center";
        ChartDemo.Series["ActualsQTD"]["PixelPointDepth"] = "99";
        ChartDemo.Series["ActualsQTD"]["DrawingStyle"] = "Cylinder";
        ChartDemo.Series["ForecastQTD"].ChartType = SeriesChartType.Column;
        ChartDemo.Series["ForecastQTD"]["PointWidth"] = "0.9";            
        ChartDemo.Series["ForecastQTD"]["BarLabelStyle"] = "Center";
        ChartDemo.Series["ForecastQTD"]["PixelPointDepth"] = "99";
        ChartDemo.Series["ForecastQTD"]["DrawingStyle"] = "Cylinder";
        ChartDemo.ChartAreas["SellThruChartArea"].AxisX.Interval = 1;            
        ChartDemo.ChartAreas["SellThruChartArea"].AxisX.MajorGrid.Enabled = false;
        //ChartDemo.ChartAreas["SellThruChartArea"].AxisY.MajorGrid.Enabled = false;

        ChartDemo.Series["ActualsQTD"].XValueMember = "ProductGroup";
        ChartDemo.Series["ActualsQTD"].YValueMembers = "ActualsQTD";            
        ChartDemo.Series["ForecastQTD"].XValueMember = "";
        ChartDemo.Series["ForecastQTD"].YValueMembers = "ForecastQTD";
        ChartDemo.Series["ActualsQTD"].IsValueShownAsLabel = true;            
        ChartDemo.Series["ForecastQTD"].IsValueShownAsLabel = true;

        //Line Chart
        ChartDemo.Series["QTDAttainMent"].ChartType = SeriesChartType.Line;
        ChartDemo.Series["QTDRatio"].ChartType = SeriesChartType.Line;           

        ChartDemo.Series["QTDAttainMent"].XValueMember = "";
        ChartDemo.Series["QTDAttainMent"].YValueMembers = "QTDAttainMent";
        ChartDemo.Series["QTDRatio"].XValueMember = "";
        ChartDemo.Series["QTDRatio"].YValueMembers = "QTDRatio";

        ChartDemo.Series["QTDAttainMent"].IsValueShownAsLabel = true;
        ChartDemo.Series["QTDRatio"].IsValueShownAsLabel = true;

        ChartDemo.Series["QTDAttainMent"].BorderWidth = 3;
        ChartDemo.Series["QTDAttainMent"].Color = Color.Green;
        ChartDemo.Series["QTDRatio"].BorderWidth = 3;
        ChartDemo.Series["QTDRatio"].Color = Color.Red;

        ChartDemo.Series["QTDAttainMent"].YAxisType = AxisType.Secondary;
        ChartDemo.Series["QTDRatio"].YAxisType= AxisType.Secondary;           

        ChartDemo.DataSource = ds;
        ChartDemo.DataBind();
于 2013-02-15T09:51:35.013 に答える
0

コードは非常に単純です。

using (SqlConnection conn = new SqlConnection("OMG look a connection string"))
{
    using (SqlCommand cmd = new SqlCommand("SELECT xValue, yValue FROM chartPoints"))
    {
        try
        {
            conn.Open()

            using (SqlDataReader rdr = cmd.ExecuteReader())
            {
                chartSellThru.Series["QTDRatio"].Points.DataBindXY(rdr, "xValue", rdr, "yValue");
            }
        }
        catch(Exception ex)
        {
            //handle errors
        }
    }
}

このコマンドをSelectCommandforとして設定SqlDataSourceし、それをチャートにバインドしてから、以前と同じようにXValueMemberおよびでポイントを選択することもできます。YValueMembers

<asp:SqlDataSource runat="server" ID="dsLinePoints" ConnectionString="OMG look a connection string" SelectCommand="SELECT xValue, yValue FROM chartPoints" />

<asp:Chart ID="chartSellThru" runat="server" Height="400px" Width="1200px" DataSourceID="dsLinePoints">
    <Series>                       
        <asp:Series Name="ActualsQTD">
        </asp:Series>
        <asp:Series Name="ForecastQTD">
         </asp:Series>
        <asp:Series Name="QTDRatio" ChartType="Line">
        </asp:Series>
        <asp:Series Name="TargetAttain" ChartType="Line">
        </asp:Series>
    </Series>
    <ChartAreas>
        <asp:ChartArea Name="SellThruChartArea">
        </asp:ChartArea>
    </ChartAreas>
</asp:Chart>

chartSellThru.Series["QTDRatio"].XValueMember = "xValue";
chartSellThru.Series["QTDRatio"].YValueMembers = "yValue";
于 2013-02-14T12:40:55.257 に答える
0

最初は単純にしてから、複数のシリーズに進むことができます。

コードの後ろのページ:

Values[]={10,20,30,40,50}

weekworkline1.Series.Add(new AjaxControlToolkit.LineChartSeries { Data = values, LineColor = "#2fd1f9", Name = "Working Hours" });

Aspx コード:

<asp:LineChart ID="weekworkline1" runat="server" ChartHeight="300" ChartWidth="900" ChartType="Stacked"></asp:LineChart>
于 2013-10-04T13:47:40.803 に答える