首页 > 开发 > 综合 > 正文

柱形图 和 折线图 饼形图控件

2024-07-21 02:24:00
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。

  • using system;
    using system.collections;
    using system.componentmodel;
    using system.drawing;
    using system.data;
    using system.windows.forms;
    using system.xml ;

    namespace chartcontrol
    {
     /// <summary>
     /// chartcontrol 1.0 的摘要说明。此控件是画图的,根据xml文档的数据生成图表。
     /// 目前能够画2维图和3维图 柱形图 和 折线图 饼形图。韩永矗5apr2005制作。
     /// 柱形图请将xml文件中的“add key="diagramtype"”修改为histogram
     /// 折线图请将xml文件中的“add key="diagramtype"”修改为flexdiagram
     /// 饼形图请将xml文件中的“add key="diagramtype"”修改为cakydiagram
     /// xml文件不能修改名字,需要和你的程序执行文件在同一个目录。
     /// </summary>
     public class chartcontrol : system.windows.forms.usercontrol
     {
      private system.windows.forms.label label1;
      private system.windows.forms.label label2;
      private system.windows.forms.label label3;
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private system.componentmodel.container components = null;

      public chartcontrol()
      {
       // 该调用是 windows.forms 窗体设计器所必需的。
       initializecomponent();

       // todo: 在 initcomponent 调用后添加任何初始化

      }

      /// <summary>
      /// 清理所有正在使用的资源。
      /// </summary>
      protected override void dispose( bool disposing )
      {
       if( disposing )
       {
        if( components != null )
         components.dispose();
       }
       base.dispose( disposing );
      }

      #region 组件设计器生成的代码
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器
      /// 修改此方法的内容。
      /// </summary>
      private void initializecomponent()
      {
       this.label1 = new system.windows.forms.label();
       this.label2 = new system.windows.forms.label();
       this.label3 = new system.windows.forms.label();
       this.suspendlayout();
       //
       // label1
       //
       this.label1.location = new system.drawing.point(104, 16);
       this.label1.name = "label1";
       this.label1.size = new system.drawing.size(160, 24);
       this.label1.tabindex = 0;
       this.label1.text = "label1";
       //
       // label2
       //
       this.label2.location = new system.drawing.point(8, 56);
       this.label2.name = "label2";
       this.label2.tabindex = 1;
       this.label2.text = "label2";
       //
       // label3
       //
       this.label3.location = new system.drawing.point(288, 320);
       this.label3.name = "label3";
       this.label3.tabindex = 2;
       this.label3.text = "label3";
       //
       // chartcontrol
       //
       this.backcolor = system.drawing.color.white;
       this.controls.add(this.label3);
       this.controls.add(this.label2);
       this.controls.add(this.label1);
       this.name = "chartcontrol";
       this.size = new system.drawing.size(448, 360);
       this.load += new system.eventhandler(this.chartcontrol_load);
       this.resumelayout(false);

      }
      #endregion

      #region 读写xml文件的几个小函数,2005 4 2 by hyc

      public void setxmlfilevalue(string xmlpath,string appkey,string appvalue)//写xmlpath是文件路径+文件名,appkey是 key name,appvalue是value
      {
       xmldocument xdoc = new xmldocument();
       xdoc.load(xmlpath);
       xmlnode xnode;
       xmlelement xelem1;
       xmlelement xelem2;

       xnode =  xdoc.selectsinglenode("//appsettings");

       xelem1 = (xmlelement)xnode.selectsinglenode("//add[@key='" + appkey + "']");
       if ( xelem1 != null )
       {
        xelem1.setattribute("value",appvalue);
       }
       else
       {
        xelem2 = xdoc.createelement("add");
        xelem2.setattribute("key",appkey);
        xelem2.setattribute("value",appvalue);
        xnode.appendchild(xelem2);
       }
       xdoc.save(xmlpath);
      }


      public void getxmlfilevalue(string xmlpath,string appkey,ref string appvalue)//读xmlpath是文件路径+文件名,appkey是 key name,appvalue是value
      {
       xmldocument xdoc = new xmldocument();
       xdoc.load(xmlpath);
       xmlnode xnode;
       xmlelement xelem1;

       xnode =  xdoc.selectsinglenode("//appsettings");

       xelem1 = (xmlelement)xnode.selectsinglenode("//add[@key='" + appkey + "']");
       if ( xelem1 != null )
       {
        appvalue=xelem1.getattribute ("value");
       }
       else
       {
    //    messagebox.show ("there is not any information!");
       }

      }


      #endregion

      #region 变量声明,2005 4 4 by hyc

      public int formheight;
      public int formwidth;
      public int num=1;
      public int max=1;
      public int min=1;
      public int jnum=1;//维数
      public int polebold;
      public int heightxs=100;//高度系数
      public int[] startangl=new int [100];//开始角度
      public int[] sweepangl=new int [100]; //跨越弧度
      public int allsweep;
      public int kuandu;
      public int[,] x=new int [100,100];
      public int [,] y=new int[100,100];
      public int[,] yy=new int [100,100];
      public string[] typename=new string [100];
      public string[,] typevalue=new string [100,100];
      public string appvalue; 
      public string pathfilename=system.windows .forms .application.startuppath +"//xmlchart.xml";
      system.windows .forms .label [] typenamelabel;
      system.windows .forms .label [,] typevaluelabel;

      #endregion

      #region 自定义函数,2005 4 4 by hyc

      public void allbegain()//all 初始化
      {
       formheight=this.height ;
       formwidth=this.width ;
       getxmlfilevalue(pathfilename,"diagramname",ref appvalue);
       label1.text =appvalue+"(此图表控件是测试版)";
       getxmlfilevalue(pathfilename,"yname",ref appvalue);
       label2.text =appvalue;
       getxmlfilevalue(pathfilename,"xname",ref appvalue);
       label3.text =appvalue;

       label1.autosize =true;
       label1.top =5;
       label1.left =(formwidth-label1.width )/2;
       label2.autosize =true ;
       label3.autosize=true;
       label2.top =15;
       label2.left =5;
       label3.top=formheight-10;
       label3.left=formwidth-label3.width-5;

       getxmlfilevalue(pathfilename,"num",ref appvalue);
       num=int32.parse (appvalue);

       getxmlfilevalue(pathfilename,"jnum",ref appvalue);
       jnum=int32.parse (appvalue);

      }

      
      public void histogrambegain()//histogram 初始化
      {
       for(int i=1;i<=num;i++)
       {
        getxmlfilevalue(pathfilename,"id"+i.tostring (),ref typename[i]);
        for(int j=1;j<=jnum;j++)
        {
         getxmlfilevalue(pathfilename,"id"+j.tostring()+"num"+i.tostring (),ref typevalue[j,i]);
        }
       }

       polebold=formwidth*2/(3*num*jnum);
       
       
       max=int32.parse (typevalue[1,1]);
       min=int32.parse (typevalue[1,1]);
       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         if(int32.parse (typevalue[j,i])>max)
         {
          max=int32.parse (typevalue[j,i]);
         }
         if(int32.parse (typevalue[j,i])<min)
         {
          min=int32.parse (typevalue[j,i]);
         }
        }
       }

       for(int i=1;i<100;i++)
       {
        if(max>(formheight-50))
        {
         heightxs=heightxs/2;
         max=max/2;
        }
        if(max<(formheight-50)/2)
        {
         heightxs=heightxs*2;
         max=max*2;
        }
        if(max<(formheight-50) && max>(formheight-50)/2)
        {
         break;
        }
       }

       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         x[j,i]=(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )+(polebold+1)*(j-1)-label3.width  ;//????
         y[j,i]=label3.top-5-(int32.parse (typevalue[j,i])*heightxs/100);
         yy[j,i]=int32.parse (typevalue[j,i]);
         yy[j,i]=yy[j,i]*heightxs/100;
        }
       }

       typenamelabel = new system.windows .forms.label[100];

       for(int i=1;i<=num;i++)
       {
        typenamelabel[i]=new label ();
        typenamelabel[i].top =label3.top ;
        typenamelabel[i].text =typename[i];
        typenamelabel[i].autosize  =true;
        typenamelabel[i].left =x[1,i]+polebold*jnum/2;
        this.controls .add (typenamelabel[i]);
       }

       typevaluelabel = new system.windows .forms.label[100,100];
     
       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         typevaluelabel[j,i]=new label ();
         typevaluelabel[j,i].top =y[j,i]-20 ;
         typevaluelabel[j,i].text =typevalue[j,i];
         typevaluelabel[j,i].autosize  =true;
         typevaluelabel[j,i].left =x[j,i];
         this.controls .add (typevaluelabel[j,i]);
        }
       }
      }

      
      public void flexdiagrambegain()//flex diagram 初始化
      {
       for(int i=1;i<=num;i++)
       {
        getxmlfilevalue(pathfilename,"id"+i.tostring (),ref typename[i]);
        for(int j=1;j<=jnum;j++)
        {
         getxmlfilevalue(pathfilename,"id"+j.tostring()+"num"+i.tostring (),ref typevalue[j,i]);
        }
       }
       
       typenamelabel = new system.windows .forms.label[100];

       for(int i=1;i<=num;i++)
       {
        typenamelabel[i]=new label ();
        typenamelabel[i].top =label3.top ;
        typenamelabel[i].text =typename[i];
        typenamelabel[i].autosize  =true;
        typenamelabel[i].left =(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )-typenamelabel[i].width /2;
        this.controls .add (typenamelabel[i]);
       }
       
       max=int32.parse (typevalue[1,1]);
       min=int32.parse (typevalue[1,1]);
       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         if(int32.parse (typevalue[j,i])>max)
         {
          max=int32.parse (typevalue[j,i]);
         }
         if(int32.parse (typevalue[j,i])<min)
         {
          min=int32.parse (typevalue[j,i]);
         }
        }
       }

       for(int i=1;i<100;i++)
       {
        if(max>(formheight-50))
        {
         heightxs=heightxs/2;
         max=max/2;
        }
        if(max<(formheight-50)/2)
        {
         heightxs=heightxs*2;
         max=max*2;
        }
        if(max<(formheight-50) && max>(formheight-50)/2)
        {
         break;
        }
       }

       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         x[j,i]=(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width );
         y[j,i]=label3.top-5-(int32.parse (typevalue[j,i])*heightxs/100);
         yy[j,i]=int32.parse (typevalue[j,i]);
         yy[j,i]=yy[j,i]*heightxs/100;
        }
       }
       
       typevaluelabel = new system.windows .forms.label[100,100];

       for(int i=1;i<=num;i++)
       {
        for(int j=1;j<=jnum;j++)
        {
         typevaluelabel[j,i]=new label ();
         typevaluelabel[j,i].top =y[j,i]-20 ;
         typevaluelabel[j,i].text =typevalue[j,i];
         typevaluelabel[j,i].autosize  =true;
         typevaluelabel[j,i].left =(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )-typevaluelabel[j,i].width /2;
         this.controls .add (typevaluelabel[j,i]);
        }
       }
      }


      public void cakydiagrambegain()//饼形图初始化
      {
       for(int i=1;i<=num;i++)
       {
        getxmlfilevalue(pathfilename,"id"+i.tostring (),ref typename[i]);
        getxmlfilevalue(pathfilename,"id1num"+i.tostring (),ref typevalue[1,i]);
       }

       for(int i=1;i<=num;i++)
       {
        getxmlfilevalue(pathfilename,"id1num"+i.tostring (),ref appvalue);
        sweepangl[i]=int32.parse (appvalue);
       }

       allsweep=0;
       for(int i=1;i<=num;i++)
       {
        allsweep=allsweep+sweepangl[i];
       }

       for(int i=1;i<=num;i++)
       {
        sweepangl[i]=(sweepangl[i]*360)/allsweep;
       }

       //去掉白边
       int tempsw;
       for(int j=1;j<360;j++)
       {
        tempsw=0;
        for(int i=1;i<=num;i++)
        {
         tempsw=tempsw+sweepangl[i];
        }
        if(tempsw<360)
        {
         for(int k=1;k<=360-tempsw;k++)
         {
          if(k<num)
          {
           sweepangl[k]++;
          }
          else
          {
           break;
          }
         }
        }
        if(tempsw>=360)
        {
         break;
        }
       }


       startangl[1]=0;
       
       int tempallsweep;
       for(int i=2;i<=num;i++)
       {
        tempallsweep=0;
        for(int j=1;j<=i-1;j++)
        {
         tempallsweep=tempallsweep+sweepangl[j];
        }
        startangl[i]=tempallsweep;
       }


       if(formwidth>=formheight)
       {
        kuandu=formheight*2/3;
       }
       else
       {
        kuandu=formwidth*2/3;
       }


       double angle;

       typenamelabel = new system.windows .forms.label[100];
       
       for(int i=1;i<=num;i++)
       {
        angle=(360-startangl[i]+90-sweepangl[i]/2)*3.141592653579/180;

        typenamelabel[i]=new label ();
        typenamelabel[i].top =(int)((kuandu+60)/2* math.cos (angle))+(formheight/6+kuandu/2);
        typenamelabel[i].text =typename[i];
        typenamelabel[i].autosize  =true;
        typenamelabel[i].left =(int)((kuandu+60)/2* math.sin (angle))+(formwidth/6+kuandu/2);
        this.controls .add (typenamelabel[i]);
       }

       typevaluelabel = new system.windows .forms.label[100,100];
     
       string tempstr1;

       for(int i=1;i<=num;i++)
       {
        tempstr1=(int32.parse (typevalue[1,i])*1.0/allsweep*100.0).tostring()+"    ";
        typevaluelabel[1,i]=new label ();
        typevaluelabel[1,i].top =typenamelabel[i].top  ;
        typevaluelabel[1,i].text =tempstr1.substring(0,5)+"%";
        typevaluelabel[1,i].autosize  =true;
        typevaluelabel[1,i].left =typenamelabel[i].left+typenamelabel[i].width +2;
        this.controls .add (typevaluelabel[1,i]);
       }


      }


      #endregion

      private void chartcontrol_load(object sender, system.eventargs e)
      {
       allbegain();
      }


      #region draw diagram函数,2005 4 4 by hyc

      protected override void onpaint(painteventargs paintevent)
      {
       graphics g = paintevent.graphics;
       solidbrush brush=new solidbrush (color.blue );
       pen pen=new pen (color.black);
       pen pen2=new pen (color.darkgray );

       solidbrush[] bb;
       bb=new solidbrush [100];
       bb[1]=new solidbrush (color.darkred);
       bb[2]=new solidbrush (color.darkslateblue);
       bb[3]=new solidbrush (color.darkgray);
       bb[4]=new solidbrush (color.yellowgreen);
       bb[5]=new solidbrush (color.darksalmon);
       bb[6]=new solidbrush (color.darkorange);
       bb[7]=new solidbrush (color.lightyellow);
       bb[8]=new solidbrush (color.slateblue);
       bb[9]=new solidbrush (color.black);
       bb[10]=new solidbrush (color.yellowgreen);
       bb[11]=new solidbrush (color.darkseagreen);
       bb[12]=new solidbrush (color.darkslategray);
       bb[13]=new solidbrush (color.darkturquoise);
       bb[14]=new solidbrush (color.darkviolet);
       bb[15]=new solidbrush (color.deeppink);


       pen[] pp;
       pp=new pen [100];
       pp[1]=new pen (color.darkred);
       pp[2]=new pen (color.darkslateblue);
       pp[3]=new pen (color.darkgray);
       pp[4]=new pen (color.yellowgreen);
       pp[5]=new pen (color.darksalmon);
       pp[6]=new pen (color.darkorange);
       pp[7]=new pen (color.lightyellow);
       pp[8]=new pen (color.slateblue);
       pp[9]=new pen (color.black);
       pp[10]=new pen (color.yellowgreen);
       pp[11]=new pen (color.darkseagreen);
       pp[12]=new pen (color.darkslategray);
       pp[13]=new pen (color.darkturquoise);
       pp[14]=new pen (color.darkviolet);
       pp[15]=new pen (color.deeppink);
       
       
       getxmlfilevalue(pathfilename,"diagramtype",ref appvalue);
       switch(appvalue)
       {
        case "histogram"://柱形图
         histogrambegain();
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);

         
         for(int i=1;i<=num;i++)
         {
          for(int j=1;j<=jnum;j++)
          {
           g.fillrectangle(bb[j],x[j,i],y[j,i],polebold,yy[j,i]);
          }
         
         }
         break;
        case"flexdiagram"://折线图
         flexdiagrambegain();
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);

         for(int i=1;i<num;i++)
         {
          for(int j=1;j<=jnum;j++)
          {
           g.drawline (pp[j],x[j,i],y[j,i],x[j,i+1],y[j,i+1]);
          }
         }
         for(int i=1;i<=num;i++)
         {
          for(int j=1;j<=jnum;j++)
          {
           g.drawline(pen2,x[j,i],y[j,i],x[j,i],label3.top-5);
          }
         }
         break;
        case"cakydiagram"://饼形图
         cakydiagrambegain();
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
         g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);

         for(int i=1;i<=num;i++)
         {
          g.fillpie (bb[i],formwidth/6,formheight/6,kuandu,kuandu,startangl[i],sweepangl[i]);
         }
         break;

        default:

         break;
       }

      }

      
      #endregion
     }
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    //xml文件内容,此文件必须放在应用程序目录,文件名xmlchart.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appsettings>
        <add key="diagramtype" value="histogram" />
        <add key="diagramname" value="1-12月产品数量对比" />
        <add key="xname" value="月份" />
        <add key="yname" value="数量" />
        <add key="jnum" value="2" />
        <add key="num" value="5" />
        <add key="text" value="yes" />
        <add key="id1" value="1月" />
        <add key="id2" value="2月" />
        <add key="id3" value="3月" />
        <add key="id4" value="4月" />
        <add key="id5" value="5月" />
        <add key="id6" value="6月" />
        <add key="id7" value="7月" />
        <add key="id8" value="8月" />
        <add key="id9" value="9月" />
        <add key="id10" value="10月" />
        <add key="id11" value="11月" />
        <add key="id12" value="12月" />
        <add key="id13" value="1月" />
        <add key="id14" value="2月" />
        <add key="id15" value="3月" />
        <add key="id16" value="4月" />
        <add key="id17" value="5月" />
        <add key="id18" value="6月" />
        <add key="id19" value="7月" />
        <add key="id20" value="8月" />
        <add key="id21" value="9月" />
        <add key="id22" value="10月" />
        <add key="id23" value="11月" />
        <add key="id24" value="12月" />
        <add key="id25" value="1月" />
        <add key="id1num1" value="9" />
        <add key="id1num2" value="5" />
        <add key="id1num3" value="6" />
        <add key="id1num4" value="7" />
        <add key="id1num5" value="4" />
        <add key="id1num6" value="6" />
        <add key="id1num7" value="5" />
        <add key="id1num8" value="3" />
        <add key="id1num9" value="2" />
        <add key="id1num10" value="1" />
        <add key="id1num11" value="2" />
        <add key="id1num12" value="2" />
        <add key="id1num13" value="2" />
        <add key="id1num14" value="2" />
        <add key="id1num15" value="2" />
        <add key="id1num16" value="2" />
        <add key="id1num17" value="2" />
        <add key="id1num18" value="2" />
        <add key="id1num19" value="2" />
        <add key="id1num20" value="2" />
        <add key="id1num21" value="2" />
        <add key="id1num22" value="2" />
        <add key="id1num23" value="2" />
        <add key="id1num24" value="2" />
        <add key="id1num25" value="2" />
        <add key="id2num1" value="4" />
        <add key="id2num2" value="5" />
        <add key="id2num3" value="4" />
        <add key="id2num4" value="1" />
        <add key="id2num5" value="5" />
        <add key="id2num6" value="3" />
        <add key="id2num7" value="4" />
        <add key="id2num8" value="1" />
        <add key="id2num9" value="2" />
        <add key="id2num10" value="4" />
        <add key="id2num11" value="5" />
        <add key="id2num12" value="2" />
        <add key="id2num13" value="2" />
        <add key="id2num14" value="2" />
        <add key="id2num15" value="2" />
        <add key="id2num16" value="2" />
        <add key="id2num17" value="2" />
        <add key="id2num18" value="2" />
        <add key="id2num19" value="2" />
        <add key="id2num20" value="2" />
        <add key="id2num21" value="2" />
        <add key="id2num22" value="2" />
        <add key="id2num23" value="2" />
        <add key="id2num24" value="2" />
        <add key="id2num25" value="2" />
        <add key="id3num1" value="4" />
        <add key="id3num2" value="5" />
        <add key="id3num3" value="6" />
        <add key="id3num4" value="1" />
        <add key="id3num5" value="2" />
        <add key="id3num6" value="2" />
        <add key="id3num7" value="5" />
        <add key="id3num8" value="2" />
        <add key="id3num9" value="5" />
        <add key="id3num10" value="7" />
        <add key="id3num11" value="9" />
        <add key="id3num12" value="2" />
        <add key="id3num13" value="2" />
        <add key="id3num14" value="2" />
        <add key="id3num15" value="2" />
        <add key="id3num16" value="2" />
        <add key="id3num17" value="2" />
        <add key="id3num18" value="2" />
        <add key="id3num19" value="2" />
        <add key="id3num20" value="2" />
        <add key="id3num21" value="2" />
        <add key="id3num22" value="2" />
        <add key="id3num23" value="2" />
        <add key="id3num24" value="2" />
        <add key="id3num25" value="2" />
        <add key="id4num1" value="2" />
        <add key="id4num2" value="5" />
        <add key="id4num3" value="4" />
        <add key="id4num4" value="2" />
        <add key="id4num5" value="4" />
        <add key="id4num6" value="3" />
        <add key="id4num7" value="1" />
        <add key="id4num8" value="1" />
        <add key="id4num9" value="4" />
        <add key="id4num10" value="5" />
        <add key="id4num11" value="8" />
        <add key="id4num12" value="2" />
        <add key="id4num13" value="2" />
        <add key="id4num14" value="2" />
        <add key="id4num15" value="2" />
        <add key="id4num16" value="2" />
        <add key="id4num17" value="2" />
        <add key="id4num18" value="2" />
        <add key="id4num19" value="2" />
        <add key="id4num20" value="2" />
        <add key="id4num21" value="2" />
        <add key="id4num22" value="2" />
        <add key="id4num23" value="2" />
        <add key="id4num24" value="2" />
        <add key="id4num25" value="2" />
        <add key="id5num1" value="2" />
        <add key="id5num2" value="5" />
        <add key="id5num3" value="4" />
        <add key="id5num4" value="2" />
        <add key="id5num5" value="4" />
        <add key="id5num6" value="3" />
        <add key="id5num7" value="1" />
        <add key="id5num8" value="1" />
        <add key="id5num9" value="4" />
        <add key="id5num10" value="5" />
        <add key="id5num11" value="8" />
        <add key="id5num12" value="2" />
        <add key="id5num13" value="2" />
        <add key="id5num14" value="2" />
        <add key="id5num15" value="2" />
        <add key="id5num16" value="2" />
        <add key="id5num17" value="2" />
        <add key="id5num18" value="2" />
        <add key="id5num19" value="2" />
        <add key="id5num20" value="2" />
        <add key="id5num21" value="2" />
        <add key="id5num22" value="2" />
        <add key="id5num23" value="2" />
        <add key="id5num24" value="2" />
        <add key="id5num25" value="2" />
        <add key="id6num1" value="2" />
        <add key="id6num2" value="5" />
        <add key="id6num3" value="4" />
        <add key="id6num4" value="2" />
        <add key="id6num5" value="4" />
        <add key="id6num6" value="3" />
        <add key="id6num7" value="1" />
        <add key="id6num8" value="1" />
        <add key="id6num9" value="4" />
        <add key="id6num10" value="5" />
        <add key="id6num11" value="8" />
        <add key="id6num12" value="2" />
        <add key="id6num13" value="2" />
        <add key="id6num14" value="2" />
        <add key="id6num15" value="2" />
        <add key="id6num16" value="2" />
        <add key="id6num17" value="2" />
        <add key="id6num18" value="2" />
        <add key="id6num19" value="2" />
        <add key="id6num20" value="2" />
        <add key="id6num21" value="2" />
        <add key="id6num22" value="2" />
        <add key="id6num23" value="2" />
        <add key="id6num24" value="2" />
        <add key="id6num25" value="2" />
        <add key="id7num1" value="2" />
        <add key="id7num2" value="5" />
        <add key="id7num3" value="4" />
        <add key="id7num4" value="2" />
        <add key="id7num5" value="4" />
        <add key="id7num6" value="3" />
        <add key="id7num7" value="1" />
        <add key="id7num8" value="1" />
        <add key="id7num9" value="4" />
        <add key="id7num10" value="5" />
        <add key="id7num11" value="8" />
        <add key="id7num12" value="2" />
        <add key="id7num13" value="2" />
        <add key="id7num14" value="2" />
        <add key="id7num15" value="2" />
        <add key="id7num16" value="2" />
        <add key="id7num17" value="2" />
        <add key="id7num18" value="2" />
        <add key="id7num19" value="2" />
        <add key="id7num20" value="2" />
        <add key="id7num21" value="2" />
        <add key="id7num22" value="2" />
        <add key="id7num23" value="2" />
        <add key="id7num24" value="2" />
        <add key="id7num25" value="2" />
        <add key="id8num1" value="2" />
        <add key="id8num2" value="5" />
        <add key="id8num3" value="4" />
        <add key="id8num4" value="2" />
        <add key="id8num5" value="4" />
        <add key="id8num6" value="3" />
        <add key="id8num7" value="1" />
        <add key="id8num8" value="1" />
        <add key="id8num9" value="4" />
        <add key="id8num10" value="5" />
        <add key="id8num11" value="8" />
        <add key="id8num12" value="2" />
        <add key="id8num13" value="2" />
        <add key="id8num14" value="2" />
        <add key="id8num15" value="2" />
        <add key="id8num16" value="2" />
        <add key="id8num17" value="2" />
        <add key="id8num18" value="2" />
        <add key="id8num19" value="2" />
        <add key="id8num20" value="2" />
        <add key="id8num21" value="2" />
        <add key="id8num22" value="2" />
        <add key="id8num23" value="2" />
        <add key="id8num24" value="2" />
        <add key="id8num25" value="2" />  
        <add key="id9num1" value="2" />
        <add key="id9num2" value="5" />
        <add key="id9num3" value="4" />
        <add key="id9num4" value="2" />
        <add key="id9num5" value="4" />
        <add key="id9num6" value="3" />
        <add key="id9num7" value="1" />
        <add key="id9num8" value="1" />
        <add key="id9num9" value="4" />
        <add key="id9num10" value="5" />
        <add key="id9num11" value="8" />
        <add key="id9num12" value="2" />
        <add key="id9num13" value="2" />
        <add key="id9num14" value="2" />
        <add key="id9num15" value="2" />
        <add key="id9num16" value="2" />
        <add key="id9num17" value="2" />
        <add key="id9num18" value="2" />
        <add key="id9num19" value="2" />
        <add key="id9num20" value="2" />
        <add key="id9num21" value="2" />
        <add key="id9num22" value="2" />
        <add key="id9num23" value="2" />
        <add key="id9num24" value="2" />
        <add key="id9num25" value="2" />
        <add key="id10num1" value="2" />
        <add key="id10num2" value="5" />
        <add key="id10num3" value="4" />
        <add key="id10num4" value="2" />
        <add key="id10num5" value="4" />
        <add key="id10num6" value="3" />
        <add key="id10num7" value="1" />
        <add key="id10num8" value="1" />
        <add key="id10num9" value="4" />
        <add key="id10num10" value="5" />
        <add key="id10num11" value="8" />
        <add key="id10num12" value="2" />
        <add key="id10num13" value="2" />
        <add key="id10num14" value="2" />
        <add key="id10num15" value="2" />
        <add key="id10num16" value="2" />
        <add key="id10num17" value="2" />
        <add key="id10num18" value="2" />
        <add key="id10num19" value="2" />
        <add key="id10num20" value="2" />
        <add key="id10num21" value="2" />
        <add key="id10num22" value="2" />
        <add key="id10num23" value="2" />
        <add key="id10num24" value="2" />
        <add key="id10num25" value="2" />           
       </appsettings>
    </configuration>


    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表