示例#1
0
    public static string check_mamaro(string param1, string param2, string param7)
    {
        GCP_MYSQL gc     = new GCP_MYSQL();
        string    Query  = "";
        int       QAcou  = 0;
        int       QAcou1 = 0;
        string    result = "";
        DateTime  start  = Convert.ToDateTime(param1.Trim());
        DateTime  end    = Convert.ToDateTime(param2.Trim());

        state_detail_list = new List <state_detail>();
        string res = @"<br/><h2>年月日:</h2>";

        res += @"<br/><h2>" + start.Year + "年" + start.Month + "月" + start.Day + "日 ~ " + end.Year + "年" + end.Month + "月" + end.Day + "日" + @"</h2><br /><br />";
        if (param7 == "")
        {
            param7 = "300";
        }
        try
        {
            if (start != null && end != null)
            {
                Query  = "select id,name";
                Query += " from nursing_room;";
                DataView ict_place = gc.select_cmd(Query);
                if (ict_place.Count > 0)
                {
                    for (int ih = 0; ih < ict_place.Count; ih++)
                    {
                        state_group  sg  = new state_group();
                        state_detail sgg = new state_detail();

                        state_list      = new List <state_group>();
                        lock_state_list = new List <state_group>();

                        string room_id = ict_place.Table.Rows[ih]["id"].ToString();
                        //mamaro QA


                        //state time
                        Query = "select * from nursing_room_state_time where nursing_room_id='" + room_id + "' and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;";
                        DataView ict = gc.select_cmd(Query);
                        if (ict.Count > 0)
                        {
                            for (int i = 0; i < ict.Count; i++)
                            {
                                sg        = new state_group();
                                sg.state  = Convert.ToInt32(ict.Table.Rows[i]["state"].ToString());
                                sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                                state_list.Add(sg);
                            }
                        }

                        List <state_group> check_list = new List <state_group>();

                        for (int i = 0; i < state_list.Count; i++)
                        {
                            if (state_list[i].state == 1)
                            {
                                sg        = new state_group();
                                sg.state  = state_list[i].state;
                                sg.update = state_list[i].update;
                                check_list.Add(sg);
                                int index = i + 1;
                                while (index < state_list.Count)
                                {
                                    if (state_list[index].state == 0)
                                    {
                                        sg        = new state_group();
                                        sg.state  = state_list[index].state;
                                        sg.update = state_list[index].update;
                                        check_list.Add(sg);
                                        break;
                                    }
                                    index += 1;
                                }
                            }
                        }
                        //lock state time
                        Query = "select * from nursing_room_lock_state_time where nursing_room_id='" + room_id + "' and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;;";
                        ict   = gc.select_cmd(Query);
                        if (ict.Count > 0)
                        {
                            if (room_id == "9")
                            {
                                for (int i = 0; i < ict.Count; i++)
                                {
                                    sg = new state_group();
                                    if (Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Year <= 2017 &&
                                        Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Month <= 11 &&
                                        Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Day <= 26)
                                    {
                                        if (Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString()) == 0)
                                        {
                                            sg.state = 1;
                                        }
                                        else
                                        {
                                            sg.state = 0;
                                        }
                                    }
                                    else
                                    {
                                        sg.state = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                                    }
                                    sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                                    lock_state_list.Add(sg);
                                }
                            }
                            else
                            {
                                for (int i = 0; i < ict.Count; i++)
                                {
                                    sg        = new state_group();
                                    sg.state  = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                                    sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                                    lock_state_list.Add(sg);
                                }
                            }
                        }


                        List <state_group> check_list1 = new List <state_group>();

                        for (int i = 0; i < lock_state_list.Count; i++)
                        {
                            if (lock_state_list[i].state == 0)
                            {
                                sg        = new state_group();
                                sg.state  = lock_state_list[i].state;
                                sg.update = lock_state_list[i].update;
                                check_list1.Add(sg);
                                int index = i + 1;
                                while (index < lock_state_list.Count)
                                {
                                    if (lock_state_list[index].state == 1)
                                    {
                                        sg        = new state_group();
                                        sg.state  = lock_state_list[index].state;
                                        sg.update = lock_state_list[index].update;
                                        check_list1.Add(sg);
                                        break;
                                    }
                                    index += 1;
                                }
                            }
                        }
                        //Chart1.Series.Clear();  //每次使用此function前先清除圖表
                        //Series series1 = new Series("use time(second)", 1200); //初始畫線條(名稱,最大值)
                        //series1.Color = Color.Blue; //設定線條顏色
                        //series1.Font = new System.Drawing.Font("新細明體", 10); //設定字型
                        //series1.ChartType = SeriesChartType.Line; //設定線條種類
                        //Chart1.ChartAreas[0].AxisY.Minimum = 0;//設定Y軸最小值
                        //Chart1.ChartAreas[0].AxisY.Maximum = 1200;//設定Y軸最大值
                        ////chart1.ChartAreas[0].AxisY.Enabled= AxisEnabled.False; //隱藏Y 軸標示
                        ////chart1.ChartAreas[0].AxisY.MajorGrid.Enabled= true;  //隱藏Y軸標線
                        //series1.IsValueShownAsLabel = true; //是否把數值顯示在線上
                        string monstr = "var MONTHS = [";
                        monstr += "];";
                        string monstt = "";
                        string arrva  = "";

                        double   avg = 0, coun = 0, hcou = 0, havg = 0;
                        double   compute_day = -1;
                        DateTime first_d, second_d;
                        for (int i = 0; i < check_list.Count; i++)
                        {
                            compute_day = -1;
                            if (check_list[i].state == 1)
                            {
                                first_d = Convert.ToDateTime(check_list[i].update);

                                int index = i + 1;
                                while (index < check_list.Count)
                                {
                                    if (check_list[index].state == 0)
                                    {
                                        second_d    = Convert.ToDateTime(check_list[index].update);
                                        compute_day = (second_d - first_d).TotalSeconds;

                                        break;
                                    }
                                    index += 1;
                                }
                                if (compute_day > -1)
                                {
                                    //monstt+=check_list[i].update.ToString("yyyyMMddHHmmss")+",";
                                    //arrva +=compute_day+ ",";

                                    if (compute_day < 1801)
                                    {
                                        coun   += 1;
                                        avg    += compute_day;
                                        monstt += check_list[i].update.ToString("yyyyMMddHHmmss") + ",";
                                        arrva  += compute_day + ",";
                                    }
                                    if (compute_day >= Convert.ToInt32(param7) && compute_day < 1801)
                                    {
                                        hcou += 1;
                                        havg += compute_day;
                                    }
                                    //series1.Points.AddXY(i.ToString(), compute_day);


                                    //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                    //listBox3.Items.Add("End time: " + check_list[index].update.ToString("yyyy-MM-dd HH:mm:ss"));
                                    //listBox3.Items.Add("Total sec: " + compute_day);
                                }
                                else
                                {
                                    //DateTime todate = DateTime.Now;
                                    //double compute_day1 = (todate - first_d).TotalSeconds;
                                    //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                    //listBox3.Items.Add("End time: NO");
                                    //listBox3.Items.Add("Total sec: NO");
                                }
                            }
                        }
                        if (monstt != "")
                        {
                            monstt = monstt.Substring(0, monstt.Length - 1);
                        }
                        if (arrva != "")
                        {
                            arrva = arrva.Substring(0, arrva.Length - 1);
                        }
                        //Chart1.Series.Add(series1);//將線畫在圖上

                        //for (int i = 0; i < check_list.Count; i++)
                        //{
                        //    listBox1.Items.Add(check_list[i].state);
                        //    listBox2.Items.Add(check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss"));
                        //}

                        if (check_list1.Count > 0 && check_list.Count > 0)
                        {
                            sgg.answer_datetime_s = start.Year + "年" + start.Month + "月" + start.Day + "日";
                            sgg.answer_datetime_e = end.Year + "年" + end.Month + "月" + end.Day + "日";
                            sgg.name = ict_place.Table.Rows[ih]["name"].ToString();


                            double lll = havg / hcou;
                            if (hcou == 0)
                            {
                                lll = 0;
                            }
                            res += @"<br/><fieldset>
    <legend>" + ict_place.Table.Rows[ih]["name"].ToString() + @"</legend><br/>
<br/>
<h2>" + param7 + @"秒以上の利用回数(総数):</h2>
<br/>
<h2>" + hcou.ToString() + @"</h2>
<br/>
<h2>" + param7 + @"秒以上のみでの平均利用時間(秒)(総利用者):</h2>
<br/>
<h2>" + lll.ToString() + @"</h2>
";

                            sgg.time1 = hcou.ToString();
                            sgg.time2 = lll.ToString();

                            monstr  = "var MONTHS = [";
                            monstr += "];";
                            monstt  = "";
                            arrva   = "";

                            avg         = 0; coun = 0; hcou = 0; havg = 0;
                            compute_day = -1;
                            for (int i = 0; i < check_list1.Count; i++)
                            {
                                compute_day = -1;
                                if (check_list1[i].state == 0)
                                {
                                    first_d = Convert.ToDateTime(check_list1[i].update);

                                    int index = i + 1;
                                    while (index < check_list1.Count)
                                    {
                                        if (check_list1[index].state == 1)
                                        {
                                            second_d    = Convert.ToDateTime(check_list1[index].update);
                                            compute_day = (second_d - first_d).TotalSeconds;

                                            break;
                                        }
                                        index += 1;
                                    }
                                    if (compute_day > -1)
                                    {
                                        //monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                                        //arrva += compute_day + ",";

                                        if (compute_day < 1801)
                                        {
                                            coun   += 1;
                                            avg    += compute_day;
                                            monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                                            arrva  += compute_day + ",";
                                        }
                                        if (compute_day >= Convert.ToInt32(param7) && compute_day < 1801)
                                        {
                                            hcou += 1;
                                            havg += compute_day;
                                        }
                                        //series1.Points.AddXY(i.ToString(), compute_day);


                                        //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                        //listBox3.Items.Add("End time: " + check_list[index].update.ToString("yyyy-MM-dd HH:mm:ss"));
                                        //listBox3.Items.Add("Total sec: " + compute_day);
                                    }
                                    else
                                    {
                                        //DateTime todate = DateTime.Now;
                                        //double compute_day1 = (todate - first_d).TotalSeconds;
                                        //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                        //listBox3.Items.Add("End time: NO");
                                        //listBox3.Items.Add("Total sec: NO");
                                    }
                                }
                            }
                            if (monstt != "")
                            {
                                monstt = monstt.Substring(0, monstt.Length - 1);
                            }
                            if (arrva != "")
                            {
                                arrva = arrva.Substring(0, arrva.Length - 1);
                            }

                            lll = havg / hcou;
                            if (hcou == 0)
                            {
                                lll = 0;
                            }
                            double avggg = avg / coun;
                            if (avg == 0)
                            {
                                avggg = 0;
                            }
                            res += @"
<br/>
<h2>利用者数:</h2>
<br/>
<h2>" + coun.ToString() + @"</h2>
<br/>
<h2>平均利用時間(秒):</h2>
<br/>
<h2>" + avggg.ToString() + @"</h2>
<br/>
<h2>" + param7 + @"秒以上の利用回数(施錠して利用):</h2>
<br/>
<h2>" + hcou.ToString() + @"</h2>
<br/>
<h2>" + param7 + @"秒以上のみでの平均利用時間(秒)(施錠利用者):</h2>
<br/>
<h2>" + lll.ToString() + @"</h2>
<br/>
<br/>
  </fieldset>
";

                            sgg.time3 = coun.ToString();
                            sgg.time4 = avggg.ToString();
                            sgg.time5 = hcou.ToString();
                            sgg.time6 = lll.ToString();

                            state_detail_list.Add(sgg);

                            //                res += @"<script type='text/javascript'>
                            //
                            //</script>";
                        }

                        //result = "fail";
                    }
                }
                result = res;

                res = "";
                if (state_detail_list.Count > 0)
                {
                    res += @"<fieldset><legend style='font-size: large; font-weight: bold'>state detail</legend>";

                    res += @"<div id='dvData'>
    <table>
        <tr>
            <td>開始日</td>
            <td>終了日</td>
            <td>名前</td>
            <td>" + param7 + @"秒以上の利用回数(総数)</td>
            <td>" + param7 + @"秒以上のみでの平均利用時間(秒)(総利用者)</td>
            <td>利用者数</td>
            <td>平均利用時間(秒)</td>
            <td>" + param7 + @"秒以上の利用回数(施錠して利用)</td>
            <td>" + param7 + @"秒以上のみでの平均利用時間(秒)(施錠利用者)</td>
        </tr>";
                    for (int i = 0; i < state_detail_list.Count; i++)
                    {
                        res += @"<tr>
    <td>" + state_detail_list[i].answer_datetime_s + @"</td>
    <td>" + state_detail_list[i].answer_datetime_e + @"</td>
<td>" + state_detail_list[i].name + @"</td>
<td>" + state_detail_list[i].time1 + @"</td>
<td>" + state_detail_list[i].time2 + @"</td>
<td>" + state_detail_list[i].time3 + @"</td>
<td>" + state_detail_list[i].time4 + @"</td>
<td>" + state_detail_list[i].time5 + @"</td>
<td>" + state_detail_list[i].time6 + @"</td>
</tr>
";
                    }
                    res += @"</table>
</div>";


                    res += @"</fieldset><hr/>";
                }

                result += res;
            }
        }
        catch (Exception ex)
        {
            //result = "fail";

            //return result;
            throw ex;
        }
        return(result);
    }
