Как правильно заполнить круговую диаграмму?[Powerbuilder] - PullRequest
0 голосов
/ 26 марта 2019

Я хочу, чтобы это выглядело как обычная круговая диаграмма, но я не знаю, что я делаю неправильно, я пробовал разные способы, но все они создают разные проблемы.

Here is how it currently looks

Итак, у меня есть 2 ошибки, все легенды одинаковы, а круговая диаграмма выглядит странно.

Вот мой код, который я искал некоторое время, но, похоже, не могу найти способ сделать это.Я почти уверен, что мне не хватает чего-то очень простого.

gr_pass_stats.Reset( All! )

//Populate Graph
int SNum
SNum = gr_pass_stats.AddSeries("Numeric")
gr_pass_stats.AddData(SNum, li_num, "Numeric") // Category is Numeric.

SNum = gr_pass_stats.AddSeries("Alphabetic")
gr_pass_stats.AddData(SNum, li_alph, "Alphabetic") // Category is Alphabetic.

SNum = gr_pass_stats.AddSeries("Combo")
gr_pass_stats.AddData(SNum, li_combo, "Combo") // Category is Combo.

SNum = gr_pass_stats.AddSeries("Wordlist")
gr_pass_stats.AddData(SNum, li_word, "Wordlist") // Category is Wordlist.

SNum = gr_pass_stats.AddSeries("Wordnum")
gr_pass_stats.AddData(SNum, li_word_num, "Wordnum") // Category is Wordnum.

1 Ответ

0 голосов
/ 26 марта 2019

Вставьте это на странице дизайна.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>



<script type="text/javascript" src="https://www.google.com/jsapi"></script>



<script type="text/javascript">

    google.load("visualization", "1", { packages: ["corechart"] });

    google.setOnLoadCallback(drawChart);

    function drawChart() {

        var options = {

            title: 'CHART',

            width: 400,

            height: 400,

            bar: { groupWidth: "95%" },

            legend: { position: "none" },

            isStacked: true

        };



        $.ajax({

            type: "POST",

            url: "Chart.aspx/GetChartData",     //Chart.aspx is the page name.

            data: "{}",

            contentType: "application/json; charset=utf-8",

            dataType: "json",

            success: function (r) {

                debugger;

                var data = google.visualization.arrayToDataTable(r.d);



                var chart = new google.visualization.PieChart($("#chart")[0]); //***PieChart***

                chart.draw(data, options);

            },

            failure: function (r) {

                alert(r.d);

            },

            error: function (r) {

                alert(r.d);

            }

        });

    }

</script>



<div id="chart" style="width: 500px; height: 500px;"> //this is the div which shows the chart.

</div>

Вставьте это на страницу c #.

using System.Web.Services;
[WebMethod]

public static List<object> GetChartData()

{

    string query = "select Share,Value  from Table";

    string constr = ConfigurationManager.ConnectionStrings["dbcn"].ConnectionString;

    List<object> chartData = new List<object>();

    chartData.Add(new object[]

{

    "Share", "Value"

});

    using (SqlConnection con = new SqlConnection(constr))

    {

        using (SqlCommand cmd = new SqlCommand(query))

        {

            cmd.CommandType = CommandType.Text;

            cmd.Connection = con;

            con.Open();

            using (SqlDataReader sdr = cmd.ExecuteReader())

            {

                while (sdr.Read())

                {

                    chartData.Add(new object[]

                {

                    sdr["Share"], sdr["Value"]

                });

                }

            }

            con.Close();

            return chartData;

        }

    }

}
...