示例#2
0
    public static string check_mamaro(string param1, string param2, string param3, string param4, string param5, string param6, string param7)
    {
        GCP_MYSQL gc     = new GCP_MYSQL();
        string    Query  = "";
        int       QAcou  = 0;
        int       QAcou1 = 0;
        string    result = "";
        DateTime  start  = Convert.ToDateTime(param1.Trim());
        DateTime  end    = Convert.ToDateTime(param2.Trim());

        if (param7 == "")
        {
            param7 = "300";
        }
        try
        {
            if (start != null && end != null)
            {
                state_group sg  = new state_group();
                QA_group    qaa = new QA_group();

                state_list      = new List <state_group>();
                lock_state_list = new List <state_group>();

                QA_list = new List <QA_group>();

                string room_id = param6;
                //mamaro QA
                Query = "select * from nursing_room_QA where nursing_room_id='" + room_id + "' and insert_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                DataView ict = gc.select_cmd(Query);
                QAcou = ict.Count;
                if (ict.Count > 0)
                {
                    for (int i = 0; i < ict.Count; i++)
                    {
                        qaa = new QA_group();
                        qaa.answer_datetime = Convert.ToDateTime(ict.Table.Rows[i]["insert_time"].ToString());
                        qaa.baby_m          = ict.Table.Rows[i]["Q1_baby_month"].ToString();
                        qaa.baby_y          = ict.Table.Rows[i]["Q1_baby_year"].ToString();
                        qaa.lan             = ict.Table.Rows[i]["language"].ToString();
                        qaa.parent          = ict.Table.Rows[i]["Q1_parent"].ToString();
                        qaa.Q2_choice       = ict.Table.Rows[i]["Q2_choice"].ToString();
                        qaa.Q3_choice       = ict.Table.Rows[i]["Q3_choice"].ToString();
                        qaa.Q4_choice       = ict.Table.Rows[i]["Q4_choice"].ToString();
                        qaa.Q5_choice       = ict.Table.Rows[i]["Q5_choice"].ToString();

                        QA_list.Add(qaa);
                    }
                }

                QA_group_1 qaa_1 = new QA_group_1();
                QA_list_1 = new List <QA_group_1>();
                //mamaro new QA
                Query  = "select * from nursing_room_QA1 where nursing_room_id='" + room_id + "' and insert_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                ict    = gc.select_cmd(Query);
                QAcou1 = ict.Count;
                if (ict.Count > 0)
                {
                    for (int i = 0; i < ict.Count; i++)
                    {
                        qaa_1 = new QA_group_1();
                        qaa_1.answer_datetime = Convert.ToDateTime(ict.Table.Rows[i]["insert_time"].ToString());
                        qaa_1.baby_y_m        = ict.Table.Rows[i]["Q1_baby_year_month"].ToString();
                        qaa_1.lan             = ict.Table.Rows[i]["language"].ToString();
                        qaa_1.parent          = ict.Table.Rows[i]["Q1_parent"].ToString();
                        qaa_1.Q2_choice       = ict.Table.Rows[i]["Q2_choice"].ToString();
                        qaa_1.Q3_choice       = ict.Table.Rows[i]["Q3_choice"].ToString();
                        qaa_1.Q4_choice       = ict.Table.Rows[i]["Q4_choice"].ToString();
                        qaa_1.Q5_choice       = ict.Table.Rows[i]["Q5_choice"].ToString();
                        qaa_1.Q6_choice       = ict.Table.Rows[i]["Q6_choice"].ToString();
                        QA_list_1.Add(qaa_1);
                    }
                }

                //state time
                Query = "select * from nursing_room_state_time where nursing_room_id='" + room_id + "' and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;";
                ict   = gc.select_cmd(Query);
                if (ict.Count > 0)
                {
                    for (int i = 0; i < ict.Count; i++)
                    {
                        sg        = new state_group();
                        sg.state  = Convert.ToInt32(ict.Table.Rows[i]["state"].ToString());
                        sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                        state_list.Add(sg);
                    }
                }

                List <state_group> check_list = new List <state_group>();

                for (int i = 0; i < state_list.Count; i++)
                {
                    if (state_list[i].state == 1)
                    {
                        sg        = new state_group();
                        sg.state  = state_list[i].state;
                        sg.update = state_list[i].update;
                        check_list.Add(sg);
                        int index = i + 1;
                        while (index < state_list.Count)
                        {
                            if (state_list[index].state == 0)
                            {
                                sg        = new state_group();
                                sg.state  = state_list[index].state;
                                sg.update = state_list[index].update;
                                check_list.Add(sg);
                                break;
                            }
                            index += 1;
                        }
                    }
                }
                //lock state time
                Query = "select * from nursing_room_lock_state_time where nursing_room_id='" + room_id + "' and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;;";
                ict   = gc.select_cmd(Query);
                if (ict.Count > 0)
                {
                    if (room_id == "9")
                    {
                        for (int i = 0; i < ict.Count; i++)
                        {
                            sg = new state_group();
                            if (Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Year <= 2017 &&
                                Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Month <= 11 &&
                                Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Day <= 26)
                            {
                                if (Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString()) == 0)
                                {
                                    sg.state = 1;
                                }
                                else
                                {
                                    sg.state = 0;
                                }
                            }
                            else
                            {
                                sg.state = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                            }
                            sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                            lock_state_list.Add(sg);
                        }
                    }
                    else
                    {
                        for (int i = 0; i < ict.Count; i++)
                        {
                            sg        = new state_group();
                            sg.state  = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                            sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                            lock_state_list.Add(sg);
                        }
                    }
                }


                List <state_group> check_list1 = new List <state_group>();

                for (int i = 0; i < lock_state_list.Count; i++)
                {
                    if (lock_state_list[i].state == 0)
                    {
                        sg        = new state_group();
                        sg.state  = lock_state_list[i].state;
                        sg.update = lock_state_list[i].update;
                        check_list1.Add(sg);
                        int index = i + 1;
                        while (index < lock_state_list.Count)
                        {
                            if (lock_state_list[index].state == 1)
                            {
                                sg        = new state_group();
                                sg.state  = lock_state_list[index].state;
                                sg.update = lock_state_list[index].update;
                                check_list1.Add(sg);
                                break;
                            }
                            index += 1;
                        }
                    }
                }
                //Chart1.Series.Clear();  //每次使用此function前先清除圖表
                //Series series1 = new Series("use time(second)", 1200); //初始畫線條(名稱,最大值)
                //series1.Color = Color.Blue; //設定線條顏色
                //series1.Font = new System.Drawing.Font("新細明體", 10); //設定字型
                //series1.ChartType = SeriesChartType.Line; //設定線條種類
                //Chart1.ChartAreas[0].AxisY.Minimum = 0;//設定Y軸最小值
                //Chart1.ChartAreas[0].AxisY.Maximum = 1200;//設定Y軸最大值
                ////chart1.ChartAreas[0].AxisY.Enabled= AxisEnabled.False; //隱藏Y 軸標示
                ////chart1.ChartAreas[0].AxisY.MajorGrid.Enabled= true;  //隱藏Y軸標線
                //series1.IsValueShownAsLabel = true; //是否把數值顯示在線上
                string monstr = "var MONTHS = [";
                monstr += "];";
                string monstt = "";
                string arrva  = "";

                double   avg = 0, coun = 0, hcou = 0, havg = 0;
                double   compute_day = -1;
                DateTime first_d, second_d;
                for (int i = 0; i < check_list.Count; i++)
                {
                    compute_day = -1;
                    if (check_list[i].state == 1)
                    {
                        first_d = Convert.ToDateTime(check_list[i].update);

                        int index = i + 1;
                        while (index < check_list.Count)
                        {
                            if (check_list[index].state == 0)
                            {
                                second_d    = Convert.ToDateTime(check_list[index].update);
                                compute_day = (second_d - first_d).TotalSeconds;

                                break;
                            }
                            index += 1;
                        }
                        if (compute_day > -1)
                        {
                            //monstt+=check_list[i].update.ToString("yyyyMMddHHmmss")+",";
                            //arrva +=compute_day+ ",";

                            if (compute_day < 1801)
                            {
                                coun   += 1;
                                avg    += compute_day;
                                monstt += check_list[i].update.ToString("yyyyMMddHHmmss") + ",";
                                arrva  += compute_day + ",";
                            }
                            if (compute_day >= Convert.ToInt32(param7) && compute_day < 1801)
                            {
                                hcou += 1;
                                havg += compute_day;
                            }
                            //series1.Points.AddXY(i.ToString(), compute_day);


                            //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                            //listBox3.Items.Add("End time: " + check_list[index].update.ToString("yyyy-MM-dd HH:mm:ss"));
                            //listBox3.Items.Add("Total sec: " + compute_day);
                        }
                        else
                        {
                            //DateTime todate = DateTime.Now;
                            //double compute_day1 = (todate - first_d).TotalSeconds;
                            //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                            //listBox3.Items.Add("End time: NO");
                            //listBox3.Items.Add("Total sec: NO");
                        }
                    }
                }
                if (monstt != "")
                {
                    monstt = monstt.Substring(0, monstt.Length - 1);
                }
                if (arrva != "")
                {
                    arrva = arrva.Substring(0, arrva.Length - 1);
                }
                //Chart1.Series.Add(series1);//將線畫在圖上

                //for (int i = 0; i < check_list.Count; i++)
                //{
                //    listBox1.Items.Add(check_list[i].state);
                //    listBox2.Items.Add(check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss"));
                //}

                string res = @"<fieldset>
    <legend>State Time</legend><br/>
<script type='text/javascript'>
         var config = {
             type: 'line',
             data: {
                 labels: [" + monstt + @"],
                 datasets: [{
                     label: 'Use time dataset',
                     fill: false,
                     backgroundColor: 'rgb(" + param3 + @", " + param4 + @", " + param5 + @")',
                     borderColor: 'rgb(" + param3 + @", " + param4 + @", " + param5 + @")',
                     data: [" + arrva + @"
                     ],

                 }]
             },
             options: {
                 responsive: true,
                 title: {
                     display: true,
                     text: 'Use Time Line Chart'
                 },
                 tooltips: {
                     mode: 'index',
                     intersect: false,
                 },
                 hover: {
                     mode: 'nearest',
                     intersect: true
                 },
                 scales: {
                     xAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: 'DateTime'
                         }
                     }],
                     yAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: 'Time(second)'
                         }
                     }]
                 }
             }
         };
 var ctx = document.getElementById('canvas').getContext('2d');
             window.myLine = new Chart(ctx, config);
</script>
<canvas id='canvas'></canvas>
<br/>
<h2>Total users:</h2>
<br/>
<h2>" + coun.ToString() + @"</h2>
<br/>
<h2>AVG use time (second):</h2>
<br/>
<h2>" + (avg /= coun).ToString() + @"</h2>
<br/>
<h2>Long users(after " + param7 + @" second):</h2>
<br/>
<h2>" + hcou.ToString() + @"</h2>
<br/>
<h2>Long users AVG use time(after " + param7 + @" second)(second):</h2>
<br/>
<h2>" + (havg /= hcou).ToString() + @"</h2>
  </fieldset>
";


                monstr  = "var MONTHS = [";
                monstr += "];";
                monstt  = "";
                arrva   = "";

                avg         = 0; coun = 0; hcou = 0; havg = 0;
                compute_day = -1;
                for (int i = 0; i < check_list1.Count; i++)
                {
                    compute_day = -1;
                    if (check_list1[i].state == 0)
                    {
                        first_d = Convert.ToDateTime(check_list1[i].update);

                        int index = i + 1;
                        while (index < check_list1.Count)
                        {
                            if (check_list1[index].state == 1)
                            {
                                second_d    = Convert.ToDateTime(check_list1[index].update);
                                compute_day = (second_d - first_d).TotalSeconds;

                                break;
                            }
                            index += 1;
                        }
                        if (compute_day > -1)
                        {
                            //monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                            //arrva += compute_day + ",";

                            if (compute_day < 1801)
                            {
                                coun   += 1;
                                avg    += compute_day;
                                monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                                arrva  += compute_day + ",";
                            }
                            if (compute_day >= Convert.ToInt32(param7) && compute_day < 1801)
                            {
                                hcou += 1;
                                havg += compute_day;
                            }
                            //series1.Points.AddXY(i.ToString(), compute_day);


                            //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                            //listBox3.Items.Add("End time: " + check_list[index].update.ToString("yyyy-MM-dd HH:mm:ss"));
                            //listBox3.Items.Add("Total sec: " + compute_day);
                        }
                        else
                        {
                            //DateTime todate = DateTime.Now;
                            //double compute_day1 = (todate - first_d).TotalSeconds;
                            //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                            //listBox3.Items.Add("End time: NO");
                            //listBox3.Items.Add("Total sec: NO");
                        }
                    }
                }
                if (monstt != "")
                {
                    monstt = monstt.Substring(0, monstt.Length - 1);
                }
                if (arrva != "")
                {
                    arrva = arrva.Substring(0, arrva.Length - 1);
                }
                res += @"<fieldset>
    <legend>Lock State Time</legend><br/>
<script type='text/javascript'>
         var config1 = {
             type: 'line',
             data: {
                 labels: [" + monstt + @"],
                 datasets: [{
                     label: 'Lock Use time dataset',
                     fill: false,
                     backgroundColor: 'rgb(" + param3 + @", " + param4 + @", " + param5 + @")',
                     borderColor: 'rgb(" + param3 + @", " + param4 + @", " + param5 + @")',
                     data: [" + arrva + @"
                     ],

                 }]
             },
             options: {
                 responsive: true,
                 title: {
                     display: true,
                     text: 'Lock Use Time Line Chart'
                 },
                 tooltips: {
                     mode: 'index',
                     intersect: false,
                 },
                 hover: {
                     mode: 'nearest',
                     intersect: true
                 },
                 scales: {
                     xAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: 'DateTime'
                         }
                     }],
                     yAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: 'Time(second)'
                         }
                     }]
                 }
             }
         };
 var ctx1 = document.getElementById('canvas1').getContext('2d');
             window.myLine = new Chart(ctx1, config1);
</script>
<canvas id='canvas1'></canvas>
<br/>
<h2>Total users:</h2>
<br/>
<h2>" + coun.ToString() + @"</h2>
<br/>
<h2>AVG use time (second):</h2>
<br/>
<h2>" + (avg /= coun).ToString() + @"</h2>
<br/>
<h2>Long users(after " + param7 + @" second):</h2>
<br/>
<h2>" + hcou.ToString() + @"</h2>
<br/>
<h2>Long users AVG use time(after " + param7 + @" second)(second):</h2>
<br/>
<h2>" + (havg /= hcou).ToString() + @"</h2>
<br/>
<br/>
<h2>QA count:</h2>
<br/>
<h2>" + QAcou.ToString() + @"</h2>
<br/>
<h2>new QA count:</h2>
<br/>
<h2>" + QAcou1.ToString() + @"</h2>
<br/>
  </fieldset>
";
                res += @"<fieldset><legend style='font-size: large; font-weight: bold'>QA detail</legend>";

                res += @"<div id='dvData'>
    <table>
        <tr>
            <td>日時</td>
            <td>言語 (language)</td>
            <td>お子さまのご年齢は</td>
            <td>あなたは</td>
            <td>mamaroがどこにあったら便利? ( 複数選択可 )</td>
            <td>mamaroをどこで知った? ( 複数選択可 )</td>
            <td>mamaroに 「もっとこんな機能が欲しい。こんなのがあったら嬉しい。」というものはありますか?</td>
            <td>授乳室は個室派?わいわい派?</td>
        </tr>";

                //QA detail
                for (int i = 0; i < QA_list.Count; i++)
                {
                    res += @"<tr>
    <td>" + QA_list[i].answer_datetime.ToString("yyyy-MM-dd HH:mm:ss") + @"</td>
<td>" + QA_list[i].lan + @"</td>
<td>" + QA_list[i].baby_y + @"歳 " + QA_list[i].baby_m + @"ヶ月</td>
<td>" + QA_list[i].parent + @"</td>
<td>" + QA_list[i].Q2_choice.Replace(",", ".") + @"</td>
<td>" + QA_list[i].Q3_choice.Replace(",", ".") + @"</td>
<td>" + QA_list[i].Q4_choice.Replace(",", ".") + @"</td>
<td>" + QA_list[i].Q5_choice.Replace(",", ".") + @"</td>
</tr>
";
                }


                res += @"</table>
</div>";


                res += @"</fieldset><hr/>";


                //new QA
                res += @"<fieldset><legend style='font-size: large; font-weight: bold'>new QA detail</legend>";

                res += @"<div id='dvData_new'>
    <table>
        <tr>
            <td>日時</td>
            <td>言語 (language)</td>
            <td>お子さまのご年齢は</td>
            <td>お子さまとの関係</td>
            <td>mamaroのご利用は何回目ですが?</td>
            <td>mamaroをどのようにして知りましたか?</td>
            <td>mamaroの空室状況をBabymapというアプリで調べることができるのを知っていましたか?</td>
            <td>mamaroで" + '"' + @"気に入っているポイント" + '"' + @"を教えてください。(複数選択可)</td>
            <td>mamaroの満足度を教えてください。</td>
        </tr>";

                //QA detail
                for (int i = 0; i < QA_list_1.Count; i++)
                {
                    res += @"<tr>
    <td>" + QA_list_1[i].answer_datetime.ToString("yyyy-MM-dd HH:mm:ss") + @"</td>
<td>" + QA_list_1[i].lan + @"</td>
<td>" + QA_list_1[i].baby_y_m + @"</td>
<td>" + QA_list_1[i].parent + @"</td>
<td>" + QA_list_1[i].Q2_choice.Replace(",", ".") + @"</td>
<td>" + QA_list_1[i].Q3_choice.Replace(",", ".") + @"</td>
<td>" + QA_list_1[i].Q4_choice.Replace(",", ".") + @"</td>
<td>" + QA_list_1[i].Q5_choice.Replace(",", ".") + @"</td>
<td>" + QA_list_1[i].Q6_choice.Replace(",", ".") + @"</td>
</tr>
";
                }


                res += @"</table>
</div>";


                res += @"</fieldset><hr/>";

//                res += @"<script type='text/javascript'>
//
//</script>";


                result = res;


                //result = "fail";
            }
        }
        catch (Exception ex)
        {
            //result = "fail";

            //return result;
            throw ex;
        }
        return(result);
    }
    public static string check_mamaro(string param1, string param2, string param3, string param4, string param5)
    {
        //test
        //int comid = 26;
        //List<int> comlist = new List<int>();
        //comlist.Add(comid);
        //comlist.Add(Convert.ToInt32( param6));

        string[] liness = param3.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);


        List <string> res_list = new List <string>();
        GCP_MYSQL     gc       = new GCP_MYSQL();
        string        Query    = "";
        int           QAcou    = 0;
        int           QAcou1   = 0;
        string        result   = "";
        DateTime      start    = Convert.ToDateTime(param1.Trim());
        DateTime      end      = Convert.ToDateTime(param2.Trim());

        if (param4 == "")
        {
            param4 = "30";
        }
        try
        {
            if (start != null && end != null)
            {
                string label = "";
                string res   = "";
                string res1  = "";
                for (int kk = 0; kk < liness.Length; kk++)
                {
                    state_group sg  = new state_group();
                    QA_group    qaa = new QA_group();

                    state_list      = new List <state_group>();
                    lock_state_list = new List <state_group>();

                    QA_list = new List <QA_group>();

                    string room_id = liness[kk];
                    //mamaro name
                    string mamaname = "";
                    Query = "select * from nursing_room where id='" + room_id + "';";
                    DataView ict = gc.select_cmd(Query);
                    if (ict.Count > 0)
                    {
                        mamaname = ict.Table.Rows[0]["name"].ToString();
                    }



                    //mamaro QA
                    Query = "select * from nursing_room_QA where nursing_room_id='" + room_id + "' and insert_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                    ict   = gc.select_cmd(Query);
                    QAcou = ict.Count;
                    if (ict.Count > 0)
                    {
                        for (int i = 0; i < ict.Count; i++)
                        {
                            qaa = new QA_group();
                            qaa.answer_datetime = Convert.ToDateTime(ict.Table.Rows[i]["insert_time"].ToString());
                            qaa.baby_m          = ict.Table.Rows[i]["Q1_baby_month"].ToString();
                            qaa.baby_y          = ict.Table.Rows[i]["Q1_baby_year"].ToString();
                            qaa.lan             = ict.Table.Rows[i]["language"].ToString();
                            qaa.parent          = ict.Table.Rows[i]["Q1_parent"].ToString();
                            qaa.Q2_choice       = ict.Table.Rows[i]["Q2_choice"].ToString();
                            qaa.Q3_choice       = ict.Table.Rows[i]["Q3_choice"].ToString();
                            qaa.Q4_choice       = ict.Table.Rows[i]["Q4_choice"].ToString();
                            qaa.Q5_choice       = ict.Table.Rows[i]["Q5_choice"].ToString();

                            QA_list.Add(qaa);
                        }
                    }

                    QA_group_1 qaa_1 = new QA_group_1();
                    QA_list_1 = new List <QA_group_1>();
                    //mamaro new QA
                    Query  = "select * from nursing_room_QA1 where nursing_room_id='" + room_id + "' and insert_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                    ict    = gc.select_cmd(Query);
                    QAcou1 = ict.Count;
                    if (ict.Count > 0)
                    {
                        for (int i = 0; i < ict.Count; i++)
                        {
                            qaa_1 = new QA_group_1();
                            qaa_1.answer_datetime = Convert.ToDateTime(ict.Table.Rows[i]["insert_time"].ToString());
                            qaa_1.baby_y_m        = ict.Table.Rows[i]["Q1_baby_year_month"].ToString();
                            qaa_1.lan             = ict.Table.Rows[i]["language"].ToString();
                            qaa_1.parent          = ict.Table.Rows[i]["Q1_parent"].ToString();
                            qaa_1.Q2_choice       = ict.Table.Rows[i]["Q2_choice"].ToString();
                            qaa_1.Q3_choice       = ict.Table.Rows[i]["Q3_choice"].ToString();
                            qaa_1.Q4_choice       = ict.Table.Rows[i]["Q4_choice"].ToString();
                            qaa_1.Q5_choice       = ict.Table.Rows[i]["Q5_choice"].ToString();
                            qaa_1.Q6_choice       = ict.Table.Rows[i]["Q6_choice"].ToString();
                            QA_list_1.Add(qaa_1);
                        }
                    }


                    //lock state time
                    Query = "select * from nursing_room_lock_state_time where nursing_room_id='" + room_id + "' and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;;";
                    ict   = gc.select_cmd(Query);
                    if (ict.Count > 0)
                    {
                        if (room_id == "9")
                        {
                            for (int i = 0; i < ict.Count; i++)
                            {
                                sg = new state_group();
                                if (Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Year <= 2017 &&
                                    Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Month <= 11 &&
                                    Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString()).Day <= 26)
                                {
                                    if (Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString()) == 0)
                                    {
                                        sg.state = 1;
                                    }
                                    else
                                    {
                                        sg.state = 0;
                                    }
                                }
                                else
                                {
                                    sg.state = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                                }
                                sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                                lock_state_list.Add(sg);
                            }
                        }
                        else
                        {
                            for (int i = 0; i < ict.Count; i++)
                            {
                                sg        = new state_group();
                                sg.state  = Convert.ToInt32(ict.Table.Rows[i]["lock_state"].ToString());
                                sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                                lock_state_list.Add(sg);
                            }
                        }
                    }


                    List <state_group> check_list1 = new List <state_group>();

                    for (int i = 0; i < lock_state_list.Count; i++)
                    {
                        if (lock_state_list[i].state == 0)
                        {
                            sg        = new state_group();
                            sg.state  = lock_state_list[i].state;
                            sg.update = lock_state_list[i].update;
                            check_list1.Add(sg);
                            int index = i + 1;
                            while (index < lock_state_list.Count)
                            {
                                if (lock_state_list[index].state == 1)
                                {
                                    sg        = new state_group();
                                    sg.state  = lock_state_list[index].state;
                                    sg.update = lock_state_list[index].update;
                                    check_list1.Add(sg);
                                    break;
                                }
                                index += 1;
                            }
                        }
                    }
                    //Chart1.Series.Clear();  //每次使用此function前先清除圖表
                    //Series series1 = new Series("use time(second)", 1200); //初始畫線條(名稱,最大值)
                    //series1.Color = Color.Blue; //設定線條顏色
                    //series1.Font = new System.Drawing.Font("新細明體", 10); //設定字型
                    //series1.ChartType = SeriesChartType.Line; //設定線條種類
                    //Chart1.ChartAreas[0].AxisY.Minimum = 0;//設定Y軸最小值
                    //Chart1.ChartAreas[0].AxisY.Maximum = 1200;//設定Y軸最大值
                    ////chart1.ChartAreas[0].AxisY.Enabled= AxisEnabled.False; //隱藏Y 軸標示
                    ////chart1.ChartAreas[0].AxisY.MajorGrid.Enabled= true;  //隱藏Y軸標線
                    //series1.IsValueShownAsLabel = true; //是否把數值顯示在線上
                    string monstr = "var MONTHS = [";
                    monstr += "];";
                    string monstt = "";
                    string arrva  = "";

                    double     avg = 0, coun = 0, hcou = 0, havg = 0;
                    double     compute_day = -1;
                    DateTime   first_d, second_d;
                    List <int> count_list = new List <int>();



                    usercou_list = new List <user_group>();
                    user_group ug         = new user_group();
                    int        basesec    = Convert.ToInt32(param4);
                    int        coun_start = 0;
                    int        coun_end   = basesec;
                    int        couuuu     = 0;


                    //Chart1.Series.Add(series1);//將線畫在圖上

                    //for (int i = 0; i < check_list.Count; i++)
                    //{
                    //    listBox1.Items.Add(check_list[i].state);
                    //    listBox2.Items.Add(check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss"));
                    //}
                    Random rnd = new Random(Guid.NewGuid().GetHashCode());
                    int    r   = rnd.Next(256);
                    rnd = new Random(Guid.NewGuid().GetHashCode());
                    int g = rnd.Next(256);
                    rnd = new Random(Guid.NewGuid().GetHashCode());
                    int b = rnd.Next(256);



                    monstr  = "var MONTHS = [";
                    monstr += "];";
                    monstt  = "";
                    arrva   = "";

                    avg         = 0; coun = 0; hcou = 0; havg = 0;
                    compute_day = -1;
                    count_list  = new List <int>();
                    for (int i = 0; i < check_list1.Count; i++)
                    {
                        compute_day = -1;
                        if (check_list1[i].state == 0)
                        {
                            first_d = Convert.ToDateTime(check_list1[i].update);

                            int index = i + 1;
                            while (index < check_list1.Count)
                            {
                                if (check_list1[index].state == 1)
                                {
                                    second_d    = Convert.ToDateTime(check_list1[index].update);
                                    compute_day = (second_d - first_d).TotalSeconds;

                                    break;
                                }
                                index += 1;
                            }
                            if (compute_day > -1)
                            {
                                //monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                                //arrva += compute_day + ",";

                                if (compute_day < 1801)
                                {
                                    coun += 1;
                                    avg  += compute_day;
                                    //monstt += check_list1[i].update.ToString("yyyyMMddHHmmss") + ",";
                                    //arrva += compute_day + ",";
                                    count_list.Add(Convert.ToInt32(compute_day));
                                }
                                if (compute_day >= Convert.ToInt32(param4) && compute_day < 1801)
                                {
                                    hcou += 1;
                                    havg += compute_day;
                                }
                                //series1.Points.AddXY(i.ToString(), compute_day);


                                //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                //listBox3.Items.Add("End time: " + check_list[index].update.ToString("yyyy-MM-dd HH:mm:ss"));
                                //listBox3.Items.Add("Total sec: " + compute_day);
                            }
                            else
                            {
                                //DateTime todate = DateTime.Now;
                                //double compute_day1 = (todate - first_d).TotalSeconds;
                                //listBox3.Items.Add("Start time: " + check_list[i].update.ToString("yyyy-MM-dd HH:mm:ss") + " ~");
                                //listBox3.Items.Add("End time: NO");
                                //listBox3.Items.Add("Total sec: NO");
                            }
                        }
                    }

                    usercou_list = new List <user_group>();
                    ug           = new user_group();
                    basesec      = Convert.ToInt32(param4);
                    coun_start   = 0;
                    coun_end     = basesec;
                    couuuu       = 0;
                    for (int i = 0; i < Convert.ToInt32(param5); i += basesec)
                    {
                        couuuu = 0;
                        ug     = new user_group();
                        ug.sec = i;
                        for (int ii = 0; ii < count_list.Count; ii++)
                        {
                            if (count_list[ii] > i)
                            {
                                couuuu += 1;
                            }
                            //if (count_list[ii] > i && count_list[ii] < (i + basesec))
                            //{
                            //    couuuu += 1;
                            //}
                        }
                        ug.total = couuuu;
                        usercou_list.Add(ug);
                    }
                    for (int i = 0; i < usercou_list.Count; i++)
                    {
                        //monstt += usercou_list[i].sec.ToString() + ",";
                        if (usercou_list[i].sec % 60 == 0)
                        {
                            monstt += (usercou_list[i].sec / 60).ToString() + ",";
                        }
                        else
                        {
                            monstt += " ,";
                        }

                        arrva += usercou_list[i].total.ToString() + ",";
                    }

                    if (monstt != "")
                    {
                        monstt = monstt.Substring(0, monstt.Length - 1);
                    }
                    if (arrva != "")
                    {
                        arrva = arrva.Substring(0, arrva.Length - 1);
                    }
                    rnd   = new Random(Guid.NewGuid().GetHashCode());
                    r     = rnd.Next(256);
                    rnd   = new Random(Guid.NewGuid().GetHashCode());
                    g     = rnd.Next(256);
                    rnd   = new Random(Guid.NewGuid().GetHashCode());
                    b     = rnd.Next(256);
                    res1 += @"{
                     label: '" + mamaname + @"',
                     fill: false,
                     backgroundColor: 'rgb(" + r + @", " + g + @", " + b + @")',
                     borderColor: 'rgb(" + r + @", " + g + @", " + b + @")',
                     data: [" + arrva + @"
                     ],
                     
                 },";
                    res   = @"{
                     label: '" + mamaname + @"',
                     fill: false,
                     backgroundColor: 'rgb(" + r + @", " + g + @", " + b + @")',
                     borderColor: 'rgb(" + r + @", " + g + @", " + b + @")',
                     data: [" + arrva + @"
                     ],
                     
                 },";
                    label = monstt;



                    string ress = @"<fieldset>
    <legend>" + mamaname + @"</legend><br/>
<script type='text/javascript'>
         var config" + kk + @" = {
             type: 'line',
             data: {
                 labels: [" + label + @"],
                 datasets: [" + res + @"]
             },
             options: {
                 responsive: true,
                 title: {
                     display: true,
                     text: '" + mamaname + @"'
                 },
                 tooltips: {
                     mode: 'index',
                     intersect: false,
                 },
                 hover: {
                     mode: 'nearest',
                     intersect: true
                 },
                 scales: {
                     xAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: '滞在時間(分)'
                         }
                     }],
                     yAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: '利用人数(人)'
                         }
                     }]
                 },
animation: {
    onComplete: function () {
        var ctx = this.chart.ctx;
        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontFamily, 'normal', Chart.defaults.global.defaultFontFamily);
        ctx.fillStyle = 'black';
        ctx.textAlign = 'center';
        ctx.textBaseline = 'bottom';

        this.data.datasets.forEach(function (dataset)
        {
            for (var i = 0; i < dataset.data.length; i++) {
                for(var key in dataset._meta)
                {
                    var model = dataset._meta[key].data[i]._model;
                    ctx.fillText(dataset.data[i], model.x, model.y - 5);
                }
            }
        });
        done" + kk + @"();
    }
}
             }

         };
 var ctx" + kk + @" = document.getElementById('canvas" + kk + @"').getContext('2d');
             window.myLine = new Chart(ctx" + kk + @", config" + kk + @");

function done" + kk + @"(){
  var url_base64 = document.getElementById('canvas" + kk + @"').toDataURL('image/png');
  link" + kk + @".href = url_base64;
}
</script>
<canvas id='canvas" + kk + @"'></canvas>
<br/>
<a id='link" + kk + @"' download='" + mamaname + @".png'>Save as Image</a>
<br/>
  </fieldset>
";

                    res_list.Add(ress);
                    //                res += @"<script type='text/javascript'>
                    //
                    //</script>";


                    //result = res;


                    //result = "fail";
                }
                result = @"<fieldset>
    <legend>ALL mamaro</legend><br/>
<script type='text/javascript'>
         var config = {
             type: 'line',
             data: {
                 labels: [" + label + @"],
                 datasets: [" + res1 + @"]
             },
             options: {
                 responsive: true,
                 title: {
                     display: true,
                     text: 'ALL mamaro'
                 },
                 tooltips: {
                     mode: 'index',
                     intersect: false,
                 },
                 hover: {
                     mode: 'nearest',
                     intersect: true
                 },
                 scales: {
                     xAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: '滞在時間(分)'
                         }
                     }],
                     yAxes: [{
                         display: true,
                         scaleLabel: {
                             display: true,
                             labelString: '利用人数(人)'
                         }
                     }]
                 },
                 animation: {
                     onComplete: done
                 }
             }
         };
 var ctx = document.getElementById('canvas').getContext('2d');
             window.myLine = new Chart(ctx, config);
function done(){
  var url_base64 = document.getElementById('canvas').toDataURL('image/png');
  link.href = url_base64;
}
</script>
<canvas id='canvas'></canvas>
<br/>
<a id='link' download='allmamaro.png'>Save as Image</a>
<br/><br/>
  </fieldset>
";

                for (int hh = 0; hh < res_list.Count; hh++)
                {
                    result += res_list[hh];
                }
            }
        }
        catch (Exception ex)
        {
            //result = "fail";

            //return result;
            throw ex;
        }
        return(result);
    }
示例#4
0
    public static string check_counter(string param1, string param2)
    {
        int       howmany = 0;
        GCP_MYSQL gc      = new GCP_MYSQL();
        string    Query   = "";
        int       QAcou   = 0;
        string    result  = "";
        DateTime  start   = Convert.ToDateTime(param1.Trim());
        DateTime  end     = Convert.ToDateTime(param2.Trim());

        try
        {
            if (start != null && end != null)
            {
                state_group     sg = new state_group();
                state_group_res gs = new state_group_res();
                state_list      = new List <state_group>();
                state_list_res  = new List <state_group_res>();
                state_list_user = new List <state_group_res>();

                //state time
                Query = "select * from nursing_room_normal_counter where (nursing_room_normal_id=1 or nursing_room_normal_id=2) and update_time between '" + start.ToString("yyyy-MM-dd HH:mm:ss") + "' and '" + end.ToString("yyyy-MM-dd HH:mm:ss") + "' order by update_time asc;";
                DataView ict = gc.select_cmd(Query);
                if (ict.Count > 0)
                {
                    for (int i = 0; i < ict.Count; i++)
                    {
                        if (Convert.ToInt32(ict.Table.Rows[i]["state"].ToString()) == 1)
                        {
                            sg    = new state_group();
                            sg.id = Convert.ToInt32(ict.Table.Rows[i]["nursing_room_normal_id"].ToString());
                            //sg.state = Convert.ToInt32(ict.Table.Rows[i]["state"].ToString());
                            sg.update = Convert.ToDateTime(ict.Table.Rows[i]["update_time"].ToString());

                            state_list.Add(sg);
                        }
                    }
                }

                DateTime firstdate;
                DateTime seconddate;
                double   compute_day = 0;
                for (int i = 0; i < state_list.Count; i++)
                {
                    if (state_list[i].id == 1)
                    {
                        firstdate = Convert.ToDateTime(state_list[i].update);
                        for (int ii = i + 1; ii < state_list.Count; ii++)
                        {
                            if (state_list[ii].id == 2)
                            {
                                seconddate  = Convert.ToDateTime(state_list[ii].update);
                                compute_day = (seconddate - firstdate).TotalSeconds;
                                if (compute_day < 15)
                                {
                                    gs            = new state_group_res();
                                    gs.firstdate  = firstdate;
                                    gs.seconddate = seconddate;
                                    gs.content    = "Out to In";
                                    gs.diff       = compute_day;
                                    state_list_res.Add(gs);
                                    howmany += 1;
                                    i        = ii;
                                    break;
                                }
                            }
                        }
                    }
                    else if (state_list[i].id == 2)
                    {
                        firstdate = Convert.ToDateTime(state_list[i].update);
                        for (int ii = i + 1; ii < state_list.Count; ii++)
                        {
                            if (state_list[ii].id == 1)
                            {
                                seconddate  = Convert.ToDateTime(state_list[ii].update);
                                compute_day = (seconddate - firstdate).TotalSeconds;
                                if (compute_day < 15)
                                {
                                    gs            = new state_group_res();
                                    gs.firstdate  = firstdate;
                                    gs.seconddate = seconddate;
                                    gs.content    = "In to Out";
                                    gs.diff       = compute_day;
                                    state_list_res.Add(gs);
                                    howmany += 1;
                                    i        = ii;
                                    break;
                                }
                            }
                        }
                    }
                }
                int howmany_u = 0;
                result += @"<fieldset>
    <legend>Door State</legend><br/>";

                result += @"<span>Total door times:</span>
<br/>
<h2>" + howmany.ToString() + @"</h2>
<br/>";
                for (int i = 0; i < state_list_res.Count; i++)
                {
                    if (state_list_res[i].content == "Out to In")
                    {
                        firstdate = Convert.ToDateTime(state_list_res[i].firstdate);
                        for (int ii = i + 1; ii < state_list_res.Count; ii++)
                        {
                            if (state_list_res[ii].content == "In to Out")
                            {
                                seconddate    = Convert.ToDateTime(state_list_res[ii].seconddate);
                                compute_day   = (seconddate - firstdate).TotalSeconds;
                                gs            = new state_group_res();
                                gs.firstdate  = firstdate;
                                gs.seconddate = seconddate;
                                gs.content    = "Set";
                                gs.diff       = compute_day;
                                state_list_user.Add(gs);
                                howmany_u += 1;
                                i          = ii;
                                break;
                            }
                        }
                    }
                }
                result += @"<span>Total users:</span>
<br/>
<h2>" + howmany_u.ToString() + @"</h2>
<br/>";
                for (int i = 0; i < state_list_user.Count; i++)
                {
                    result += @"<span>Start : " + state_list_user[i].firstdate + @" ~ End : " + state_list_user[i].seconddate + @"</span><br/>";
                    result += @"<span>" + state_list_user[i].content + @" : use " + state_list_user[i].diff + @" seconds</span><br/>";
                }

                result += @"</fieldset>";


                //result = "fail";
            }
        }
        catch (Exception ex)
        {
            //result = "fail";

            //return result;
            throw ex;
        }
        return(result);
    }